新しい 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 コンソールを開きます。
- ナビゲーションペインで [ロール]、[ロールを作成] の順に選択します。
- [AWS サービス] に [EC2] を選択し、ユースケースに [EC2] を選択したら 、[次へ: アクセス許可] を選択します。
- ユースケースの [ポリシー名] を選択し、[次へ: タグ] を選択したら、[次へ: 確認] を選択します。
- [ロール名] を入力してから、**[ロールを作成]**を選択します。
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 ロール