首页 文章

AWS IAM角色策略资源限制

提问于
浏览
2

我是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 回答

  • 2

    您正在尝试定义将策略应用于资源属性的角色 - 这不是资源属性的用途 . resource属性与您希望用户能够调用的Lambda函数相关 .

    要将此策略分配给角色,只需创建上述策略(适当地定义Lambda资源,如果您真的想将其应用于所有Lambda函数,则可以是通配符),然后将策略分配给IAM控制台中的角色 .

    有关定义资源的更多信息,请参见here .

  • 2

    更改

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "1",
                "Effect": "Allow",
                "Action": "lambda:*"
                "Resource": "arn:aws:iam::<account_id>:role/deployer"
            }
        ]
    }
    

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "1",
                "Effect": "Allow",
                "Action": "lambda:*"
                "Resource": "arn:aws:lambda:<region>:<account_number>:function:my-awesome-lambda-function"
            }
        ]
    }
    

相关问题