为Secret Manager配置凭据轮换时,关于Lambda执行角色的问题

时间:2020-01-31 11:24:10

标签: amazon-web-services aws-lambda amazon-iam credentials aws-secrets-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文档非常混乱,有些甚至误导了我方向不同...为什么配置血腥旋转如此复杂....(哭泣)

2 个答案:

答案 0 :(得分:1)

Secret Manager中的所有机密都使用密钥(AWS KMS)加密。请确保您的lambda具有权限以读取所需的密钥

UPD:我的意思是逻辑遵循- Lambda必须具有读取密钥和使用密钥(KMS)解密Secret值的权限。

答案 1 :(得分:1)

确保该策略的“资源”部分中存在秘密arn。错误消息中提到-'未授权MyLambdaName执行:资源:MysecretARN上的secretsmanager:DescribeSecret'

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