我为 AWS 创建了以下演示角色:
具有以下信任关系:
现在,我尝试将 EC2 实例的角色修改为
DemoRoleForEC2
,但该角色没有出现在下拉列表中:
根据这里的答案:IAM角色未在修改IAM角色页面的aws控制台中显示,它应该工作正常,因为信任关系正常,但事实并非如此。
我尝试过的其他操作是停止并重新启动 EC2 实例,并尝试从“修改 IAM 角色”页面创建角色,但没有任何效果。知道可能是什么问题吗?
只有具有关联实例配置文件的 EC2 实例才能使用角色,如 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html 中所述
使用 Web 控制台创建角色时,您需要在开始时指定它将用于 EC2 实例。在这种情况下,会自动创建实例配置文件,其名称与角色相同。
如果角色无法分配给EC2实例,您可以手动创建实例配置文件,例如:
aws iam create-instance-profile --instance-profile-name MyRoleInstanceProfile
aws iam add-role-to-instance-profile --role-name MyRole --instance-profile-name MyRoleInstanceProfile
然后该角色将出现在“修改 IAM 角色”页面的列表中。
另一个选项是简单地以正确的方式重新创建角色,并在向导中指定它用于 EC2 实例。
需要检查的一件事是您用于执行此任务的浏览器以及您可能安装的任何浏览器扩展。
我遇到了这个问题,我通过 AWS 控制台创建 EC2 角色,但没有创建实例配置文件。
我发现问题是因为我使用的是 chrome 并带有 ClearURLs 扩展。我禁用了此扩展,然后当我尝试通过控制台创建角色时,实例配置文件也被创建。
就我而言,我正在创建实例配置文件并使用 CLI 添加角色。然后,实例配置文件没有显示在 EMR 上,但出现在 EC2 上。经过多次尝试,我尝试使用相同的名称(并且没有特殊字符)命名实例配置文件和角色,然后它就成功了。