IAM ロールを作成しましたが、インスタンスを起動してもこのロールがドロップダウンリストに表示されません。どうすればよいですか?

最終更新日: 2019 年 4 月 16 日

新しく AWS Identity and Access Management (IAM) ロールを作成しましたが、インスタンスを起動してもこのロールがドロップダウンリストに表示されません。

解決方法

ドロップダウンリストの表示にはインスタンスプロファイルが含まれていますが、IAM ロールは入っていません。しかし、インスタンスプロファイルに IAM ロールを追加することは可能です。表示させたい IAM ロールが追加されたインスタンスプロファイルを選択する必要があります。

インスタンスプロファイルにリンクされた新しい IAM ロールを作成するには、次の手順に従ってください。次に、インスタンスを起動したときにドロップダウンリストからインスタンスプロファイルを選択します。IAM コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) のいずれかを使用して、インスタンスプロファイルにリンクされた新しい IAM ロールを作成します。

IAM コンソールの使用

1.    IAM コンソールを開きます。

2.    ナビゲーションペインで、[ロール]、[ロールの作成] を順に選択します。

3.    AWS のサービスとして [EC2] を選択し、お客様のユースケースとして [EC2] を選択してから、[次のステップ: 権限] を選択します。

4.    ユースケースのポリシー名を選択し、[次のステップ: タグ]、[次のステップ: レビュー] を選択してください。

5.    ロール名を入力してから、[ロールの作成] を選択します。

ユースケースに EC2 を選択すると、Amazon Elastic Compute Cloud (Amazon EC2) のための信頼関係が作成されます。また、EC2 のユースケースでは、IAM ロールと同じ名前が付けられたインスタンスプロファイルが作成され、同じインスタンスプロファイルに IAM ロールが追加されます。IAM ロール作成時に EC2 を選択していない場合は、Amazon EC2 のインスタンスプロファイルおよび信頼関係は作成されません。

AWS CLI を使用する場合

重要: 始める前に、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

EC2 の 既存の IAM ロールの場合は、EC2 サービスプリンシパルを既存の信頼ポリシーに追加する必要があります。詳細については、「プリンシパルの指定」を参照してください。

注: IAM ロールとインスタンスプロファイルの名前が異なっている場合は、EC2 インスタンスを起動する時に必要な IAM ロールが追加されているインスタンスプロファイルを選択するようにしてください。IAM ロールがドロップダウンリストに表示されません。