【发布时间】:2018-11-02 21:51:37
【问题描述】:
我对 AWS 比较陌生,正在尝试弄清楚角色策略是如何工作的。我已经阅读了非常全面的 AWS 文档,但我应用的政策仍然没有达到我的预期......让我解释一下
我正在尝试授予对某个角色的访问权限,以便在假定该角色时,它可以使用 lambda 进行操作
我创建了一个名为“部署者”的角色。
然后,我将以下政策附加到该角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Action": "lambda:*"
"Resource": "arn:aws:iam::<account_id>:role/deployer"
}
]
}
我的期望是政策说...指定的资源(部署者角色)是“允许”对 Lambda 服务执行任何操作
但是,当我在前端切换到该角色时,我在 Lambda 仪表板中收到以下错误:
您无权执行:lambda:GetAccountSettings。
我发现的唯一解决方案是在策略中使用通配符 Resource 属性...但是这否定了尝试限制仅访问该角色的目的
按照我的意愿行事的政策示例
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Action": "lambda:*"
"Resource": "*"
}
]
}
有人可以向我解释这里实际发生了什么吗?我显然不明白 Resource 属性的用途......对我来说,第二个 Policy 说任何资源都可以用 Lambda 做任何事情......
谢谢
【问题讨论】:
-
不能这样定义。当我尝试创建类似于您的 IAM 角色时,我收到以下消息:您选择了需要函数资源类型的操作。将您的资源更改为 Lambda 函数 ARN(而不是角色名称)。
标签: amazon-web-services aws-lambda aws-iam