我是AWS的新手,我正在试图弄清楚角色政策的运作方式 . 我已经阅读了AWS文档,这篇文档非常全面,但我正在应用的策略仍然没有达到我的预期...让我解释一下
我正在尝试授予对某个角色的访问权限,以便在假定它时可以使用lambda进行操作
我创建了一个名为"deployer"的角色 .
然后我将以下政策附加到该角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Action": "lambda:*"
"Resource": "arn:aws:iam::<account_id>:role/deployer"
}
]
}
我的期望是政策说...指定的资源(部署者角色)是“允许”使用Lambda服务执行任何操作
但是,当我在前端切换到该角色时,我在Lambda仪表板中收到以下错误:
您无权执行:lambda:GetAccountSettings .
我发现的唯一解决方案是在策略中使用通配符资源属性...但是这种方式否定了尝试限制只访问该角色的目的
执行我想要的政策示例
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Action": "lambda:*"
"Resource": "*"
}
]
}
有人可以向我解释这里究竟发生了什么吗?我显然不明白资源属性用于什么......对我而言,第二个政策说任何资源都可以对Lambda做任何事......
谢谢
2 回答
您正在尝试定义将策略应用于资源属性的角色 - 这不是资源属性的用途 . resource属性与您希望用户能够调用的Lambda函数相关 .
要将此策略分配给角色,只需创建上述策略(适当地定义Lambda资源,如果您真的想将其应用于所有Lambda函数,则可以是通配符),然后将策略分配给IAM控制台中的角色 .
有关定义资源的更多信息,请参见here .
更改
至