AWS CloudTrail を使用した Amazon Cognito API コールのロギング - Amazon Cognito

AWS CloudTrail を使用した Amazon Cognito API コールのロギング

Amazon Cognito は、Amazon Cognito でユーザー、ロール、または AWS のサービスが実行したアクションを記録するサービスである AWS CloudTrail と統合されています。CloudTrail は、Amazon Cognito の API コールのサブセットをイベントとしてキャプチャし、これには Amazon Cognit コンソールと、Amazon Cognito API 操作へのコードコールからのコールが含まれます。証跡を作成する場合は、Amazon Cognito のイベントを含めた CloudTrail イベントの Amazon S3 バケットへの継続的な配信を有効にすることができます。証跡を設定しない場合でも、CloudTrail コンソールの [Event history] (イベント履歴) で最新のイベントを表示できます。CloudTrail によって収集された情報を使用して、Amazon Cognito に対して行われたリクエスト、リクエスト元の IP アドレス、リクエスト者、リクエストが行われた日時、および追加の詳細を確認できます。

設定や有効化の方法など、CloudTrail の詳細については、AWS CloudTrail ユーザーガイドを参照してください。

特定の CloudTrail イベントに対する Amazon CloudWatch アラームを作成することもできます。例えば、ID プールの設定が変更された場合にアラームがトリガーされるように CloudWatch を設定できます。詳細については、「CloudTrail イベントの CloudWatch アラームの作成: 例」を参照してください。

CloudTrail 内の Amazon Cognito 情報

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

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

Amazon Cognito ユーザープール

Amazon Cognito は、[User pool actions] (ユーザープールのアクション) ページにリストされているすべてのアクションを、イベントとして CloudTrail ログファイルに記録することをサポートします。ユーザー固有のリクエストについて、Amazon Cognito は CloudTrail ログに UserSub を記録しますが、UserName は記録しません。ListUsers API を呼び出し、sub のフィルターを使用することで、所定の UserSub のユーザーを見つけることができます。

注記

ホストされた UI とフェデレーションコールは、現在 CloudTrail に含まれていません。

Amazon Cognito フェデレーティッド ID

Amazon Cognito Sync

Amazon Cognito は、[Amazon Cognito Sync actions] (Amazon Cognito Sync アクション) ページにリストされているすべてのアクションをイベントとして CloudTrail ログファイルにログすることをサポートしています。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。このアイデンティティ情報は以下のことを確認するのに役立ちます。

  • リクエストが、ルートとまたはIAMユーザー認証情報のどちらを使用して送信されたか。

  • リクエストが、ロールおよびフェデレーティッドユーザーの一時的なセキュリティ認証情報を使用して送信されたかどうか。

  • リクエストが、別の AWS のサービスによって実行されたかどうか。

詳細については、CloudTrail userIdentity 要素を参照してください。

例: Amazon Cognito ログファイルのエントリ

証跡は、指定した Amazon S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrail のログファイルには、1 つまたは複数のログエントリが含まれます。イベントは任意の発生元からの 1 つのリクエストを表し、要求されたアクション、アクションの日時、リクエストパラメータなどに関する情報が含まれます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

次の例は、CreateIdentityPool アクションに対するリクエストのログエントリを示しています。リクエストは Alice という IAM ユーザーによって行われました。

{ "eventVersion":"1.03", "userIdentity":{ "type":"IAMUser", "principalId":"PRINCIPAL_ID", "arn":"arn:aws:iam::123456789012:user/Alice", "accountId":"123456789012", "accessKeyId":"['EXAMPLE_KEY_ID']", "userName":"Alice" }, "eventTime":"2016-01-07T02:04:30Z", "eventSource":"cognito-identity.amazonaws.com", "eventName":"CreateIdentityPool", "awsRegion":"us-east-1", "sourceIPAddress":"127.0.0.1", "userAgent":"USER_AGENT", "requestParameters":{ "identityPoolName":"TestPool", "allowUnauthenticatedIdentities":true, "supportedLoginProviders":{ "graph.facebook.com":"000000000000000" } }, "responseElements":{ "identityPoolName":"TestPool", "identityPoolId":"us-east-1:1cf667a2-49a6-454b-9e45-23199EXAMPLE", "allowUnauthenticatedIdentities":true, "supportedLoginProviders":{ "graph.facebook.com":"000000000000000" } }, "requestID":"15cc73a1-0780-460c-91e8-e12ef034e116", "eventID":"f1d47f93-c708-495b-bff1-cb935a6064b2", "eventType":"AwsApiCall", "recipientAccountId":"123456789012" }