AWS Lambda-是否可以限制IAM角色来创建具有特定前缀的功能?

时间:2019-06-27 23:54:49

标签: amazon-web-services aws-lambda amazon-iam

我为SaaS供应商添加了一个IAM角色,该供应商具有只读访问权限,但可以创建Lambda函数。

最初,他们为Lambda请求了广泛的权限:

"Statement": [
{
  "Action": [
    "lambda:CreateFunction",
    "lambda:DeleteFunction",
    "lambda:InvokeFunction",
    "lambda:UpdateFunctionCode",
    "lambda:UpdateFunctionConfiguration"
  ],
  "Effect": "Allow",
  "Resource": "*"
},

我不愿意允许通过这种方式访问​​他们不拥有的资源,即我们的业务关键功能。

当我向他们提出这个问题时,他们说他们的所有职能都将以他们的公司名称作为前缀(例如company_prefix),所以我认为我可以做到这一点:

...
"Resource": "arn:aws:lambda::<account>:function:company_prefix*"
...

但是在控制台编辑器中查看该策略表明存在问题: IAM Policy Editor

这行不通吗?是否可以通过这种方式限制Lambda函数权限?

1 个答案:

答案 0 :(得分:3)

是的,IAM确实为Lambda支持resource-level permissions

我在新的IAM用户上测试了您的政策的变体。对于与通配符匹配的Lambda函数名称,我成功了。对于不匹配的函数名称,我得到了AccessDeniedException

我没有测试所有列出的Lambda动作(仅为GetFunctionConfiguration,因为它很容易测试),因此请进行测试以确保它满足您的需求。

注意:进行此测试时,您需要耐心等待,因为IAM政策更改并非总是立即生效。