当前位置: 首页 > 知识库问答 >
问题:

如何检查AWS secretsmanager循环是否成功完成

孟子墨
2023-03-14

在AWS secretsmanager中创建了一个秘密,使用lambda函数启用了自动旋转。当我第一次从cli触发旋转时,它还没有完成。这是手动在aws控制台中更新secret时secret的初始状态。

# 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日志在此创建处停止。ecret:成功地为ARN放置secret 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.

无法理解发生了什么。有人能帮忙吗?

共有1个答案

景恩
2023-03-14

不幸的是,没有开箱即用的方法,因为Secrets Manger没有内置SNS通知,也没有用于旋转完成时的CloudWatch事件。

因此,您必须自己构造一个解决方案,这可以使用SDK或CLI来完成。

对于CLI,您可以使用description-secret并在循环中提取秘密细节。在这个循环中,您必须查看版本的awpendingawscurrent标签。

从文档中:

相反,如果awdensing staging标签存在,但没有附加到与AWSCURRENT相同的版本,那么以后对RotateSecret的任何调用都假定以前的循环请求仍在进行中,并返回一个错误。

所以基本上,看看你的输出:

        {
            "VersionId": "704102f3-b36d-4529-b257-0457354d3c93",
            "VersionStages": [
                "AWSPENDING"
            ],
            "CreatedDate": 1592890351.334
        }
 类似资料:
  • 我正在使用Ruby和aws sdk从S3下载一个文件夹。如何检查每个文件是否已成功下载?这只是检查本地计算机上是否存在文件吗?

  • 问题内容: 好吧,我是SQL的新手,我刚刚读到,存储过程始终返回一个值,确定该过程中的查询是否已成功执行是一种很好的做法。 所以我有一个带有select语句的简单存储过程,如果要执行,我想返回1,否则返回-1。 您能告诉我如何用SQL编写该条件吗? 如果有关系,我的数据库是MS SQL Server。 谢谢你。 问题答案: 使用输出参数返回成功状态以及Try..Catch块

  • 我需要在。我发现了这里提到的一种方法。它表明: 快照完成后,使用更新的白名单启动原始连接器 但是如何才能发现快照是否完整呢?

  • 问题内容: 我用Java编写了一个简短的测试代码,以上传内存中生成的PDF文件。在此测试代码中,我仅使用一个虚拟字节数组,但在实际使用中,我将在该字节数组中放置生成的PDF(最多2-3页)。一切正常:上传文件并设置权限。 但是,由于返回了PutObjectResult,所以我想知道应该如何检查它。还是足以找到AmazonClientException和AmazonServiceException异

  • 问题内容: 检测下载是否完成的最佳方法是什么,因为此后我想更新数据库。 我尝试了PHP手册中的一些代码,但对我来说并没有多大作用: 问题答案: 但这并不能真正告诉您用户是否已完成下载。当 您 完成向用户发送字节后,它将告诉您,但它并没有说明用户实际收到了多少字节。 实际上,PHP(服务器端而非客户端语言)无法真正检测文件下载何时完成。最好的办法是在下载开始时将下载记录在数据库中。如果您绝对,完全和

  • 我正在尝试使用JunRAR提取RAR文件。但正如我从这个问题中读到的:OutOfMemoryError当我在Android上解压缩RAR文件时,JunRAR尚未针对Android进行优化。所以,我想做的是检查提取是否成功,然后如果失败则给出错误消息。(因为如果提取不成功,我的应用程序会崩溃)。有人能告诉我如何进行检查吗?我的线程在这里完成: 这是我的Logcat错误: