我正在使用“aws ec2 run-instances”命令(来自AWS 命令行界面 (CLI))来启动Amazon EC2实例。我想为我正在启动的 EC2 实例设置IAM 角色。IAM 角色已配置,我可以在从 AWS Web UI 启动实例时成功使用它。但是当我尝试使用该命令和“--iam-instance-profile”选项执行此操作时,它失败了。执行“aws ec2 run-instances help”会显示值的 Arn= 和 Name= 子字段。当我尝试使用“aws iam list-instance-profiles”查找 Arn 时,它给出了以下错误消息:
发生客户端错误 (AccessDenied):用户:arn:aws:sts::xxxxxxxxxxxx:assumed-role/shell/i-15c2766d 无权执行:iam:ListInstanceProfiles on resource: arn:aws:iam::xxxxxxxxxxxx:instance -轮廓/
(其中 xxxxxxxxxxxx 是我的 AWS 12 位帐号)
我通过 Web UI 查找 Arn 字符串,并通过 run-instances 命令上的“--iam-instance-profile Arn=arn:aws:iam::xxxxxxxxxxxxxx:instance-profile/shell”使用它,但失败了:
发生客户端错误 (UnauthorizedOperation):您无权执行此操作。
如果我完全不使用“--iam-instance-profile”选项,实例将启动,但它不会具有我需要的 IAM 角色设置。因此,该权限似乎与使用“--iam-instance-profile”或访问 IAM 数据有关。我重复了几次以防 AWS 故障(它们有时会发生)但没有成功。
我怀疑可能存在一个限制,即不允许具有 IAM 角色的实例启动具有更强大 IAM 角色的实例。但在这种情况下,我正在执行命令的实例具有与我尝试使用的相同的 IAM 角色。命名为“shell”(虽然我也尝试使用另一个,但没有运气)。
是否甚至不允许从实例(通过其 IAM 角色凭证)设置 IAM 角色?
使用 IAM 角色是否需要比启动普通实例更高的 IAM …