KV
Enable (KV v1)
vault secrets enable kvEnable KV v1 secret engine (default is KV v1).
vault secrets enable kv -version=1Enable KV v1 secret engine.
vault kv enable-versioning my_kv_pathEnable versioning for a KV v1 Secret Engine (convert to KV v2).
Enable (KV v2)
vault secrets enable kv-v2Enable KV v2 secret engine.
vault secrets enable kv -version=2Enable KV v2 secret engine.
List
vault kv list my_kv_pathList secrets in a kv secret engine.
Get
vault kv get my_secretRead a secret.
vault kv get -format=json my_secret | jq -r .dataRead a secret and output in JSON.
vault kv get -field=password my_credentialsRead one field.
vault kv get -format=json my_credentials | jq -r .data.data.passwordRead one field and output in JSON.
Put
vault kv put my_secret key=valueCreate or replace a secret with one key value.
vault kv put my_credentials username=myUser password=myPassCreate or replace a new secret composed multiple key values.
Patch (KV v2)
vault kv patch my_credentials password=myNewPassCreate a new version by replacing only provided values (partial update) instead of replacing all values like
kv put
.
Rollback (KV v2)
vault kv rollback -versions=12 my_secretRestore a non deleted version (create a new version with the values of the one to restore).
Delete
vault kv delete my_secretPermanently delete the secret.
Delete (KV v2)
vault kv delete -versions=12 my_secretMark the version as deleted (soft delete).It can be restored with
vault kv undelete
.
Undelete (KV v2)
vault kv undelete -versions=12 my_secretRestore a version of a secret. Only works if secret was not destroyed (
destroyed
property set tofalse
).
Destroy (KV v2)
vault kv destroy -versions=12 my_secretPermanently delete specified version(s) of a secret (cannot be recovered).
Metadata (KV v2)
vault kv metadata delete my_secretPermanently deletes the secret (thus all of it versions).
Transit
Enable
vault secrets enable transitEnable Transit secret engine.
Keys
vault list transit/keysList Keys in Transit engine.
vault write -f transit/keys/my-keyCreate a new Key.
vault write -f transit/keys/my_key/rotateRotate the Key (create a new version).Old versions of the key will still exist (they are managed by
min_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 -dDecrypt data (
-field=plaintext
to 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.