LoginSignup
3
6

More than 5 years have passed since last update.

SwitchRoleした時のCloudTrailで元のIAMユーザをトレースする流れ

Posted at

目的

大規模環境におけるAWSアカウント戦略としては、マルチアカウントが主流になってきていますが、AWSアカウントが増えると各アカウントでIAMユーザを作っていたのでは、パスワード管理が煩雑になります。そういった場合は、IAMユーザ管理用のアカウントを作成してログインしたあと、サービス提供用のアカウントにSwitchRoleしてアクセスする方式がとれます。サービス提供のアカウントは、SwitchRoleするためにIAMロールを作成します。

ここでは、CloudTrailを確認し、SwtchRoleした際のAPI実行者の表示内容を確認したいと思います。

事前準備

IAMユーザ管理用アカウント
アカウントA
IAMユーザ作成

SwitchRole先
IAMロール作成
アカウントAを信頼する

手順

Switch Role(ロールの切り替え)実施※アカウントAからアカウントB
S3バケット一覧を表示
アカウントBでCloudTrailログを確認する

SwitchFrom行を確認することで、元のAWSアカウントとIAMユーザ名がわかる

"SwitchFrom": "arn:aws:iam::<アカウントA>:user/miyamoto",
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIRGONMBKRO5AS3ZXA:miyamoto",
        "arn": "arn:aws:sts::<アカウントB>:assumed-role/SwitchRole/miyamoto",
        "accountId": "<アカウントB>"
    },
    "eventTime": "2018-11-16T15:12:19Z",
    "eventSource": "signin.amazonaws.com",
    "eventName": "SwitchRole",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "72.21.198.64",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "72.21.198.64",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36",
    "requestParameters": null,
    "responseElements": {
        "SwitchRole": "Success"
    },
    "additionalEventData": {
        "SwitchFrom": "arn:aws:iam::<アカウントA>:user/miyamoto",
        "RedirectTo": "https://ap-northeast-1.console.aws.amazon.com/console/home?region=ap-northeast-1#"
    },
    "eventID": "53964c04-8156-423d-b89e-cf97de594149",
    "eventType": "AwsConsoleSignIn",
    "recipientAccountId": "<アカウントB>"
}

S3バケット一覧を表示した時のCloudTrailのuserIdentity-arnを確認することでSwitchRoleする前のIAMユーザが確認できる。
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_temp_request.html

    "arn": "arn:aws:sts::<アカウントB>:assumed-role/SwitchRole/miyamoto",
    "arn": "arn:aws:sts::<AWSアカウント>:assumed-role/IAMロール名/ロールセッション名(IAMユーザ名)

ロールセッション名は、管理コンソール操作だとIAMユーザ名となるが、APIの場合は、任意の名称を指定することが可能。

{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIRGONMBKRO5AS3ZXA:miyamoto",
        "arn": "arn:aws:sts::<アカウントB>:assumed-role/SwitchRole/miyamoto",
        "accountId": "<アカウントB>",
        "accessKeyId": "ASIAR2S4A2FVYII6OLNX",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAIRGONMBKRO5AS3ZXA",
                "arn": "arn:aws:iam::<アカウントB>:role/SwitchRole",
                "accountId": "<アカウントB>",
                "arn": "arn:aws:iam::<アカウントB>:role/SwitchRole",
                "accountId": "<アカウントB>",
                "userName": "SwitchRole"
            },
            "attributes": {
                "creationDate": "2018-11-16T15:14:56Z",
                "mfaAuthenticated": "false"
            }
        }
    },
    "eventTime": "2018-11-16T15:15:04Z",
    "eventSource": "s3.amazonaws.com",
    "eventName": "HeadBucket",
    "awsRegion": "ap-northeast-1",
    "sourceIPAddress": "27.0.3.145",
    "userAgent": "[S3Console/0.4, aws-internal/3 aws-sdk-java/1.11.425 Linux/4.9.124-0.1.ac.198.73.329.metal1.x86_64 OpenJDK_64-Bit_Server_VM/25.19\
2-b12 java/1.8.0_192]",
    "requestParameters": {
    "bucketName": "cloudtrail-***"
    },
    "responseElements": null,
    "additionalEventData": {
        "x-amz-id-2": "Fxy2+VKCRPULTnYCIqvY/uzCJLudQBiHENZY6sZej2xtg8zhRkIaJtqxVIsNyNR7pSrmqsDnk/Q="
    },
    "requestID": "7F70330E8B836AD7",
    "eventID": "c3297949-e0cf-4374-a350-83fe3b96c60d",
    "readOnly": true,
    "resources": [
        {
            "type": "AWS::S3::Object",
            "ARNPrefix": "arn:aws:s3:::cloudtrail-***/"
        },
        {
            "accountId": "<アカウントB>",
            "type": "AWS::S3::Bucket",
            "ARN": "arn:aws:s3:::cloudtrail-***"
        }
    ],
    "eventType": "AwsApiCall",
    ],
    "eventType": "AwsApiCall",
    "recipientAccountId": "<アカウントB>",
    "vpcEndpointId": "vpce-****"
}
3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6