我创建了 IAM 角色,但当我启动实例时,该角色没有出现在下拉列表中。我该怎么办?

2 分钟阅读
0

我创建了新的 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 创建实例配置文件和信任关系。

  1. 打开 IAM 控制台
  2. 在导航窗格中,选择 Roles(角色),然后选择 Create role(创建角色)。
  3. 选择 EC2 作为 AWS service(AWS 服务),选择 EC2 作为您的用例,然后选择 Next: Permissions(下一步:权限)。
  4. 为您的用例选择 Policy name(策略名称),选择 Next: Tags(下一步:标签),然后选择 Next: Review(下一步:审核)。
  5. 输入 Role name(角色名称),然后选择 Create role(创建角色)。

使用 AWS CLI

  1. 创建名为 Test-Role-Trust-Policy.json 的文件并将以下策略粘贴到该文件中:

    {  "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "",
          "Effect": "Allow",
          "Principal": {
            "Service": "ec2.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
  2. 通过运行以下命令创建 IAM 角色

    $ aws iam create-role --role-name Test-Role --assume-role-policy-document file://Test-Role-Trust-Policy.json
  3. 通过运行以下命令创建实例配置文件

    $ aws iam create-instance-profile --instance-profile-name Webserver
  4. 通过运行以下命令将 IAM 角色添加到实例配置文件中:

    $ aws iam add-role-to-instance-profile --role-name Test-Role --instance-profile-name Webserver
  5. 对于 EC2 的现有 IAM 角色,必须将 EC2 服务主体添加到其现有信任策略中。有关详细信息,请参阅如何指定主体

**注意:**如果 IAM 角色和实例配置文件具有不同的名称,请确保选择正确的实例配置文件。启动 EC2 实例时,正确的实例配置文件中添加了所需的 IAM 角色。IAM 角色不会出现在下拉列表中。

相关信息

更新角色的设置

编辑现有 IAM 角色的信任关系

Amazon EC2 的 IAM 角色

AWS 官方
AWS 官方已更新 7 个月前