(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【AWS/EC2】IAMロール変更時にFailed to replace instance profileとエラーが出る

スポンサーリンク

事象

InstanceProfileとしてIAMロールを設定していたEC2に対して「Modify IAM role」を実行すると

Failed to replace instance profile
The association iip-assoc-xx is not the active association

というエラーとなる。

環境情報
$ aws --version
aws-cli/2.15.5 Python/3.11.6 Linux/4.14.336-257.562.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off

原因/解決策

インスタスプロファイルの関連付け解除を完了していない状況でIAMロールを更新しようとすると発生する。

解決策として以下のように事前に該当のアソシエーションIDを指定してEC2から解除を実施した上で

$ aws ec2 disassociate-iam-instance-profile --association-id iip-assoc-xx
{
    "IamInstanceProfileAssociation": {
        "AssociationId": "iip-assoc-xx",
        "InstanceId": "i-...",
        "IamInstanceProfile": {
            "Arn": "arn:aws:iam::...:instance-profile/yy",
            "Id": "..."
        },
        "State": "disassociated"
    }
}

再度IAMロールを変更すると成功する。

Successfully attached xx to instance i-xx

以下、補足です。

補足

IAMロールではなくインスタンスプロファイル形式で権限を付与したEC2に対して、権限の変更を実施しようとすると表題のエラーとなりました。

尚エラーの中にもありましたが、EC2に付与されているインスタンプロファイルは下記で確認できます。

$ aws ec2 describe-iam-instance-profile-associations --filters "Name=instance-id,Values=i-xx"
{
    "IamInstanceProfileAssociations": [
        {
            "AssociationId": "iip-assoc-xx",
            "InstanceId": "i-xx",
            "IamInstanceProfile": {
                "Arn": "arn:aws:iam::xx:instance-profile/xx",
                "Id": "xx"
            },
            "State": "associated"
        }
    ]
}


以上、ご参考ください。