我创建了新的 AWS Identity and Access Management (IAM) 角色,但在启动实例时无法在下拉列表中找到该角色。
解决方法
下拉列表包含实例配置文件,不包含 IAM 角色,但您可以向实例配置文件添加 IAM 角色。必须选择添加了所需 IAM 角色的实例配置文件。
按照以下步骤创建与实例配置文件关联的新 IAM 角色。然后,在启动实例时从下拉列表中选择该实例配置文件。使用 IAM 控制台或 AWS 命令行界面 (AWS CLI) 创建与实例配置文件关联的新 IAM 角色。
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
使用 IAM 控制台
此示例使用 Amazon Elastic Compute Cloud (Amazon EC2) 来说明选择 EC2 作为用例可为 Amazon EC2 创建信任关系。EC2 用例还可以创建以下内容:
- 实例配置文件。
- 为实例配置文件提供与 IAM 角色相同的名称。
- 将 IAM 角色添加到同一个实例配置文件中。
**注意:**如果在创建 IAM 角色时未选择 EC2,则不会为 Amazon EC2 创建实例配置文件和信任关系。
- 打开 IAM 控制台。
- 在导航窗格中,选择 Roles(角色),然后选择 Create role(创建角色)。
- 选择 EC2 作为 AWS service(AWS 服务),选择 EC2 作为您的用例,然后选择 Next: Permissions(下一步:权限)。
- 为您的用例选择 Policy name(策略名称),选择 Next: Tags(下一步:标签),然后选择 Next: Review(下一步:审核)。
- 输入 Role name(角色名称),然后选择 Create role(创建角色)。
使用 AWS CLI
-
创建名为 Test-Role-Trust-Policy.json 的文件并将以下策略粘贴到该文件中:
{ "Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
-
通过运行以下命令创建 IAM 角色:
$ aws iam create-role --role-name Test-Role --assume-role-policy-document file://Test-Role-Trust-Policy.json
-
通过运行以下命令创建实例配置文件:
$ aws iam create-instance-profile --instance-profile-name Webserver
-
通过运行以下命令将 IAM 角色添加到实例配置文件中:
$ aws iam add-role-to-instance-profile --role-name Test-Role --instance-profile-name Webserver
-
对于 EC2 的现有 IAM 角色,必须将 EC2 服务主体添加到其现有信任策略中。有关详细信息,请参阅如何指定主体。
**注意:**如果 IAM 角色和实例配置文件具有不同的名称,请确保选择正确的实例配置文件。启动 EC2 实例时,正确的实例配置文件中添加了所需的 IAM 角色。IAM 角色不会出现在下拉列表中。
相关信息
更新角色的设置
编辑现有 IAM 角色的信任关系
Amazon EC2 的 IAM 角色