Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのインスタンスプロファイルをアタッチまたは置き換えたいと考えています。
解決策
EC2 インスタンスのインスタンスプロファイルをアタッチまたは置き換えるには、以下の手順に従ってください。
注:
- EC2 インスタンスを起動する権限と、AWS Identity and Access Management (AWS IAM) の役割を渡す権限が必要です。詳細については、「Amazon EC2 でのロールの使用に必要なアクセス許可」を参照してください。
- AWS マネジメントコンソールまたは AWS コマンドラインインターフェイス (AWS CLI) のいずれかを使用して IAM ロールを作成できます。
- AWS マネジメントコンソールを使用して EC2 をサービスとして選択した場合、インスタンスプロファイルとロール名は同じです。
- AWS CLI を使用して IAM ロールを作成する場合、AWS CLI を使用してインスタンスプロファイルも作成する必要があります。IAM ロール名とインスタンスプロファイル名は異なる場合があります。
- AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
AWS マネジメントコンソール
次の手順を実行します。
- Amazon EC2 コンソールを開き、[インスタンス] をクリックします。
- IAM ロールをアタッチするインスタンスを選択します。
- [詳細] で IAM ロールをチェックして、ロールがインスタンスにアタッチされていることを確認します。ロールがアタッチされている場合は、ロールへの変更がアプリケーションや AWS サービスへのアクセスに影響しないことを確認してください。
**注:**インスタンスの権限は、アタッチされている IAM ロールに基づいて変わります。インスタンスで実行されるアプリケーションが影響を受ける可能性があります。
- [アクション]、[セキュリティ] を選択し、[IAM ロールの変更] を選択します。
**注:**Amazon EC2 は、インスタンスプロファイルを IAM ロールのコンテナとして使用します。詳細については、「インスタンスプロファイル」を参照してください。
- [IAM ロールを選択] で、アタッチするインスタンスプロファイルを選択します。
- [保存] を選択します。
詳細については、「IAM ロールの作成 (コンソール)」を参照してください。
AWS CLI
次の手順を実行します。
-
create-instance-profile コマンドを実行してインスタンスプロファイルを作成します。
aws iam create-instance-profile --instance-profile-name EXAMPLEPROFILENAME
-
add-role-to-instance-profile コマンドを実行して、ロールをインスタンスプロファイルに追加します。
$ aws iam add-role-to-instance-profile --instance-profile-name EXAMPLEPROFILENAME --role-name EXAMPLEROLENAME
-
associate-iam-instance-profile コマンドを実行して、インスタンスプロファイルをインスタンスにアタッチします。
$ aws ec2 associate-iam-instance-profile --iam-instance-profile Name=EXAMPLEPROFILENAME --instance-id i-012345678910abcde
**注:**インスタンスプロファイルをインスタンスに関連付けた場合、associate-iam-instance-profile コマンドは失敗します。この問題を解決するには、describe-iam-instance-profile-associations コマンドを実行して、関連するインスタンス ID を取得します。次のいずれかを実行します。
replace-iam-instance-profile-association コマンドを実行してインスタンスプロファイルを置き換えます。
または、
disassociate-iam-instance-profile コマンドを実行してインスタンスプロファイルをデタッチし、associate-iam-instance-profile コマンドを再実行します。
-
describe-iam-instance-profile-sociations コマンドを実行して、IAM ロールがインスタンスにアタッチされていることを確認します。
$ aws ec2 describe-iam-instance-profile-associations --filters Name=instance-id,Values=i-012345678910abcde
関連情報
IAM ロールを使用して Amazon EC2 インスタンスで実行されているアプリケーションにアクセス権限を付与する
インスタンスプロファイルの使用
IAM と Amazon EC2 のトラブルシューティング