AWS 在 2/9 的時候在 Blog 發表在 EC2 上終於可以動態修改 IAM Role 了!! 相信有在使用 AWS 的人一定都遇過在開啟 EC2 後忘記加 Role 之後又重開 EC2 的窘境 (根本常常上演
New! Attach an AWS IAM Role to an Existing Amazon EC2 Instance by Using the AWS CLI
雖然這次僅有開放 CLI 使用,但這已經夠好用了AWS 在 2/22 公布在部落格說終於可以在 Web cosole 動態修改 EC2 的 Role 了!!,不用再浪費過多的時間在重啟 EC2 上,這次更新可以在 EC2 原本沒有 Role 的情況下加入 Role,還能夠改變 EC2 的 Role 角色。
用 AWS CLI 加入 EC2 的 Role
要用 CLI 關聯 Role 和 EC2,你需要 Instance ID,和 Role Instance Profile
使用以下指令關聯兩者。
$aws ec2 associate-iam-instance-profile --instance-id YourInstanceId --iam-instance-profile Name=YourNewRole-Instance-Profile
然後用 describe-iam-instance-profile-associations 驗證現有的 Role 是否關聯到 EC2 InstanceID。
$ aws ec2 describe-iam-instance-profile-associations { "IamInstanceProfileAssociations": [ { "InstanceId": "YourInstanceId", ... ... ... "Arn": "arn:aws:iam::0123456789:instance-profile/YourNewRole-Instance-Profile" ... ...
然後你也可以更換 Role,超方便 XD
先拿到 EC2 的 Association ID
$ aws ec2 describe-iam-instance-profile-associations { "IamInstanceProfileAssociations": [ { ... "AssociationId": "iip-assoc-123456789", ...
然後用 replace-iam-instance-profile-association 複寫 Role。
$ aws ec2 replace-iam-instance-profile-association --association-id iip-assoc-123456789 --iam-instance-profile Name=YourReplacementRole-Instance-Profile
雖然目前還沒有開放 Web console,但是不用重新啟動 EC2 實在是一大福音,Web console 相信也不遠了。
AWS 已經在 Web console 開放更改 IAM Role 囉,但是如果一開始沒有 Attach Role,若是 Instance 有服務需要 credentials 的話還是要 restart service 來重新取得 credentials