ablog

不器用で落着きのない技術者のメモ

マネコンで別アカウントに SwitchRole 時のイベントは us-east-1 に記録される

質問

  • AWSマネジメントコンソールで別のAWSアカウントに SwitchRole したときにスイッチ先アカウントの CloudTrail ログ(S3)を Athena で検索しても "SwitchRole" イベントが見つからない。
  • CloudTrail の「イベント履歴」にはスイッチ元とスイッチ先の両方に "SwitchRole" イベントが記録されているのに「なんで?」と聞かれたので調べてみた。

原因

  • Athena で検索するときに特定リージョン(ap-northeast-1)のみ含まれるようでフィルタしていたため。
  • SwitchRole の際に us-east-1 のエンドポイントにアクセスしているため、クエリのフィルタ条件に us-east-1 を含める必要がある。
イベント履歴
  • マネジメントコンソール

f:id:yohei-a:20200512215027p:plain

  • イベントの表示で表示される JSON
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "...:yohei-a",
        "arn": "arn:aws:sts::234567890123:assumed-role/AdminRole/yohei-a",
        "accountId": "234567890123"
    },
    "eventTime": "2020-04-30T11:08:31Z", ★
    "eventSource": "signin.amazonaws.com",
    "eventName": "SwitchRole",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "72.**.***.64",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36",
    "requestParameters": null,
    "responseElements": {
        "SwitchRole": "Success"
    },
    "additionalEventData": {
        "SwitchFrom": "arn:aws:sts::123456789012:assumed-role/Admin/yohei-a",
        "RedirectTo": "https://console.aws.amazon.com/console/home"
    },
    "eventID": "a3a42af4-0c3b-4654-9894-5d618767ee18", ★
    "eventType": "AwsConsoleSignIn",
    "recipientAccountId": "234567890123"
}
S3 に出力された CloudTrail を確認する
  • 同じ日付の CloudTrail ログを S3 からダウンロードする。
$ aws s3 cp --recursive s3://cloudtrail-234567890123-do-not-delete/AWSLogs/234567890123/CloudTrail/us-east-1/2020/04/30/ .
$ find . -name '*.gz' -print0|xargs -0 gunzip
  • eventID で検索する。
$ find . -name '*.json' -print0|xargs -0 grep -l a3a42af4-0c3b-4654-9894-5d618767ee18
./234567890123_CloudTrail_us-east-1_20200430T1110Z_eP2ntD241s6Psiy1.json
  • 234567890123_CloudTrail_us-east-1_20200430T1110Z_eP2ntD241s6Psiy1.json を開く
(中略)
        {
            "eventVersion": "1.05",
            "userIdentity": {
                "type": "AssumedRole",
                "principalId": "...:yohei-a",
                "arn": "arn:aws:sts::234567890123:assumed-role/AdminRole/yohei-a",
                "accountId": "234567890123"
            },
            "eventTime": "2020-04-30T11:08:31Z", ★
            "eventSource": "signin.amazonaws.com",
            "eventName": "SwitchRole",
            "awsRegion": "us-east-1",
            "sourceIPAddress": "72.**.***.64",
            "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36",
            "requestParameters": null,
            "responseElements": {
                "SwitchRole": "Success"
            },
            "additionalEventData": {
                "SwitchFrom": "arn:aws:sts::234567890123:assumed-role/Admin/yohei-a",
                "RedirectTo": "https://console.aws.amazon.com/console/home"
            },
            "eventID": "a3a42af4-0c3b-4654-9894-5d618767ee18", ★
            "eventType": "AwsConsoleSignIn",
            "recipientAccountId": "234567890123"
        }
    ]
}

補足

  • スイッチ元アカウントの CloudTrail イベント履歴

f:id:yohei-a:20200512222639p:plain