サービスリンクロール削除時のエラーメッセージを確認したい

サービスリンクロール削除時のエラーメッセージを確認したい

Clock Icon2024.09.25

困っていた内容

サービスリンクロール削除失敗時のエラーメッセージを CloudTrail で確認したいのですが、DeleteServiceLinkedRole イベントにはエラーコードやエラーメッセージが表示されていません。
確認する方法はありますか?

※ サービスリンクロールとサービスロールの差異や見分け方については、以下の記事をご確認ください。
https://dev.classmethod.jp/articles/iam-how-to-identify-service-linked-roles/

どう対応すればいいの?

DeleteServiceLinkedRole イベントレコードの responseElements に記録されている deletionTaskId に対し、get-service-linked-role-deletion-status コマンドを実行することで確認できます。

以下は、サービスロール AWSServiceRoleForAmazonSSM を削除した際の DeleteServiceLinkedRole イベントの例です。
ハイライト部分が responseElements となってます。

DeleteServiceLinkedRoleイベント例
{
    "eventVersion": "1.10",
    "userIdentity": {
        .....
    },
    "eventTime": "2024-09-24T00:08:07Z",
    "eventSource": "iam.amazonaws.com",
    "eventName": "DeleteServiceLinkedRole",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "1.1.1.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36",
    "requestParameters": {
        "roleName": "AWSServiceRoleForAmazonSSM"
    },
>    "responseElements": {
>         "deletionTaskId": "task/aws-service-role/ssm.amazonaws.com/AWSServiceRoleForAmazonSSM/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX"
>    },
    "requestID": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "eventID": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "XXXXXXXXXXXX",
    "eventCategory": "Management",
    "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_128_GCM_SHA256",
        "clientProvidedHostHeader": "iam.amazonaws.com"
    },
    "sessionCredentialFromConsole": "true"
}
    },

このタスクの詳細を確認するためには、以下のように get-service-linked-role-deletion-status コマンドを実行します。

$aws iam get-service-linked-role-deletion-status --deletion-task-id task/aws-service-role/ssm.amazonaws.com/AWSServiceRoleForAmazonSSM/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX --region us-east-1
{
    "Status": "FAILED",
    "Reason": {
        "Reason": "Role is currently in use.",
        "RoleUsageList": [
            {
                "Region": "us-west-2",
                "Resources": [
                    "At least one association found in account XXXXXXXXXXXX"
                ]
            }
        ]
    }
}

このケースでは、対象のロールが us-west-2 リージョンで使用されているために削除に失敗したことがわかります。

参考資料

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.