既存のEC2インスタンスにIAMロールを割り当てる
ようやく既存のEC2インスタンスにIAMロールを割り当てることができるようになった。
新しくIAMロールを割り当てる
$ aws ec2 associate-iam-instance-profile --instance-id インスタンスID --iam-instance-profile Name=ロール名
結果
{ "IamInstanceProfileAssociation": { "InstanceId": "yourInstanceId", "State": "associating", "AssociationId": "iip-assoc-07489a9421ef8d9a6", "IamInstanceProfile": { "Id": "AIPAJ2DEFUOROSIDJV7OS", "Arn": "arn:aws:iam::943601058350:instance-profile/myRole" } } }
IAMロールを置き換える
差し替える場合は、まずIAMロールとEC2インスタンスのアソシエーションIDを取得する必要がある。
アソシエーションIDの取得
$ aws ec2 describe-iam-instance-profile-associations | jq '.IamInstanceProfileAssociations[] | select(.InstanceId == "インスタンスID") | .AssociationId'
IAMロールの置き換え
$ aws ec2 replace-iam-instance-profile-association --association-id アソシエーションID --iam-instance-profile Name=ロール名
結果
{ "IamInstanceProfileAssociation": { "InstanceId": "yourInstanceId", "State": "associating", "AssociationId": "iip-assoc-0061ce7a881874983", "IamInstanceProfile": { "Id": "AIPAIDQS4HLWPEA6C2P4O", "Arn": "arn:aws:iam::943601058350:instance-profile/replaceRole" } } }
参考
New! Attach an AWS IAM Role to an Existing Amazon EC2 Instance by Using the AWS CLI