[アップデート] EC2 のIAM Role変更も可能になりました
こんにちは、菊池です。
本日(2017/2/10)、既存のEC2に後からIAM Roleを適用することができるようになったのは既報の通りです。
- New! Attach an AWS IAM Role to an Existing Amazon EC2 Instance by Using the AWS CLI
- Attach an IAM role to your existing Amazon EC2 instance
- [アップデート]既存のEC2にIAM Roleを付与できるようになりました!
このアップデートを利用することで、すでに適用してあったIAM Roleを別のIAM Roleに変更することも可能になっています。ユースケースとしては、複数のインスタンスで同じIAM Roleを適用して作成したものの、運用していくうちに権限を分けたい場合などがあると思います。
やってみた
今回のアップデートで、disassociate-iam-instance-profile
コマンドでIAM Roleを後から外すことも可能になっています。これを利用して、一度IAM Roleを外し、associate-iam-instance-profile
で別のIAM Roleを付与することで実現します。
まずは、describe-iam-instance-profile-associations
コマンドで現状のIAM Roleを確認してみます。
$ aws ec2 describe-iam-instance-profile-associations { "IamInstanceProfileAssociations": [ { "InstanceId": "i-07e43f94a47957f26", "State": "associated", "AssociationId": "iip-assoc-0615cf5022780f806", "IamInstanceProfile": { "Id": "AIPAIRFJJEGGGFLSNXII4", "Arn": "arn:aws:iam::xxxxxxxxxxxx:instance-profile/test" } } ] }
このインスタンスのIAM Roleを外します。disassociate-iam-instance-profile
ではAssociationIdを指定して実行します。
$ aws ec2 disassociate-iam-instance-profile --association-id iip-assoc-0615cf5022780f806 { "IamInstanceProfileAssociation": { "InstanceId": "i-07e43f94a47957f26", "State": "disassociating", "AssociationId": "iip-assoc-0615cf5022780f806", "IamInstanceProfile": { "Id": "AIPAIRFJJEGGGFLSNXII4", "Arn": "arn:aws:iam::xxxxxxxxxxxx:instance-profile/test" } } }
これでIAM Roleが非適用になりました。
$ aws ec2 describe-iam-instance-profile-associations { "IamInstanceProfileAssociations": [] }
次に、別のIAM Roleを適用します。
$ aws ec2 associate-iam-instance-profile --instance-id i-07e43f94a47957f26 --iam-instance-profile Name=NewRole { "IamInstanceProfileAssociation": { "InstanceId": "i-07e43f94a47957f26", "State": "associating", "AssociationId": "iip-assoc-0164a7f896ad1c219", "IamInstanceProfile": { "Id": "AIPAI4TBBJV7RZCLVXMBS", "Arn": "arn:aws:iam::xxxxxxxxxxxxx:instance-profile/NewRole" } } }
これでIAM Roleの変更が完了です!
最後に
いかがでしょうか。今回のアップデートで、IAM Roleの後からの適用だけでなく、変更も可能になりました。柔軟性が上がる素晴らしいアップデートですね!