KV
Enable (KV v1)
vault secrets enable kv
Enable KV v1 secret engine (default is KV v1).vault secrets enable kv -version=1
Enable KV v1 secret engine.
vault kv enable-versioning my_kv_path
Enable versioning for a KV v1 Secret Engine (convert to KV v2).
Enable (KV v2)
vault secrets enable kv-v2
Enable KV v2 secret engine.vault secrets enable kv -version=2
Enable KV v2 secret engine.
List
vault kv list my_kv_path
List secrets in a kv secret engine.
Get
vault kv get my_secret
Read a secret.vault kv get -format=json my_secret | jq -r .data
Read a secret and output in JSON.
vault kv get -field=password my_credentials
Read one field.vault kv get -format=json my_credentials | jq -r .data.data.password
Read one field and output in JSON.
Put
vault kv put my_secret key=value
Create or replace a secret with one key value.vault kv put my_credentials username=myUser password=myPass
Create or replace a new secret composed multiple key values.
Patch (KV v2)
vault kv patch my_credentials password=myNewPass
Create a new version by replacing only provided values (partial update) instead of replacing all values likekv put.
Rollback (KV v2)
vault kv rollback -versions=12 my_secret
Restore a non deleted version (create a new version with the values of the one to restore).
Delete
vault kv delete my_secret
Permanently delete the secret.
Delete (KV v2)
vault kv delete -versions=12 my_secret
Mark the version as deleted (soft delete).
It can be restored withvault kv undelete.
Undelete (KV v2)
vault kv undelete -versions=12 my_secret
Restore a version of a secret. Only works if secret was not destroyed (destroyedproperty set tofalse).
Destroy (KV v2)
vault kv destroy -versions=12 my_secret
Permanently delete specified version(s) of a secret (cannot be recovered).
Metadata (KV v2)
vault kv metadata delete my_secret
Permanently deletes the secret (thus all of it versions).
Transit
Enable
vault secrets enable transit
Enable Transit secret engine.
Keys
vault list transit/keys
List Keys in Transit engine.
vault write -f transit/keys/my-key
Create a new Key.vault write -f transit/keys/my_key/rotate
Rotate the Key (create a new version).
Old versions of the key will still exist (they are managed bymin_decryption_version).
Encryption
vault write transit/encrypt/my_key plaintext=$(echo "my secret data" | base64)
Encrypt data.vault write -field=plaintext transit/decrypt/my_key ciphertext=vault:v1:qRuV... | base64 -d
Decrypt data (-field=plaintextto only get the base64 decrypted data).
vault write transit/rewrap/my-key ciphertext=vault:v1:8SDd...
Decrypt then re-encrypt data with a newer version of the key.
