我设置的IAM developers
组的附加政策如下:
但是,无法启动新实例。该组中的用户选择要与其关联的密钥对后,即到达最后一步后,他们在下一页收到以下消息:
启动失败
您无权执行此操作。编码授权失败消息:WZzytnkJ4T3-nkMYslM ...
鉴于这些政策,是什么阻止了开发人员启动新实例?
答案 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"
}