インスタンスへの IAM ロールのアタッチ
IAM ロールはインスタンスの起動時または起動後に作成してインスタンスにアタッチできます。IAM ロールを置き換えたりデタッチしたりすることもできます。
インスタンスの起動中に IAM ロールを作成してアタッチする (推奨)
-
EC2 インスタンスの起動中に [高度な詳細] を展開します。
-
[IAM インスタンスプロファイル] セクションで、[新しい IAM ロールを作成] を選択します。
-
以下を実行できるインラインロールの作成フォームが開きます。
-
[ロール名] を指定する (例: EC2-S3-Access-Role)
-
AWS マネージドポリシーを選択するか、インスタンス用のカスタムポリシーを作成することで許可を定義する
例えば、S3 へのアクセス権を付与するには AmazonS3ReadOnlyAccess マネージドポリシーを選択します。
-
ec2.amazonaws.com によるロールの引き受けを許可する信頼ポリシーを確認する
-
メタデータ用のオプションのタグを追加する
-
[ロールの作成] を選択してください。
新しく作成されたロールが自動的に選択され、インスタンスの起動時にインスタンスプロファイル経由でインスタンスにアタッチされます。
インスタンスの起動中にコンソールを使用してロールを作成するときは、ロールと同じ名前のインスタンスプロファイルが自動的に作成されます。インスタンスプロファイルは、起動時に IAM ロール情報をインスタンスに渡すコンテナです。
IAM ロールの作成と使用の詳細については、「IAM ユーザーガイド」の「ロール」を参照してください。
インスタンスの起動中に既存の IAM ロールをアタッチする
Amazon EC2 コンソールを使用して起動時に IAM ロールをインスタンスにアタッチするには、[高度な詳細] を展開します。[IAM インスタンスプロファイル] で、ドロップダウンリストから IAM ロールを選択します。
IAM コンソールを使用して IAM ロールを作成した場合はインスタンスプロファイルが自動的に作成され、ロールと同じ名前が付けられています。AWS CLI、API、または AWS SDK を使用して IAM ロールを作成した場合はインスタンスプロファイルにロールと異なる名前を付けた可能性があります。
実行中または停止しているインスタンスに IAM ロールをアタッチできます。インスタンスに既に IAM ロールがアタッチされている場合はそれを新しい IAM ロールに置き換える必要があります。
- Console
-
- AWS CLI
-
IAM ロールをインスタンスにアタッチするには
associate-iam-instance-profile コマンドを使用して、IAM ロールをインスタンスにアタッチします。インスタンスプロファイルを指定する際にはインスタンスプロファイルの Amazon リソースネーム (ARN) を使用することも、そのインスタンスプロファイルの名前を使用することもできます。
aws ec2 associate-iam-instance-profile \
--instance-id i-1234567890abcdef0 \
--iam-instance-profile Name="TestRole-1"
- PowerShell
-
IAM ロールをインスタンスにアタッチするには
Register-EC2IamInstanceProfile コマンドレットを使用します。
Register-EC2IamInstanceProfile `
-InstanceId i-1234567890abcdef0 `
-IamInstanceProfile_Name TestRole-1
既に IAM ロールがアタッチされているインスタンスで IAM ロールを置き換えるには、インスタンスが実行されている必要があります。既存のロールをデタッチしないでインスタンスの IAM ロールを変更する場合に、これを行うことができます。例えば、インスタンスで実行しているアプリケーションが実行する API アクションが中断されないようにするために、これを行うことができます。
- Console
-
- AWS CLI
-
インスタンスの IAM ロールを置き換えるには
-
必要に応じて、describe-iam-instance-profile-associations コマンドを使用して、関連付け ID を取得します。
aws ec2 describe-iam-instance-profile-associations \
--filters Name=instance-id,Values=i-1234567890abcdef0 \
--query IamInstanceProfileAssociations.AssociationId
-
replace-iam-instance-profile-association コマンドを使用します。既存のインスタンスプロファイルの関連付け ID と、新しいインスタンスプロファイルの ARN または名前を指定します。
aws ec2 replace-iam-instance-profile-association \
--association-id iip-assoc-0044d817db6c0a4ba \
--iam-instance-profile Name="TestRole-2"
- PowerShell
-
インスタンスの IAM ロールを置き換えるには
-
必要に応じて、Get-EC2IamInstanceProfileAssociation コマンドレットを使用して、関連付け ID を取得します。
(Get-EC2IamInstanceProfileAssociation -Filter @{Name="instance-id"; Values="i-0636508011d8e966a"}).AssociationId
-
Set-EC2IamInstanceProfileAssociation コマンドレットを使用します。既存のインスタンスプロファイルの関連付け ID と、新しいインスタンスプロファイルの ARN または名前を指定します。
Set-EC2IamInstanceProfileAssociation `
-AssociationId iip-assoc-0044d817db6c0a4ba `
-IamInstanceProfile_Name TestRole-2
実行中または停止中のインスタンスから IAM ロールをデタッチできます。
- Console
-
インスタンスから IAM ロールをデタッチするには
Amazon EC2 コンソールの https://console.aws.amazon.com/ec2/ を開いてください。
-
ナビゲーションペインで、[インスタンス] を選択してください。
-
インスタンスを選択してください。
-
[アクション] メニューで、[セキュリティ]、[IAM ロールの変更] の順に選択してください。
-
[AM ロール] で、[IAM ロールがありません] を選択してください。
-
[IAM ロールの更新] を選択してください。
-
確認を求められたら、「Detach」と入力してから、[デタッチ] を選択してください。
- AWS CLI
-
インスタンスから IAM ロールをデタッチするには
-
必要に応じて、describe-iam-instance-profile-associations を使用して、デタッチする IAM インスタンスプロファイルの関連付け ID を取得します。
aws ec2 describe-iam-instance-profile-associations \
--filters Name=instance-id,Values=i-1234567890abcdef0 \
--query IamInstanceProfileAssociations.AssociationId
-
disassociate-iam-instance-profile コマンドを使用します。
aws ec2 disassociate-iam-instance-profile --association-id iip-assoc-0044d817db6c0a4ba
- PowerShell
-
インスタンスから IAM ロールをデタッチするには
-
必要に応じて、Get-EC2IamInstanceProfileAssociation を使用して、デタッチする IAM インスタンスプロファイルの関連付け ID を取得します。
(Get-EC2IamInstanceProfileAssociation -Filter @{Name="instance-id"; Values="i-0636508011d8e966a"}).AssociationId
-
Unregister-EC2IamInstanceProfile コマンドレットを使用します。
Unregister-EC2IamInstanceProfile -AssociationId iip-assoc-0044d817db6c0a4ba