メニュー
AWS Identity and Access Management
ユーザーガイド

AWS CloudTrail による IAM イベントのログ記録

AWS Identity and Access Management(IAM)は、AWS アカウントまたはその代理によって行われた AWS イベントをログに記録するサービスである AWS CloudTrail と統合されています。CloudTrail は認証された AWS API 呼び出しおよび AWS サインインイベントもログに記録し、Amazon S3 バケットに配信されるファイルにこのイベント情報を収集します。CloudTrail が収集した情報を使用して、成功した AWS サービスリクエスト、そのリクエストの送信者、そのリクエストの送信時刻などを確認できます。

CloudTrail の詳細 (設定して有効にする方法など) については、AWS CloudTrail User Guideを参照してください。

CloudTrail でログに記録される IAM 情報のタイプ

CloudTrail は、以下の 2 つの方法を使用して IAM 情報を利用できます。

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

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

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

    重要

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

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

    たとえば、Amazon EC2 インスタンスのリストを取得するリクエスト、または AWS CodeDeploy デプロイグループを作成するリクエストが送信された場合、そのリクエストを送信したユーザーまたはサービスのユーザー ID がそのリクエストのログエントリに含まれています。ユーザー ID 情報は、リクエストが、AWS アカウントのルートユーザーの認証情報または IAM ユーザーの認証情報を使用して送信されたか、ロールまたはフェデレーティッドユーザーの一時的なセキュリティ認証情報を使用して送信されたか、あるいは別の AWS サービスによって送信されたかを確認するのに役立ちます。

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

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

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

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

    • ユーザーがコンソールに直接サインインすると、選択されたサービスのコンソールがリージョンをサポートするかどうかによって、グローバルまたはリージョンのサインインエンドポイントにリダイレクトされます。たとえば、メインコンソールのホームページはリージョンをサポートするため、次の URL にサインインした場合:

      Copy
      https://alias.signin.aws.amazon.com/console

      リージョンのサインインエンドポイントにリダイレクトされます。たとえば https://us-east-2.signin.aws.amazon.com などの、ユーザーのリージョンのログのリージョンの CloudTrail ログエントリとなります。

      一方、Amazon S3 コンソールはリージョンをサポートしないため、次の URL にサインインした場合:

      Copy
      https://alias.signin.aws.amazon.com/console/s3

      AWS により https://signin.aws.amazon.com にあるグローバルのサインインエンドポイントにリダイレクトされ、グローバルの CloudTrail ログエントリとなります。

    • リージョン対応のメインコンソールのホームページで次のような URL 構文を使ってサインインすることにより、手動で特定のリージョンのサインインエンドポイントをリクエストすることができます。

      Copy
      https://alias.signin.aws.amazon.com/console?region=ap-southeast-1

      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"
} 

このイベント情報から、このリクエストは、requestParameters エレメントで指定された、ユーザー AliceReadOnlyAccess-Alice-201407151307 というユーザーポリシーを取得するために送信されたことを確認できます。また、このリクエストは、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::777788889999: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::777788889999: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::777788889999: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"
}

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

{
  "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. このエンドポイントへの呼び出しはグローバルサービスへの呼び出しとしてログに記録されます。ただし、このエンドポイントが 米国東部 (オハイオ) リージョンに物理的に配置されているため、ログにはイベントのリージョンとして「us-east-2」と表示されます。リージョンにグローバルサービスログを含めるオプションを選択していなければ、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』の「ログの集約」を参照してください。