新しい AWS Identity and Access Management (IAM) ロールを作成しましたが、インスタンスの起動時にこのロールがドロップダウンリストに表示されません。
解決方法
ドロップダウンリストの表示にはインスタンスプロファイルが含まれていますが、IAM ロールは含まれていません。しかし、インスタンスプロファイルに IAM ロールを追加することは可能です。表示させたい IAM ロールが追加されたインスタンスプロファイルを選択する必要があります。
インスタンスプロファイルにリンクされた新しい IAM ロールを作成するには、次の手順に従ってください。次に、インスタンスを起動したときにドロップダウンリストからインスタンスプロファイルを選択します。IAM コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) のいずれかを使用して、インスタンスプロファイルに関連付けられた新しい IAM ロールを作成します。
注意: AWS CLI コマンドの実行時にエラーが発生する場合は、AWS CLI の最新バージョンを使用していることを確認してください。
IAM コンソールの使用
この例では、ユースケースとして EC2 を選択することで Amazon EC2 の信頼関係が作成されることを示すために、Amazon Elastic Compute Cloud (Amazon EC2) を使用します。EC2 ユースケースは以下も作成します。
- インスタンスプロファイル。
- インスタンスプロファイルに IAM ロールと同じ名前を付けます。
- IAM ロールを同じインスタンスプロファイルに追加します。
注意: IAM ロール作成時に EC2 が選択されていない場合、Amazon EC2 のインスタンスプロファイルおよび信頼関係は作成されません。
1. IAM コンソールを開きます。
2. ナビゲーションペインで、[Roles] (ロール)、[Create role] (ロールの作成) を順に選択します。
3. AWS のサービスとして [EC2] を選択し、お客様のユースケースとして [EC2] を選択してから、[次のステップ: 権限] を選択します。
4. ユースケースのポリシー名を選択し、[次のステップ: タグ]、[次のステップ: レビュー] を選択してください。
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
EC2 の 既存の IAM ロールの場合は、EC2 サービスプリンシパルを既存の信頼ポリシーに追加する必要があります。詳細については、「
プリンシパルの指定」を参照してください。
注意: IAM ロールとインスタンスプロファイルの名前が異なる場合は、必ず正しいインスタンスプロファイルを選択するようにしてください。正しいインスタンスプロファイルには、EC2 インスタンスの起動時に必要な IAM ロールが追加されています。この IAM ロールはドロップダウンリストには表示されません。
関連情報
ロールの修正
既存のロールの信頼関係の編集
Amazon EC2 の IAM ロール