[アップデート] EC2 のIAM Role変更も可能になりました

2017.02.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、菊池です。

本日(2017/2/10)、既存の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の後からの適用だけでなく、変更も可能になりました。柔軟性が上がる素晴らしいアップデートですね!