![](/img/trans.png)
[英]AWS Secret Manager Rotation Lambda is timing out on a DB secrets rotation
[英]Condition in AWS resource policy not allowing lambda to access Secrets Manager Secret
我对 Secrets Manager 密钥有以下资源策略
{
"Version" : "2012-10-17",
"Statement" : [ {
"Sid" : "rp1",
"Effect" : "Allow",
"Principal" : {
"AWS" : ["*"]
},
"Action" : [ "secretsmanager:UpdateSecret", "secretsmanager:GetSecretValue" ],
"Resource" : "arn:aws:secretsmanager:us-east-1:1111111111111111:secret:my-secret-VH7Qgf",
"Condition" : {
"ArnLike" : {
"aws:PrincipalArn" : "arn:aws:iam::1111111111111111:role/my-role*"
}
}
} ]
}
我的 lambda 具有以下执行者角色 arn; arn:aws:iam::1111111111111111:role/my-role-foo
但是它的执行失败了:
"errorMessage": "An error occurred (AccessDeniedException) when calling the GetSecretValue operation: User: arn:aws:sts::1111111111111111:assumed-role/my-secret/my-lambda is not authorized to perform: secretsmanager:GetSecretValue on resource: my-secret because no identity-based policy allows the secretsmanager:GetSecretValue action",
这是为什么?
AWS 资源策略无法授予对附加资源的权限。
因此,即使您在资源策略中允许“操作”,也不意味着尝试访问的资源(使用者)具有特权。
要使资源(消费者)具有访问权限,它需要通过附加到它的 AWS IAM 角色授予的权限。
因此,您需要将secretsmanager:GetSecretValue
作为附加到 AWS Lambda function 的 AWS IAM 角色arn:aws:iam::1111111111111111:role/my-role-foo
的一部分。
我希望它有帮助
虽然不是 100% 确定,但我认为这受到可应用于 Secrets Manager 的Condition
语句的限制。
文档表明可以应用StringLike
或ArnLike
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.