为什么IAM的“ AmazonEC2FullAccess”策略不允许用户启动实例?

时间:2018-08-04 18:51:50

标签: amazon-web-services amazon-ec2

我设置的IAM developers组的附加政策如下:

enter image description here

但是,无法启动新实例。该组中的用户选择要与其关联的密钥对后,即到达最后一步后,他们在下一页收到以下消息:

  

启动失败

     

您无权执行此操作。编码授权失败消息:WZzytnkJ4T3-nkMYslM ...

鉴于这些政策,是什么阻止了开发人员启动新实例?

2 个答案:

答案 0 :(得分:5)

可能是使用 IAM角色启动了实例,并且该组没有iam:PassRole权限(在ec2:*权限空间之外)

您应添加以下策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PassRoleToEC2",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*"
        }
    ]
}

这句话“允许该用户将任何(*)角色传递给EC2实例”

实际上,您应该仅将此类权限限制为特定角色,否则普通用户可以选择管理员角色。然后,如果他们登录到实例,他们将有权访问对整个AWS账户具有管理员权限的凭证。

或者,不要启动实例时选择一个角色。然后应该启动正常(假设这是导致错误的问题)。

答案 1 :(得分:0)

用户需要PassRole权限。

角色必须与EC2实例的“启动”关联。

PassRole权限可帮助您确保用户不会将角色传递给EC2实例,该角色所具有的权限超出了您希望用户拥有的权限。

如以下示例所示,如果EC2启动要求访问S3,则用户必须能够传递所需的S3角色。

{
  "Effect":"Allow",
  "Action":"iam:PassRole",
  "Resource":"arn:aws:iam::123456789012:role/S3Access"
}

链接到文档: https://aws.amazon.com/blogs/security/granting-permission-to-launch-ec2-instances-with-iam-roles-passrole-permission/

相关问题