小编q_k*_*kim的帖子

允许秘密管理器中的秘密用于特定 AWS 账户中的所有 lambda 函数

我希望拥有一个可供 AWS 账户中具有不同角色的所有 lambda 访问的秘密。一种选择是附加一个允许所有 lambda 访问机密的策略,但考虑到我们有大量 lambda,我想知道是否可以使用机密管理器中的资源权限执行相反的操作。

我已将以下策略附加到该秘密中。

{
  "Version" : "2012-10-17",
  "Statement" : [ {
    "Effect" : "Allow",
    "Principal" : {
      "Service" : "lambda.amazonaws.com"
    },
    "Action" : "secretsmanager:GetSecretValue",
    "Resource" : "arn:aws:secretsmanager:us-east-1:{AWS_ACCOUNT_ID}:secret:dummy-secret-46DfjO",
    "Condition" : {
      "StringEquals" : {
        "aws:sourceAccount" : "{AWS_ACCOUNT_ID}"
      }
    }
  } ]
}
Run Code Online (Sandbox Code Playgroud)

我希望以下策略允许读取 AWS_ACCOUT_ID 中的所有 lambda,但我仍然收到以下错误:

错误 | 尝试从 Secrets Manager 读取 API 密钥时出错:Secrets Manager 读取错误:AccessDeniedException:用户:arn:aws:sts::AWS_ACCOUNT_ID:assumed-role/dummy-role-name 无权执行:secretsmanager:GetSecretValue 对资源: arn:aws:secretsmanager:us-east-1:AWS_ACCOUNT_ID:secret:dummy-secret-46DfjO 因为没有基于身份的策略允许 Secretsmanager:GetSecretValue 操作

我在这里缺少什么?

amazon-web-services aws-lambda aws-secrets-manager

3
推荐指数
1
解决办法
1601
查看次数