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 リファレンス」を参照してください。

IAM および 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 要素」を参照してください。

リージョン別サインインイベントのログ記録

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 ログのイベントとなります。

サインインイベントがリージョンのイベントと見なされるか、グローバルイベントと見なされるかは、ユーザーがサインインするコンソールおよびユーザーのサインイン 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 を使用して、特定のリージョンサインインエンドポイントを手動でリクエストすることもできます。この URL は ap-southeast-1 のリージョンサインインエンドポイントにリダイレクトします。このリダイレクトはリージョンのログのイベントとなります。

リージョン別ログエントリの重複の防止

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

AWS Security Token Service (STS) は、https://sts.amazonaws.com に 1 つのグローバルエンドポイントがあるグローバルサービスです。このエンドポイントへの呼び出しはグローバルサービスへの呼び出しとしてログに記録されます。ただし、このエンドポイントが 米国東部(バージニア北部) リージョンに物理的に配置されているため、ログにはイベントのリージョンとして us-east-1 が表示されます。米国東部 (オハイオ) リージョンにグローバルサービスログを含めるオプションを選択していなければ、CloudTrail はこれらのログをそのリージョンに書き込みません。AWS STS は、sts.eu-central-1.amazonaws.com などのリージョンエンドポイントに対する呼び出しも許可します。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 イベントが書き込まれます。この重複を回避するには、グローバルイベントを選択的に含めることができます。一般的なアプローチは、1 つの追跡情報でグローバルイベントを有効にすることです。次に、同じ Amazon S3 バケットに書き込む他のすべての追跡情報のグローバルイベントを無効にします。この方法では 1 セットのグローバルイベントのみが書き込まれます。

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

ユーザーサインインイベントのログ記録

CloudTrail は、AWS マネジメントコンソール に対するサインインイベント、AWS ディスカッションフォーラム、および AWS Marketplace をログに記録します。CloudTrail は、IAM ユーザーおよびフェデレーティッドユーザーのサインインの成功と失敗をログに記録します。

AWS アカウントのルートユーザー の場合、成功したサインインイベントのみがログに記録されます。ルートユーザー による失敗したサインインイベントは CloudTrail によってログに記録されないことに注意してください。

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

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

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

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

一時的な認証情報のサインインイベントのログ記録

プリンシパルが一時的な認証情報をリクエストすると、プリンシパルタイプによって CloudTrail がイベントをログに記録する方法が決まります。これは、プリンシパルが別のアカウントのロールを引き受ける場合に複雑になる可能性があります。ロールのクロスアカウントオペレーションに関連するオペレーションを実行するために、複数の API コールがあります。まず、プリンシパルは AWS STS API を呼び出して一時的な認証情報を取得します。このオペレーションは、呼び出し元のアカウントと AWS STS オペレーションが実行されたアカウントに記録されます。次に、プリンシパルはロールを使用して、引き受けたロールのアカウントで他の API 呼び出しを実行します。

次の表は、一時認証情報を生成する各 API 呼び出しに対するさまざまな情報を CloudTrail がどのようにログに記録しているかを示しています。

プリンシパルタイプ 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 ログの IAM API イベントの例

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

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

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

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::444455556666:user/JaneDoe", "accountId": "444455556666", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "JameDoe", "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": "JaneDoe", "policyName": "ReadOnlyAccess-JaneDoe-201407151307" }, "responseElements": null, "requestID": "9EXAMPLE-0c68-11e4-a24e-d5e16EXAMPLE", "eventID": "cEXAMPLE-127e-4632-980d-505a4EXAMPLE" }

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

CloudTrail ログの AWS STS API イベントの例

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

CloudTrail ログファイル内のクロスアカウント AWS STS API イベントの例

アカウント 777788889999 内の JohnDoe という名前の IAM ユーザーが、 AWS STS AssumeRole アクションを呼び出して、アカウント 111122223333 内のロール EC2-dev を引き受けます。

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDAQRSTUVWXYZEXAMPLE", "arn": "arn:aws:iam::777788889999:user/JohnDoe", "accountId": "777788889999", "accessKeyId": "AKIAQRSTUVWXYZEXAMPLE", "userName": "JohnDoe" }, "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": "JohnDoe-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:JohnDoe-EC2-dev", "arn": "arn:aws:sts::111122223333:assumed-role/EC2-dev/JohnDoe-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": "JohnDoe-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:JohnDoe-EC2-dev", "arn": "arn:aws:sts::111122223333:assumed-role/EC2-dev/JohnDoe-EC2-dev" } }, "requestID": "4EXAMPLE-0e8d-11e4-96e4-e55c0EXAMPLE", "sharedEventID": "bEXAMPLE-efea-4a70-b951-19a88EXAMPLE", "eventID": "dEXAMPLE-ac7f-466c-a608-4ac8dEXAMPLE" }

CloudTrail ログファイル内の AWS STS ロール連鎖 API イベントの例

次の例は、アカウント 111111111111 で John Doe によって行われたリクエストの CloudTrail ログエントリを示しています。John は以前、JohnRole1 ロールを引き受けるために JohnDoe ユーザーを使用していました。このリクエストでは、その JonRole2 ロールの認証情報を使用してロールを引き受けます。これは、ロールの連鎖と呼ばれます。John は 2 つの セッションタグ をリクエストに渡します。彼はこれらの 2 つのタグを推移的に設定します。ジョンが JohnRole1 を引き受けたときに推移的として設定したため、リクエストは Department タグを推移的として継承します。ロールチェーン内の推移的キーの詳細については、「セッションタグを使用したロールの連鎖」を参照してください。

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIN5ATK5U7KEXAMPLE:JohnRole1", "arn": "arn:aws:sts::111111111111:assumed-role/JohnDoe/JohnRole1", "accountId": "111111111111", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2019-10-02T21:50:54Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIN5ATK5U7KEXAMPLE", "arn": "arn:aws:iam::111111111111:role/JohnRole1", "accountId": "111111111111", "userName": "JohnDoe" } } }, "eventTime": "2019-10-02T22:12:29Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-2", "sourceIPAddress": "123.145.67.89", "userAgent": "aws-cli/1.16.248 Python/3.4.7 Linux/4.9.184-0.1.ac.235.83.329.metal1.x86_64 botocore/1.12.239", "requestParameters": { "incomingTransitiveTags": { "Department": "Engineering" }, "tags": [ { "value": "johndoe@example.com", "key": "Email" }, { "value": "12345", "key": "CostCenter" } ], "roleArn": "arn:aws:iam::111111111111:role/JohnRole2", "roleSessionName": "Role2WithTags", "transitiveTagKeys": [ "Email", "CostCenter" ], "durationSeconds": 3600 }, "responseElements": { "credentials": { "accessKeyId": "ASIAWHOJDLGPOEXAMPLE", "expiration": "Oct 2, 2019 11:12:29 PM", "sessionToken": "AgoJb3JpZ2luX2VjEB4aCXVzLXdlc3QtMSJHMEXAMPLETOKEN+//rJb8Lo30mFc5MlhFCEbubZvEj0wHB/mDMwIgSEe9gk/Zjr09tZV7F1HDTMhmEXAMPLETOKEN/iEJ/rkqngII9///////////ARABGgw0MjgzMDc4NjM5NjYiDLZjZFKwP4qxQG5sFCryASO4UPz5qE97wPPH1eLMvs7CgSDBSWfonmRTCfokm2FN1+hWUdQQH6adjbbrVLFL8c3jSsBhQ383AvxpwK5YRuDE1AI/+C+WKFZb701eiv9J5La2EXAMPLETOKEN/c7S5Iro1WUJ0q3Cxuo/8HUoSxVhQHM7zF7mWWLhXLEQ52ivL+F6q5dpXu4aTFedpMfnJa8JtkWwG9x1Axj0Ypy2ok8v5unpQGWych1vwdvj6ez1Dm8Xg1+qIzXILiEXAMPLETOKEN/vQGqu8H+nxp3kabcrtOvTFTvxX6vsc8OGwUfHhzAfYGEXAMPLETOKEN/L6v1yMM3B1OwFOrQBno1HEjf1oNI8RnQiMNFdUOtwYj7HUZIOCZmjfN8PPHq77N7GJl9lzvIZKQA0Owcjg+mc78zHCj8y0siY8C96paEXAMPLETOKEN/E3cpksxWdgs91HRzJWScjN2+r2LTGjYhyPqcmFzzo2mCE7mBNEXAMPLETOKEN/oJy+2o83YNW5tOiDmczgDzJZ4UKR84yGYOMfSnF4XcEJrDgAJ3OJFwmTcTQICAlSwLEXAMPLETOKEN" }, "assumedRoleUser": { "assumedRoleId": "AROAIFR7WHDTSOYQYHFUE:Role2WithTags", "arn": "arn:aws:sts::111111111111:assumed-role/test-role/Role2WithTags" } }, "requestID": "b96b0e4e-e561-11e9-8b3f-7b396EXAMPLE", "eventID": "1917948f-3042-46ec-98e2-62865EXAMPLE", "resources": [ { "ARN": "arn:aws:iam::111122223333:role/JohnRole2", "accountId": "111111111111", "type": "AWS::IAM::Role" } ], "eventType": "AwsApiCall", "recipientAccountId": "111111111111" }

CloudTrail ログファイルの AWS のサービス AWS STS API イベントの例

次の例は、サービスロールのアクセス許可を使用して別のサービス API を呼び出す AWS のサービスによって行われたリクエストの CloudTrail ログエントリを示しています。アカウント 777788889999 で行われたリクエストの 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" }

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

以下の例は、AWS STS の AssumeRoleWithSAML アクションに対するリクエストの CloudTrail ログエントリを示しています。リクエストには SAML アサーションを介してセッションタグとして渡される SAML 属性 CostCenterProject が含まれています。これらのタグは推移的として設定され、ロールの連鎖シナリオでも保持されます

{ "eventVersion": "1.05", "userIdentity": { "type": "SAMLUser", "principalId": "SampleUkh1i4+ExamplexL/jEvs=:SamlExample", "userName": "SamlExample", "identityProvider": "bdGOnTesti4+ExamplexL/jEvs=" }, "eventTime": "2019-11-01T19:14:36Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRoleWithSAML", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/1.16.263 Python/3.4.7 Linux/4.9.184-0.1.ac.235.83.329.metal1.x86_64 botocore/1.12.253", "requestParameters": { "sAMLAssertionID": "_c0046cEXAMPLEb9d4b8eEXAMPLE2619aEXAMPLE", "roleSessionName": "MyAssignedRoleSessionName", "principalTags": { "CostCenter": "987654", "Project": "Unicorn", "Department": "Engineering" }, "transitiveTagKeys": [ "CostCenter", "Project" ], "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": "bdGOnTesti4+ExamplexL/jEvs=", "assumedRoleUser": { "assumedRoleId": "AROAD35QRSTUVWEXAMPLE:MyAssignedRoleSessionName", "arn": "arn:aws:sts::444455556666:assumed-role/SAMLTestRoleShibboleth/MyAssignedRoleSessionName" }, "subject": "SamlExample", "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" }

CloudTrail ログファイルのウェブ ID AWS STS API イベントの例

以下の例は、AWS STS の AssumeRoleWithWebIdentity アクションに対するリクエストの CloudTrail ログエントリを示しています。リクエストには ID プロバイダートークンを介してセッションタグとして渡される属性 CostCenterProject が含まれています。これらのタグは推移的として設定され、ロールの連鎖シナリオでも保持されます

{ "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" "principalTags": { "CostCenter": "24680", "Project": "Pegasus" }, "transitiveTagKeys": [ "CostCenter", "Project" ], }, "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 ログファイルには、イベントが JSON 形式で書き込まれます。サインインイベントは、シングルサインインリクエストを表し、サインインプリンシパル、リージョン、およびアクションの日時に関する情報を含みます。

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

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

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn":"arn:aws:iam::111122223333:user/JohnDoe", "accountId": "111122223333", "userName": "JohnDoe" }, "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 のログエントリの例を以下に示します。

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn":"arn:aws:iam::111122223333:user/JaneDoe", "accountId": "111122223333", "userName": "JaneDoe" }, "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 エレメントに示されているように、このサインインは JaneDoe という IAM ユーザーによって試行されたことを確認できます。また、responseElements エレメントに示されているように、サインインの試行が失敗したこともわかります。さらに、JaneDoe が 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" }