如何限制 AWS lambda 只能访问一个角色

问题描述 投票:0回答:2

我创建了一个 lambda。我只需要提供对为此 lambda 创建的一个角色的访问权限,即只有该角色应该具有调用访问权限。帐户中可能还有其他角色可能对所有 lambda 具有调用访问权限,但我想限制这些角色不访问我的 lambda。 谁能建议一种方法来实现这种行为?

amazon-web-services aws-lambda cloud amazon-iam
2个回答
1
投票

附加到 lambda 函数的基于资源的策略将像 Maurice 评论的那样发挥作用。

以下是政策样本。除指定的主体外,所有主体都明确拒绝策略声明中指定的操作。仅允许 lambda_role 使用以下基于资源的策略调用 testfunction lambda。

{
  "Version": "2012-10-17",
  "Id": "default",
  "Statement": [
    {
      "Sid": "0001",
      "Effect": "Deny",
      "NotPrincipal": {
        "AWS": "arn:aws:iam::659266464590:role/service-role/lambda_role"
      },
      "Action": "lambda:InvokeFunction",
      "Resource": "arn:aws:lambda:us-east-1:659266464590:function:testfunction"
    }
  ]
}

0
投票

该问题具体解释了同一帐户中可能存在具有 lambda:InvokeFunction 的多个角色。这是关于如何创建没有 lambda:InvokeFunction 权限的角色。

默认情况下,账户中拥有特定 Lambda ARN 资源或账户中所有 Lambda 函数调用权限的任何 IAM 委托人都能够调用该函数。

Lambda 基于资源的策略也不是这里的答案,因为它只有 Allow 效果,策略中不支持 Deny 效果。

如果我们想要覆盖/限制帐户中的一般用户/角色权限,这里唯一适用的选项是组织策略

© www.soinside.com 2019 - 2024. All rights reserved.