在AWS Secretsmanager中创建了一个机密,并使用lambda功能启用了自动轮换。 当我第一次从cli触发旋转时,还没有完成。在aws控制台中手动更新密码时,这是密码的初始状态。
# aws secretsmanager list-secret-version-ids --secret-id ******
{
"Versions": [
{
"VersionId": "9e82b9e2-d074-478e-83a5-baf4e578cb49",
"VersionStages": [
"AWSCURRENT"
],
"LastAccessedDate": 1592870400.0,
"CreatedDate": 1592889913.431
},
{
"VersionId": "e32ddaf8-7f21-40e2-adf8-f976b8f3f104",
"VersionStages": [
"AWSPREVIOUS"
],
"LastAccessedDate": 1592870400.0,
"CreatedDate": 1592887518.46
}
],
"ARN": "arn:aws:secretsmanager:us-east-1:***********:secret:***********",
"Name": "*******"
}
现在我从aws cli触发了旋转
aws secretsmanager rotate-secret --secret-id ******
# aws secretsmanager list-secret-version-ids --secret-id ********
{
"Versions": [
{
"VersionId": "704102f3-b36d-4529-b257-0457354d3c93",
"VersionStages": [
"AWSPENDING"
],
"CreatedDate": 1592890351.334
},
{
"VersionId": "e32ddaf8-7f21-40e2-adf8-f976b8f3f104",
"VersionStages": [
"AWSPREVIOUS"
],
"LastAccessedDate": 1592870400.0,
"CreatedDate": 1592887518.46
},
{
"VersionId": "9e82b9e2-d074-478e-83a5-baf4e578cb49",
"VersionStages": [
"AWSCURRENT"
],
"LastAccessedDate": 1592870400.0,
"CreatedDate": 1592889913.431
}
],
"ARN": "arn:aws:secretsmanager:us-east-1:**********:secret:********",
"Name": "********"
}
Cloudwatch日志在此 createSecret处停止:已成功将ARN arn:aws:secretsmanager:xxxxxxx的秘密设置为。看起来只调用了createsecret函数。 当我再次旋转秘密时,在cli中获取此输出
An error occurred (InvalidRequestException) when calling the RotateSecret operation: A previous rotation isn't complete. That rotation will be reattempted.
无法理解正在发生的事情。有人可以帮忙吗?
答案 0 :(得分:0)
不幸的是,这没有现成的方法,因为Secrets Manger没有内置SNS通知,也没有CloudWatch Events来完成轮换。
因此,您必须自己构建解决方案,这可以使用SDK或CLI来完成。
对于CLI,您可以使用describe-secret并在循环中提取秘密详细信息。在循环中,您必须查看AWSPENDING
和AWSCURRENT
标签的版本。
来自docs:
如果相反,AWSPENDING暂存标签出现在但未附加,与AWSCURRENT相同,则以后对RotateSecret的调用均假定先前的轮播请求仍在进行中并返回错误。
所以基本上,看一下您的输出:
{
"VersionId": "704102f3-b36d-4529-b257-0457354d3c93",
"VersionStages": [
"AWSPENDING"
],
"CreatedDate": 1592890351.334
}
您有一个带有AWSPENDING
标签的版本,该版本未与AWSCURRENT
附加到同一版本。这表明轮播正在进行中。
当版本处于以下两种状态之一时,轮换完成:
AWSPENDING和AWSCURRENT暂存标签粘贴到相同版本的密码,或者AWSPENDING暂存标签未粘贴到该秘密的任何版本。>
答案 1 :(得分:0)
成功旋转后,秘密管理器将通过CloudTrail-'RotationSucceeded'发布事件。
有关如何在该CloudTrail事件中设置Cloudwatch警报的更多信息,请参见此-https://docs.aws.amazon.com/secretsmanager/latest/userguide/monitoring.html