How to manage encryption passwords, platform keys, recovery keys, and key slots in Cloudstic
Cloudstic uses AES-256-GCM encryption by default. This guide explains how to manage encryption credentials, add recovery keys, change passwords, and understand the key slot system.
╔══════════════════════════════════════════════════════════════╗║ RECOVERY KEY ║╠══════════════════════════════════════════════════════════════╣║ ║║ abandon ability able about above absent absorb abstract ... ║║ ║║ Write down these 24 words and store them in a safe place. ║║ This is the ONLY time the recovery key will be displayed. ║║ If you lose your password, this key is your only way to ║║ recover your encrypted backups. ║║ ║╚══════════════════════════════════════════════════════════════╝Repository initialized (encrypted: true).
Write down your recovery key immediately! It will only be displayed once. Store it in a safe, offline location (physical safe, safety deposit box, etc.).
Use a raw encryption key for non-interactive systems:
# Generate a random 32-byte key (64 hex characters)export CLOUDSTIC_ENCRYPTION_KEY=$(openssl rand -hex 32)# Initialize repositorycloudstic init -encryption-key $CLOUDSTIC_ENCRYPTION_KEY# Store the key securely (e.g., in a secrets manager)echo $CLOUDSTIC_ENCRYPTION_KEY | vault kv put secret/backups key=-
Platform keys are intended for automation where password prompts aren’t possible. Store them in a secrets manager (HashiCorp Vault, AWS Secrets Manager, etc.).
╔══════════════════════════════════════════════════════════════╗║ RECOVERY KEY ║╠══════════════════════════════════════════════════════════════╣║ ║║ abandon ability able about above absent absorb abstract ... ║║ ║╚══════════════════════════════════════════════════════════════╝Recovery key slot has been added to the repository.
This is the only time the recovery key is displayed. Write it down and store it securely.
If you’re using a platform key instead of a password:
Security consideration: Only store credentials in environment variables on trusted, single-user systems. For shared systems, enter passwords interactively.
When using profiles, encryption settings can be stored on the
store entry using secret references. Only the reference is saved, never the
secret value itself:
cloudstic store new \ -name prod-s3 \ -uri s3:my-bucket/backups \ -password-secret keychain://cloudstic/prod/repo-password \ -kms-key-arn arn:aws:kms:us-east-1:123456:key/abcd
In interactive mode, store new guides you through encryption setup if no encryption flags are provided:
Select encryption method 1) Password (recommended for interactive use) 2) Platform key (recommended for automation/CI) 3) AWS KMS key (enterprise) 4) No encryption (not recommended)Select option number [1]:
The chosen settings are saved to profiles.yaml as secret references. You can
then initialize the store immediately or later with cloudstic init -profile <name>.This saves to profiles.yaml:
There is no recovery option if both are lost. Your backups are permanently inaccessible. This is by design: encryption without a backdoor.Preventive measures:
Ensure you’re providing the correct current credentials:
# Unlock with current passwordcloudstic key passwd -password "current passphrase"# Or with platform keycloudstic key passwd -encryption-key <current-hex-key># Or with recovery keycloudstic key passwd -recovery-key "word1 word2 ... word24"
Total: 256 bits of entropy (same as the master key)
Words are lowercase, space-separated
Order matters
Example (do not use this):
abandon ability able about above absent absorb abstract absurd abuse access accidentaccount accuse achieve acid acoustic acquire across act action actor actress actual