CF删除堆栈后如何清除堆栈中Secret Manager里的Secret

0

【以下的问题经过翻译处理】 我有一个 CF 模板,里面有一个简单的secret,就像这样:

··· Credentials: Type: 'AWS::SecretsManager::Secret' Properties: Name: !Sub ${ProjectKey}.${StageName}.${ComponentId}.credentials Description: client credentials SecretString: !Sub '{"client_id":"${ClientId}","client_secret":"${ClientSecret}"}' ···

栈创建成功,secret也正确生成。

但是,当我再次删除堆栈并重新创建它时,我收到以下错误消息:

The operation failed because the secret pk.stage.compid.credentials already exists. (Service: AWSSecretsManager; Status Code: 400; Error Code: ResourceExistsException; Request ID: ###)

我想这是因为secret并没有真正被删除,而只是被标记为删除 x 天。

可以通过 CLI 立即删除secret,但是如何在 CF 模板中完成此操作?

我需要删除并重新创建堆栈,因为它是在源代码提交时自动触发的持续集成/交付管道的一部分。

profile picture
专家
已提问 5 个月前25 查看次数
1 回答
0

【以下的回答经过翻译处理】 你好,感谢联系我们。

当 CloudFormation 堆栈被删除时,Secrets Manager 会被调用,并且使用force-delete-without-recovery选项,以避免出现此情况。但是,我不确定为什么在你的特定情况中无法正常工作。如果你能私信给我更多细节(例如请求 ID),我将很乐意追踪此问题。

正如你提到的,你可以通过使用相同的 --force-delete-without-recovery 选项从 CLI 中调用 delete-secret 命令来解决此问题 - https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/delete-secret.html

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则