AWS Identity and Access Management
ユーザーガイド

AWS CloudTrail による IAM および AWS STS の API コールのログ記録

IAM と AWS STS は、IAM のユーザーまたはロールによるアクションを記録するサービスである AWS CloudTrail と統合されています。CloudTrail は、コンソールや API コールなどからの IAM と AWS STS のすべての API コールをイベントとしてキャプチャします。証跡を作成すると、Amazon S3 バケットへの CloudTrail イベントの継続的な配信が可能になります。証跡を設定しない場合でも、CloudTrail コンソールの [Event history (イベント履歴)] で最新のイベントを表示できます。CloudTrail を使用して、IAM または AWS STS に対して行われたリクエストに関する情報を取得できます。たとえば、リクエストの実行元 IP アドレス、実行者、実行日時、およびその他の詳細を表示できます。

CloudTrail の詳細については、「AWS CloudTrail User Guide」を参照してください。

CloudTrail での IAM と AWS STS に関する情報

CloudTrail は、アカウント作成時に AWS アカウントで有効になります。IAM または AWS STS でアクティビティが発生すると、そのアクティビティは [Event history (イベント履歴)] に AWS の他のサービスのイベントと共に CloudTrail イベントとして記録されます。最近のイベントは、AWS アカウントで表示、検索、ダウンロードできます。詳細については、「CloudTrail イベント履歴でのイベントの表示」を参照してください。

IAM または AWS STS のイベントなど、AWS アカウントのイベントの継続的な記録用に、証跡を作成します。証跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成するときに、証跡がすべてのリージョンに適用されます。証跡では、AWS パーティションのすべてのリージョンからのイベントがログに記録され、指定した Amazon S3 バケットにログファイルが配信されます。さらに、より詳細な分析と AWS ログで収集されたデータに基づいた行動のためにその他の CloudTrail サービスを設定できます。詳細については、以下のトピックを参照してください。

IAM と AWS STS のアクションはすべて、CloudTrail によって記録されます。「IAM API リファレンス」および「AWS Security Token Service API リファレンス」を参照してください。CloudTrail では、以下の 2 つの方法で IAM 情報を利用できます。

  • IAM および AWS Security Token Service (AWS STS) に対する API リクエスト – CloudTrail は、IAM および AWS STS API オペレーションに対する認証されたすべての API リクエスト (認証情報を指定) をログに記録します。また、CloudTrail は AWS STS アクション AssumeRoleWithSAML および AssumeRoleWithWebIdentity に対する認証されていないリクエストを、ID プロバイダーによって提供された情報と共に記録します。この情報を使用して、引き受けたロールを持つフェデレーティッドユーザーによって行われた呼び出しを元の外部フェデレーティッド呼び出し元にマッピングできます。AssumeRole の場合、呼び出しをその元の AWS サービスまたはユーザーのアカウントに再度マッピングすることができます。CloudTrail ログエントリの JSON データの userIdentity セクションには、AssumeRole* リクエストを特定のフェデレーティッドユーザーにマッピングするのに必要な情報が含まれます。詳細については、AWS CloudTrail User Guideの「CloudTrail userIdentity 要素」を参照してください。

    たとえば、IAM の CreateUserDeleteRoleListGroups、およびその他の API オペレーションに対する呼び出しはすべて、CloudTrail によってログに記録されます。

    このタイプのログエントリの例については、このトピックの後半で説明します。

    重要

    デフォルトのグローバルエンドポイント以外のリージョンの AWS STS エンドポイントをアクティブ化する場合、対象リージョンの CloudTrail のログ記録を有効にする必要があります。これは、それらのリージョンの AWS STS API コールを記録するのに必要です。詳細については、『AWS CloudTrail User Guide』の「他のリージョンの CloudTrail の有効化」を参照してください。

  • 他の AWS サービスに対する API リクエスト – 他の AWS サービス API オペレーションに対する認証されたリクエストは CloudTrail によってログに記録され、そのログエントリにはリクエストの生成元に関する情報が含まれます。

    たとえば、Amazon EC2 インスタンスの一覧表示または CodeDeploy のデプロイグループの作成をリクエストしたとします。リクエストを行ったユーザーまたはサービスに関する詳細は、そのリクエストのログエントリに含まれています。この情報は、リクエストが AWS アカウントのルートユーザー、IAM ユーザー、ロール、別の AWS サービスのいずれによって行われたかを判断するのに役立ちます。

    CloudTrail ログエントリのユーザー ID 情報の詳細については、『AWS CloudTrail User Guide』の「userIdentity 要素」を参照してください。

  • AWS サインインイベント – AWS マネジメントコンソール、AWS ディスカッションフォーラム、および AWS Marketplace に対するサインインイベントは、CloudTrail によってログに記録されます。

    たとえば、IAM およびフェデレーティッドユーザーのサインインイベント (成功したサインインと失敗したサインインの試行) が CloudTrail によってログに記録されます。さらに、ルートユーザー による正常なサインインイベントも CloudTrail によってログに記録されます。ルートユーザー による失敗したサインインイベントは CloudTrail によってログに記録されないことに注意してください。

    CloudTrail を有効化してログにサインインイベントを記録する場合、CloudTrail がイベントを記録する場所を選択するしくみを認識しておく必要があります。

    • ユーザーがコンソールに直接サインインすると、選択されたサービスのコンソールがリージョンをサポートするかどうかによって、グローバルまたはリージョンのサインインエンドポイントにリダイレクトされます。たとえば、メインコンソールのホームページはリージョンをサポートするため、https://alias.signin.aws.amazon.com/console にサインインした場合、リージョンのサインインエンドポイント (https://us-east-2.signin.aws.amazon.com など) にリダイレクトされます。このリダイレクトにより、ユーザーのリージョンのログにリージョンの CloudTrail ログエントリが作成されます。

      一方、Amazon S3 コンソールはリージョンをサポートしないため、https://alias.signin.aws.amazon.com/console/s3 にサインインした場合は、AWS によってグローバルのサインインエンドポイント (https://signin.aws.amazon.com) にリダイレクトされます。このリダイレクトにより、グローバル CloudTrail ログエントリが作成されます。

    • リージョン対応のメインコンソールのホームページで、https://alias.signin.aws.amazon.com/console?region=ap-southeast-1 などの URL を使用してサインインすることで、手動で特定のリージョンのサインインエンドポイントをリクエストできます。この場合、AWS によって ap-southeast-1 リージョンのサインインエンドポイントにリダイレクトされ、リージョンの CloudTrail ログのイベントとなります。

    重要

    セキュリティのベストプラクティスとして、AWS は、サインインの失敗した原因が間違ったユーザー名である場合、入力されたユーザー名テキストをログに記録しません。ユーザー名テキストは、HIDDEN_DUE_TO_SECURITY_REASONS という値によってマスクされます。この例として、このトピックの「間違ったユーザー名が原因で発生したサインイン失敗イベント」を参照してください。ユーザー名が隠される理由は、このようなサインインの失敗が次のようなユーザーのミスによって引き起こされる可能性があり、その場合、ログにユーザー名を記録すると、機密情報かもしれない情報が漏れるおそれがあるためです。

    • 誤ってユーザー名ボックスにパスワードを入力した。

    • ある AWS アカウントのサインインページのリンクを選択したが、別のアカウントのアカウント番号を入力した。

    • どのアカウントにサインインしているのかを忘れて、誤って個人メールのアカウント名や銀行のサインイン ID などのプライベート ID を入力した。

    サインインイベントがリージョンのイベントと見なされるか、グローバルイベントと見なされるかは、ユーザーがサインインするコンソールおよびユーザーのサインイン URL の構造によって決まります。

    • サービスコンソールはローカル化されていますか。 ローカル化されている場合、サインインリクエストは自動的にリージョンのサインインエンドポイントにリダイレクトされ、イベントはリージョンの CloudTrail ログに記録されます。たとえば、https://alias.signin.aws.amazon.com/console というローカル化されているコンソールのホームページにサインインする場合、リージョンのサインインエンドポイント (https://us-east-2.signin.aws.amazon.com など) に自動的にリダイレクトされます。このイベントはそのリージョンのログに記録されます。

      ただし、一部のサービスは現在ローカル化されていません。たとえば、Amazon S3 サービスは現在ローカル化されていないため、 https://alias.signin.aws.amazon.com/console/s3 にサインインすると、グローバルサインインエンドポイント (https://signin.aws.amazon.com) にリダイレクトされます。このリダイレクトはグローバルのログのイベントとなります。

    • https://alias.signin.aws.amazon.com/console?region=ap-southeast-1 などの URL を使用して特定のリージョンのサインインエンドポイントを手動でリクエストすることも可能です。これによりリージョンのサインインエンドポイント ap-southeast-1 にリダイレクトされます。このリダイレクトはリージョンのログのイベントとなります。

  • 一時的認証情報のログへの記録方法 – プリンシパルが一時的認証情報をリクエストすると、プリンシパルタイプによって CloudTrail でのログの記録方法が決定します。次の表は、一時認証情報を生成する各 API 呼び出しに対するさまざまな情報を CloudTrail がどのようにログに記録しているかを示しています。

    プリンシパルタイプ IAM/STS API 呼び出し元アカウントの CloudTrail ログ内のユーザー ID ロール所有アカウントの CloudTrail ログ内のユーザー ID 後続の API 呼び出しに対する、ロール所有者の CloudTrail ログ内のユーザー ID
    AWS アカウントのルートユーザー 認証情報 GetSessionToken ルート ID ロール所有者アカウントと呼び出し元アカウントが同じ ルート ID
    IAM ユーザー GetSessionToken IAM ユーザー ID ロール所有者アカウントと呼び出し元アカウントが同じ IAM ユーザー ID
    IAM ユーザー GetFederationToken IAM ユーザー ID ロール所有者アカウントと呼び出し元アカウントが同じ IAM ユーザー ID
    IAM ユーザー AssumeRole IAM ユーザー ID アカウント番号およびプリンシパル ID (ユーザーの場合)、または AWS プリンシパル ロール ID のみ (ユーザーの記録はしない)
    外部で認証されたユーザー AssumeRoleWithSAML 該当なし SAML ユーザー ID ロール ID のみ (ユーザーの記録はしない)
    外部で認証されたユーザー AssumeRoleWithWebIdentity 該当なし OIDC/Web のユーザー ID ロール ID のみ (ユーザーの記録はしない)

CloudTrail ファイルのログに記録されたイベントの例

CloudTrail ログファイルには、イベントが JSON 形式で書き込まれます。イベントは 1 つの API リクエストやサインインイベントを表すものであり、イベントには、リクエストされたアクション、すべてのパラメータ、およびアクションの日時に関する情報が含まれます。

CloudTrail ログファイル内の IAM API イベント

以下の例は、IAM の GetUserPolicy アクションに対するリクエストの CloudTrail ログエントリを示しています。

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::444455556666:user/Alice", "accountId": "444455556666", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "Alice", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-07-15T21:39:40Z" } }, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2014-07-15T21:40:14Z", "eventSource": "iam.amazonaws.com", "eventName": "GetUserPolicy", "awsRegion": "us-east-2", "sourceIPAddress": "signin.amazonaws.com", "userAgent": "signin.amazonaws.com", "requestParameters": { "userName": "Alice", "policyName": "ReadOnlyAccess-Alice-201407151307" }, "responseElements": null, "requestID": "9EXAMPLE-0c68-11e4-a24e-d5e16EXAMPLE", "eventID": "cEXAMPLE-127e-4632-980d-505a4EXAMPLE" }

このイベント情報から、このリクエストは、ReadOnlyAccess-Alice-201407151307 エレメントで指定された、ユーザー AlicerequestParameters というユーザーポリシーを取得するために送信されたことを確認できます。また、このリクエストは、Alice という IAM ユーザーによって 2014 年 7 月 15 日の午後 9 時 40 分 (UTC) に送信されたことも確認できます。この例では、userAgent 要素から、このリクエストの実行元は AWS マネジメントコンソール であることがわかります。

CloudTrail ログファイル内の AWS STS API イベント

アカウント 777788889999 内の「Bob」という名前の IAM ユーザーが、AWS STS AssumeRole アクションを呼び出して、アカウント 111122223333 内のロール EC2-dev を引き受けます。次の 2 つの例は、影響を受ける 2 つのアカウントの CloudTrail ログエントリを示しています。最初の例は、アカウント 777788889999 (AssumeRole を呼び出すユーザーを所有するアカウント) で行われたリクエストの CloudTrail ログエントリを示しています。

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDAQRSTUVWXYZEXAMPLE", "arn": "arn:aws:iam::777788889999:user/Bob", "accountId": "777788889999", "accessKeyId": "AKIAQRSTUVWXYZEXAMPLE", "userName": "Bob" }, "eventTime": "2014-07-18T15:07:39Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/1.11.10 Python/2.7.8 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.4.67", "requestParameters": { "roleArn": "arn:aws:iam::111122223333:role/EC2-dev", "roleSessionName": "Bob-EC2-dev" "serialNumber": "arn:aws:iam::777788889999:mfa" }, "responseElements": { "credentials": { "sessionToken": "<encoded session token blob>", "accessKeyId": "AKIAQRSTUVWXYZEXAMPLE", "expiration": "Jul 18, 2014 4:07:39 PM" }, "assumedRoleUser": { "assumedRoleId": "AIDAQRSTUVWXYZEXAMPLE:Bob-EC2-dev", "arn": "arn:aws:sts::111122223333:assumed-role/EC2-dev/Bob-EC2-dev" } }, "resources": [ { "ARN": "arn:aws:iam::111122223333:role/EC2-dev", "accountId": "111122223333", "type": "AWS::IAM::Role" } ], "requestID": "4EXAMPLE-0e8d-11e4-96e4-e55c0EXAMPLE", "sharedEventID": "bEXAMPLE-efea-4a70-b951-19a88EXAMPLE", "eventID": "dEXAMPLE-ac7f-466c-a608-4ac8dEXAMPLE" "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }

2 番目の例は、同じリクエストを行ったロール所有アカウント (111122223333) の CloudTrail ログエントリを示しています。

{ "eventVersion": "1.05", "userIdentity": { "type": "AWSAccount", "principalId": "AIDAQRSTUVWXYZEXAMPLE", "accountId": "777788889999" }, "eventTime": "2014-07-18T15:07:39Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/1.11.10 Python/2.7.8 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.4.67", "requestParameters": { "roleArn": "arn:aws:iam:: 111122223333:role/EC2-dev", "roleSessionName": "Bob-EC2-dev", "serialNumber": "arn:aws:iam::777788889999:mfa" }, "responseElements": { "credentials": { "sessionToken": "<encoded session token blob>", "accessKeyId": "AKIAQRSTUVWXYZEXAMPLE", "expiration": "Jul 18, 2014 4:07:39 PM" }, "assumedRoleUser": { "assumedRoleId": "AIDAQRSTUVWXYZEXAMPLE:Bob-EC2-dev", "arn": "arn:aws:sts::111122223333:assumed-role/EC2-dev/Bob-EC2-dev" } }, "requestID": "4EXAMPLE-0e8d-11e4-96e4-e55c0EXAMPLE", "sharedEventID": "bEXAMPLE-efea-4a70-b951-19a88EXAMPLE", "eventID": "dEXAMPLE-ac7f-466c-a608-4ac8dEXAMPLE" }

以下の例は、CloudTrail ロールのアクセス許可を使用して API を呼び出す AWS のサービスによって行われたリクエストの IAM ログエントリを示しています。

{ "eventVersion": "1.04", "userIdentity": { "type": "AssumedRole", "principalId": "AIDAQRSTUVWXYZEXAMPLE:devdsk", "arn": "arn:aws:sts::777788889999:assumed-role/AssumeNothing/devdsk", "accountId": "777788889999", "accessKeyId": "AKIAQRSTUVWXYZEXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2016-11-14T17:25:26Z" }, "sessionIssuer": { "type": "Role", "principalId": "AIDAQRSTUVWXYZEXAMPLE", "arn": "arn:aws:iam::777788889999:role/AssumeNothing", "accountId": "777788889999", "userName": "AssumeNothing" } } }, "eventTime": "2016-11-14T17:25:45Z", "eventSource": "s3.amazonaws.com", "eventName": "DeleteBucket", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.1", "userAgent": "[aws-cli/1.11.10 Python/2.7.8 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.4.67]", "requestParameters": { "bucketName": "my-test-bucket-cross-account" }, "responseElements": null, "requestID": "EXAMPLE463D56D4C", "eventID": "dEXAMPLE-265a-41e0-9352-4401bEXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "777788889999" }

以下の例は、AWS STS の AssumeRoleWithSAML アクションに対するリクエストの CloudTrail ログエントリを示しています。

{ "eventVersion": "1.05", "userIdentity": { "type": "SAMLUser", "principalId": "<id of identity provider>:<canonical id of user>", "userName": "<canonical id of user>", "identityProvider": "<id of identity provider>" }, "eventTime": "2016-03-23T01:39:57Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRoleWithSAML", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/1.3.23 Python/2.7.6 Linux/2.6.18-164.el5", "requestParameters": { "sAMLAssertionID": "_c0046cEXAMPLEb9d4b8eEXAMPLE2619aEXAMPLE", "roleSessionName": "MyAssignedRoleSessionName", "durationSeconds": 3600, "roleArn": "arn:aws:iam::444455556666:role/SAMLTestRoleShibboleth", "principalArn": "arn:aws:iam::444455556666:saml-provider/Shibboleth" }, "responseElements": { "subjectType": "transient", "issuer": "https://server.example.com/idp/shibboleth", "credentials": { "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "expiration": "Mar 23, 2016 2:39:57 AM", "sessionToken": "<encoded session token blob>" }, "nameQualifier": "<id of identity provider>", "assumedRoleUser": { "assumedRoleId": "AROAD35QRSTUVWEXAMPLE:MyAssignedRoleSessionName", "arn": "arn:aws:sts::444455556666:assumed-role/SAMLTestRoleShibboleth/MyAssignedRoleSessionName" }, "subject": "<canonical id of user>", "audience": "https://signin.aws.amazon.com/saml" }, "resources": [ { "ARN": "arn:aws:iam::444455556666:role/SAMLTestRoleShibboleth", "accountId": "444455556666", "type": "AWS::IAM::Role" }, { "ARN": "arn:aws:iam::444455556666:saml-provider/test-saml-provider", "accountId": "444455556666", "type": "AWS::IAM::SAMLProvider" } ], "requestID": "6EXAMPLE-e595-11e5-b2c7-c974fEXAMPLE", "eventID": "dEXAMPLE-265a-41e0-9352-4401bEXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "444455556666" }

以下の例は、AWS STS の AssumeRoleWithWebIdentity アクションに対するリクエストの CloudTrail ログエントリを示しています。

{ "eventVersion": "1.05", "userIdentity": { "type": "WebIdentityUser", "principalId": "accounts.google.com:<id-of-application>.apps.googleusercontent.com:<id-of-user>", "userName": "<id of user>", "identityProvider": "accounts.google.com" }, "eventTime": "2016-03-23T01:39:51Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRoleWithWebIdentity", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/1.3.23 Python/2.7.6 Linux/2.6.18-164.el5", "requestParameters": { "durationSeconds": 3600, "roleArn": "arn:aws:iam::444455556666:role/FederatedWebIdentityRole", "roleSessionName": "MyAssignedRoleSessionName" }, "responseElements": { "provider": "accounts.google.com", "subjectFromWebIdentityToken": "<id of user>", "audience": "<id of application>.apps.googleusercontent.com", "credentials": { "accessKeyId": "ASIACQRSTUVWRAOEXAMPLE", "expiration": "Mar 23, 2016 2:39:51 AM", "sessionToken": "<encoded session token blob>" }, "assumedRoleUser": { "assumedRoleId": "AROACQRSTUVWRAOEXAMPLE:MyAssignedRoleSessionName", "arn": "arn:aws:sts::444455556666:assumed-role/FederatedWebIdentityRole/MyAssignedRoleSessionName" } }, "resources": [ { "ARN": "arn:aws:iam::444455556666:role/FederatedWebIdentityRole", "accountId": "444455556666", "type": "AWS::IAM::Role" } ], "requestID": "6EXAMPLE-e595-11e5-b2c7-c974fEXAMPLE", "eventID": "bEXAMPLE-0b30-4246-b28c-e3da3EXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "444455556666" }

CloudTrail ログファイル内のサインイン失敗イベント

失敗したサインインイベントの CloudTrail のログエントリの例を以下に示します。

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn":"arn:aws:iam::111122223333:user/Alice", "accountId": "111122223333", "userName": "Alice" }, "eventTime": "2014-07-08T17:35:27Z", "eventSource": "signin.amazonaws.com", "eventName": "ConsoleLogin", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.100", "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0", "errorMessage": "Failed authentication", "requestParameters": null, "responseElements": { "ConsoleLogin": "Failure" }, "additionalEventData": { "MobileVersion": "No", "LoginTo": "https://console.aws.amazon.com/sns", "MFAUsed": "No" }, "eventID": "11ea990b-4678-4bcd-8fbe-62509088b7cf" }

この情報から、userIdentity 要素に示されているように、このサインインは Alice という IAM ユーザーによって試行されたことを確認できます。また、responseElements エレメントに示されているように、サインインの試行が失敗したこともわかります。さらに、Alice が 2014 年 7 月 8 日、午後 5 時 35 分 (UTC) に Amazon SNS コンソールにサインインしようとしたことも確認できます。

間違ったユーザー名が原因で発生したサインイン失敗イベント

以下の例は、ユーザーが間違ったユーザー名を入力したことが原因で発生したサインイン失敗イベントの CloudTrail ログ項目を示しています。AWS は、userName テキストを HIDDEN_DUE_TO_SECURITY_REASONS でマスクして、機密となっている可能性のある情報が漏れないようにします。

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "accountId": "123456789012", "accessKeyId": "", "userName": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "eventTime": "2015-03-31T22:20:42Z", "eventSource": "signin.amazonaws.com", "eventName": "ConsoleLogin", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0", "errorMessage": "No username found in supplied account", "requestParameters": null, "responseElements": { "ConsoleLogin": "Failure" }, "additionalEventData": { "LoginTo": "https://console.aws.amazon.com/console/home?state=hashArgs%23&isauthcode=true", "MobileVersion": "No", "MFAUsed": "No" }, "eventID": "a7654656-0417-45c6-9386-ea8231385051", "eventType": "AwsConsoleSignin", "recipientAccountId": "123456789012" }

CloudTrail ログファイル内のサインイン成功イベント

成功したサインインイベントの CloudTrail のログエントリの例を以下に示します。

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn":"arn:aws:iam::111122223333:user/Bob", "accountId": "111122223333", "userName": "Bob" }, "eventTime": "2014-07-16T15:49:27Z", "eventSource": "signin.amazonaws.com", "eventName": "ConsoleLogin", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.110", "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0", "requestParameters": null, "responseElements": { "ConsoleLogin": "Success" }, "additionalEventData": { "MobileVersion": "No", "LoginTo": "https://console.aws.amazon.com/s3", "MFAUsed": "No" }, "eventID": "3fcfb182-98f8-4744-bd45-10a395ab61cb" }

CloudTrail ログファイルに含まれる情報の詳細については、『AWS CloudTrail User Guide』の「CloudTrail イベントリファレンス」を参照してください。

CloudTrail 内の重複するログエントリの回避

CloudTrail はリージョンごとに別々に追跡情報を作成します。これらの追跡情報には、各リージョンで発生したイベントの情報に加えて、IAM API コール、リージョン固有ではない AWS STS 呼び出し (sts.amazonaws.com の呼び出し)、AWS サインインイベントなどのグローバルな (リージョン固有ではない) イベントの情報も含まれます。たとえば、それぞれ異なるリージョンに 2 つの証跡があるとします。新しい IAM ユーザーを作成すると、両方のリージョンのログファイルに CreateUser イベントが追加され、重複したログエントリが作成されます。

AWS Security Token Service (STS) は、https://sts.amazonaws.com に 1 つのエンドポイントがあるグローバルサービスです。このエンドポイントへの呼び出しはグローバルサービスへの呼び出しとしてログに記録されます。ただし、このエンドポイントが 米国東部(バージニア北部) リージョンに物理的に配置されているため、ログにはイベントのリージョンとして us-east-1 が表示されます。米国東部 (オハイオ) リージョンにグローバルサービスログを含めるオプションを選択していなければ、CloudTrail はこれらのログをそのリージョンに書き込みません。CloudTrail は、すべてのリージョンのエンドポイントに対する呼び出しをそれぞれのリージョンに書き込みます。たとえば、sts.us-east-2.amazonaws.com の呼び出しは 米国東部 (オハイオ) リージョンに発行され、sts.eu-central-1.amazonaws.com の呼び出しは 欧州 (フランクフルト) リージョンに発行されるという具合になります。

複数のリージョンと AWS STS については、「AWS リージョンでの AWS STS のアクティブ化と非アクティブ化」を参照してください。

以下の表では、リージョンと、各リージョンで CloudTrail のログに記録される AWS STS リクエストの内容を示しています。「場所」の列は、CloudTrail がログを書き込む場所を示します。「グローバル」は、グローバルサービスのログを含めるオプションを選択したすべてのリージョンのイベントがログに記録されることを示します。「リージョン」は、エンドポイントが存在するリージョンのみでイベントがログに記録されることを示します。最後の列は、リクエストのリージョンがログエントリでどのように識別されるかを示します。

リージョン名 CloudTrail ログ内のリージョンの識別 エンドポイント CloudTrail ログの場所
n/a - グローバル us-east-1 sts.amazonaws.com グローバル
米国東部 (オハイオ) us-east-2 sts.us-east-2.amazonaws.com リージョン
米国東部(バージニア北部) us-east-1 sts.us-east-1.amazonaws.com リージョン
米国西部 (北カリフォルニア) us-west-1 sts.us-west-1.amazonaws.com リージョン
米国西部 (オレゴン) us-west-2 sts.us-west-2.amazonaws.com リージョン
カナダ (中部) ca-central-1 sts.ca-central-1.amazonaws.com リージョン
欧州 (フランクフルト) eu-central-1 sts.eu-central-1.amazonaws.com リージョン
欧州 (アイルランド) eu-west-1 sts.eu-west-1.amazonaws.com リージョン
欧州 (ロンドン) eu-west-2 sts.eu-west-2.amazonaws.com リージョン
アジアパシフィック (東京) ap-northeast-1 sts.ap-northeast-1.amazonaws.com リージョン
アジアパシフィック (ソウル) ap-northeast-2 sts.ap-northeast-2.amazonaws.com リージョン
アジアパシフィック (ムンバイ) ap-south-1 sts.ap-south-1.amazonaws.com リージョン
アジアパシフィック (シンガポール) ap-southeast-1 sts.ap-southeast-1.amazonaws.com リージョン
アジアパシフィック (シドニー) ap-southeast-2 sts.ap-southeast-2.amazonaws.com リージョン
南米 (サンパウロ) sa-east-1 sts.sa-east-1.amazonaws.com リージョン

アカウントの複数のリージョンの追跡情報を集合して 1 つの Amazon S3 バケットに書き込むように CloudTrail を設定した場合、ログ内で IAM イベントが重複します。つまり、各リージョンの証跡により、集計ログに同じ IAM イベントが書き込まれます。この重複を回避するには、グローバルイベントを選択的に含めることができます。通常は、同じ Amazon S3 バケットに書き込まれる 1 つの追跡情報内のグローバルイベントを有効にして、他のすべての追跡情報内のグローバルイベントを無効にします。この方法では 1 セットのグローバルイベントのみが書き込まれます。

詳細については、『AWS CloudTrail User Guide』の「ログの集約」を参照してください。