为 Secret Manager 配置凭证轮换时有关 Lambda 执行角色的问题

Question about Lambda execution role when configuring credential rotation for Secret Manager

我手动创建了一个轮换函数并将其链接到 Secret Manager,我已经设法启用了轮换,但是当我在 CloudWatch 中检查此轮换 lambda 的日志时,它显示错误:

[ERROR] ClientError: An error occurred (AccessDeniedException) 
when calling the DescribeSecret operation: 
User: arn:awsxxxxxxx:assumed-role/xxxxx-lambda-exec-role/
MyLambdaName is not authorized to perform: secretsmanager:DescribeSecret 
on resource: MysecretARN

我知道我的执行角色有问题,所以我检查了附加到这个角色的策略,它有:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret",
                "lambda:InvokeFunction",
                "secretsmanager:PutSecretValue",
                "secretsmanager:UpdateSecretVersionStage",
                "secretsmanager:RotateSecret"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:xxx",
                "arn:aws:lambda:us-east-1:xxx"
            ]
        }
    ]
}

我还将“AWSLambdaBasicExecutionRole”附加到我的 exec 角色,我是否遗漏了其他内容?为什么我一直收到那个错误,我一直在搞乱这整个旋转的事情,筋疲力尽!请帮忙

我也尝试添加一些 KMS 操作,但仍然出现相同的错误...我已经为此工作了几天,AWS 文档非常混乱,有些甚至误导我一个完全不同的方向。。。为什么配置一个该死的旋转这么复杂。。。(哭)

Secrete manager 中的所有秘密都使用密钥 (AWS KMS) 加密。请确保您的 lambda 具有 读取所需密钥的权限

UPD:我的意思是逻辑如下- Lambda 必须有权限读取 Secret 并使用密钥 (KMS) 来解密 Secret 的值。

确保机密 arn 存在于策略的资源部分中。错误消息提到 - 'MyLambdaName is not authorized to perform: secretsmanager:DescribeSecret on resource: MysecretARN'

但我在您允许 lambda 访问的资源列表中没有看到 MysecretARN