AWS Secret Manager 更新

是否有任何可能的方法可以更新 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。


幕布斯7119047
浏览 120回答 2
2回答

饮歌长啸

遗憾的是你不能这样做,因为秘密值实际上是不可变的。相反,您所说的“更新”只是 创建新版本秘密的过程:当您更新 Secret 中的加密密钥值时,您将创建该 Secret 的新版本。新版本自动接收暂存标签 AWSCURRENT。AWS 控制台会转储此过程,因为它看起来您可以就地“更新”密钥的值。相反,它只是复制当前版本,更新其值,并创建密钥值的新版本。所有这些都是在后端完成的,所以你看不到这一点。但使用 AWS CLI,您可以使用list-secret-version-ids列出密钥值版本。如果这样做,您将看到您永远不会直接更新任何秘密值,您只是不断创建它的新版本,并且过去的值仍然存在(仅保留一个过去的值)。您始终可以使用get-secret-value检索旧版本。--version-id所以你必须对 python 做同样的事情。获取密钥值的当前版本,在本地更新它,并创建该值的新版本。

MMMHUHU

您可以使用put_secret_value():import boto3client = boto3.client('secretsmanager')# Create secretclient.create_secret(    Name='foo',    SecretString='bar')# Update secretclient.put_secret_value(    SecretId='foo',    SecretString='bar2')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python