我手动创建了一个旋转功能并将其链接到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文档非常混乱,有些甚至误导了我方向不同...为什么配置血腥旋转如此复杂....(哭泣)
答案 0 :(得分:1)
Secret Manager中的所有机密都使用密钥(AWS KMS)加密。请确保您的lambda具有权限以读取所需的密钥。
UPD:我的意思是逻辑遵循- Lambda必须具有读取密钥和使用密钥(KMS)解密Secret值的权限。
答案 1 :(得分:1)
确保该策略的“资源”部分中存在秘密arn。错误消息中提到-'未授权MyLambdaName执行:资源:MysecretARN上的secretsmanager:DescribeSecret'
但是我在允许lambda访问的资源列表中没有看到MysecretARN