我正在使用“ aws ec2 run-instances”命令(来自AWS命令行界面(CLI))启动Amazon EC2实例。我想为我要启动的EC2实例设置IAM角色。已配置IAM角色,从AWS Web UI启动实例时,我可以成功使用它。但是,当我尝试使用该命令和“ --iam-instance-profile”选项执行此操作时,它失败了。进行“ aws ec2运行实例帮助”会显示该值的Arn =和Name =子字段。当我尝试使用“ aws iam list-instance-profiles”查找Arn时,出现以下错误消息:
发生客户端错误(AccessDenied):用户:arn:aws:sts :: xxxxxxxxxxxx:assumed-role / shell / i-15c2766d无权执行:iam:ListInstance资源上的配置文件:arn:aws:iam :: xxxxxxxxxxxx:instance -轮廓/
(其中xxxxxxxxxxxx是我的AWS 12位数字帐号)
我通过Web UI查找了Arn字符串,并在run-instances命令上通过“ --iam-instance-profile Arn = arn:aws:iam :: xxxxxxxxxxxx:instance-profile / shell”使用了该字符串,但失败了:
发生客户端错误(UnauthorizedOperation):您无权执行此操作。
如果我完全不使用“ --iam-instance-profile”选项,该实例将启动,但不会具有我需要的IAM角色设置。因此,许可似乎与使用“ --iam-instance-profile”或访问IAM数据有关。如果出现AWS故障,我重复了几次(有时会发生),但没有成功。
我怀疑可能存在一个限制,即不允许具有IAM角色的实例启动具有更强大的IAM角色的实例。但是在这种情况下,我正在执行命令的实例具有与我尝试使用的IAM角色相同的角色。命名为“ shell”(尽管我也尝试使用另一个,没有运气)。
实例是否甚至不允许设置IAM角色(通过其IAM角色凭据)?
使用IAM角色所需的IAM角色权限是否比仅启动普通实例所需的权限高?
“ --iam-instance-profile”是指定IAM角色的适当方法吗?
我需要使用Arn字符串的子集还是以其他方式设置其格式?
是否可以设置一个可以进行任何IAM角色访问的IAM角色(也许是“超级根IAM” ...组成此名称)?
仅供参考,一切都涉及在实例上运行Linux。另外,由于无法在台式机上安装这些工具,因此我从一个实例运行所有这些程序。那并且我不想按照这里的AWS建议将IAM用户凭据放在任何AWS存储上。
回答后:
我没有提到“ PowerUserAccess”(相对于“ AdministratorAccess”)的启动实例权限,因为在提出问题时我没有意识到需要其他访问权限。我以为IAM角色是与发布相关的“信息”。但这还不仅仅如此。这是授予权限。