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