0

我计划实施 AssumeRole 场景,所以下面是场景

  1. 用户将能够创建/停止 Ec2 实例但不能终止。
  2. 要终止,他必须承担角色(要承担的角色 Ec2FullAccess)

我做了以下

  1. 创建一个具有启动/停止/启动 Ec2 实例的权限的用户Test1 ,并提供了担任角色 (EC2FullAccess) 的权限,以下是用户的策略

    {
        "Version": "2012-10-17",
        "Statement": [<br>
            {
                "Action": "ec2:*",
                "Effect": "Allow",
                "Resource": "*"
            },
            {
                "Effect": "Deny",
                "Action": "ec2:TerminateInstances",
                "Resource": "*"
            },
            {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Resource": "arn:aws:iam::226904037275:role/EC2FullAccess"
            }
        ]
    }
  1. 在同一个账户中创建一个名为 EC2FullAccess 的角色,该角色将授予终止 Ec2 实例的权限 Ec2FullAccess 使用 AmazonEC2FullAccess 权限策略 下面是其信任策略
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
} 

现在,当我以 IAM 用户Test1身份登录然后单击切换角色时,我提供以下详细信息

账户:1234
角色:EC2FullAccess

当我单击切换角色时,我
在一个或多个字段中收到以下错误无效信息。检查您的信息或联系您的管理员。

我错过了什么

4

1 回答 1

1

您可以通过以下方式创建角色:

  • 创建角色
  • 对于受信任实体的类型,选择另一个 AWS 账户并输入同一账户的账户 ID (它显示在与“切换角色”命令相同的菜单中)——这可能看起来很奇怪,但它会在信任政策。
  • 附加所需的策略并保存

然后,使用Switch Role

顺便说一句,分配EC2FullAccess可能是多余的——它允许在 EC2 中执行任何操作,包括删除 VPC、删除 Amazon EBS 卷、更改网络设置等。我建议您创建一个授予TerminateInstances权限的特定策略,甚至可能减少该权限下到特定实例(例如按标签或 VPC)。

于 2020-11-18T20:45:16.603 回答