修改 EC2 服务角色,以便同一账户中的 IAM 用户可以代入该角色

Rey*_*rga 1 roles amazon-ec2 amazon-web-services amazon-iam

我负责ssm-roleEC2。我希望另一个 IAM 用户启动ssm-role附加的 EC2 实例。

政策附有ssm-roleAmazonEC2RoleforSSM

信任关系ssm-role

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com",
        "AWS": "arn:aws:iam::<ACC_ID>:user/test-user"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我为想要承担的用户添加了以下内联策略ssm-role

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "test",
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": "arn:aws:iam::<ACC_ID>:role/ssm-role"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

尽管如此,test-user仍无法启动ssm-role附带的 EC2。

任何帮助将不胜感激。

注意:测试用户有EC2FullAccess

Joh*_*ein 5

要启动具有附加角色的 Amazon EC2 实例,发出请求的 IAM 用户需要拥有iam:PassRole给定角色的权限。

这是为了防止潜在的“权限提升”情况,例如:

  • 用户的权限有限
  • 他们启动一个 EC2 实例,指定具有提升权限的角色
  • 他们登录 EC2 实例并使用角色的权限来执行通常不允许他们执行的功能

因此,用户必须iam:PassRole(至少)拥有给定角色的权限才能启动使用该角色的实例。

请参阅:授予用户将角色传递给 AWS 服务的权限 - AWS Identity and Access Management