Vault - KV 存储引擎

Vault - KV 存储引擎

  • kv 存储引擎分为 v1 和 v2 两个版本,开发模式下默认是 v2 版本

  • kv 引擎使用版本控制机制,可以记录和跟踪历史上每个密码的变更和版本,同时还支持各种数据格式和多种访问控制策略。

v1版本

# 启用并挂载到kv1路径
vault secrets enable -version=1 -description="v1" -path="kv1" kv

# 查看
vault secrets list

# 查看详细信息
vault secrets list -format=json

# 禁用引擎(会删除这个引擎路径下的所有数据)
vault secrets disable "kv1/"
# 写入(put是覆盖)
vault kv put kv1/myapp/config username=admin password=secretpassword

# 列表
vault kv list kv1/

# 读取
vault kv get kv1/myapp/config
vault kv get -format=json kv1/myapp/config
vault kv get -format=json -feild=data kv1/myapp/config

# 删除
vault kv delete kv1/myapp/config

v2版本

相比于v1版本, 它支持多个版本的数据,允许 CAS 操作,可以设置存储限制和数据过期时间,并且支持复杂的访问策略。

v2版本还支持将数据版本存储在多个版本存储后端中,以提高数据的可用性和可靠性。

# 启用并挂载到kv2路径
vault secrets enable -version=2 -description="v2" -path="kv2" kv
# 或者
vault secrets enable -description="KV Version 2" -path="kv2" kv-v2

kv2 / 更像是由 kv 引擎实例化出来的实例,他不代表引擎本身。

# v1 升级到 v2
vault kv enable-versioning kv1
# 写入
vault kv put -mount=kv2 myapp/config username=admin pasword=secretpassword
# 或
vault kv put kv2/myapp/config username=admin password=secretpassword

# cas操作
vault kv put -cas=1 kv2/myapp/config key1=value1 key2=value2
# -cas=1 期望写入版本为1的secret,如果最新版本不是1, 那么就不会修改成功
# -cas=0 只有secret不存在时才会写入,可以防止覆盖已存在的secret

vault kv list kv2/
vault kv get kv2/myapp/config
vault kv get -format=json kv2/myapp/config
vault kv get -format=json -field=data kv2/myapp/config
vault kv get -field=key1 kv2/myapp/config
vault kv get -version=1 kv2/myapp/config
vault kv patch -cas=2 kv2/myapp/config key1=value1
vault kv patch -method=rw kv2/myapp/config key2=value2

Vault 下载:developer.hashicorp.com/vault/install

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值