为 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
我手动创建了一个轮换函数并将其链接到 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