为了账号安全,请及时绑定邮箱和手机立即绑定

AWS Secret Manager 更新

AWS Secret Manager 更新

幕布斯7119047 2023-07-18 10:25:15
是否有任何可能的方法可以更新 AWS Secret Manager 中的键/值,而无需检索当前值然后更新它们?我找到的当前解决方案首先从机密管理器中检索值:original_secret = client.get_secret_value(SecretId="my_first_secret")然后对它们进行更新并运行 update-secret 命令:updated_secret = original_secret.update({"UPDATE_KEY": "update_value"})client.update_secret(SecretId="my_secret_name", SecretString=json.dumps(updated_secret))但我不想检索秘密值。首选语言是 python。
查看完整描述

2 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

遗憾的是你不能这样做,因为秘密值实际上是不可变的。相反,您所说的“更新”只是 创建新版本秘密的过程:

当您更新 Secret 中的加密密钥值时,您将创建该 Secret 的新版本。新版本自动接收暂存标签 AWSCURRENT。

AWS 控制台会转储此过程,因为它看起来您可以就地“更新”密钥的值。相反,它只是复制当前版本,更新其值,并创建密钥值的新版本。所有这些都是在后端完成的,所以你看不到这一点。

但使用 AWS CLI,您可以使用list-secret-version-ids列出密钥值版本。如果这样做,您将看到您永远不会直接更新任何秘密值,您只是不断创建它的新版本,并且过去的值仍然存在(仅保留一个过去的值)。您始终可以使用get-secret-value检索旧版本。--version-id

所以你必须对 python 做同样的事情。获取密钥值的当前版本,在本地更新它,并创建该值的新版本。


查看完整回答
反对 回复 2023-07-18
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

您可以使用put_secret_value()

import boto3

client = boto3.client('secretsmanager')


# Create secret

client.create_secret(

    Name='foo',

    SecretString='bar'

)


# Update secret

client.put_secret_value(

    SecretId='foo',

    SecretString='bar2'

)


查看完整回答
反对 回复 2023-07-18
  • 2 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信