AWS CloudTrail による AWS AppSync API コールのログ記録 - AWS AppSync GraphQL

AWS CloudTrail による AWS AppSync API コールのログ記録

AWS AppSync は AWS CloudTrail と統合されています。このサービスは、AWS AppSync のユーザー、ロール、または AWS サービスによって実行されたアクションを記録するサービスです。CloudTrail は AWS AppSync の API 呼び出しをイベントとしてキャプチャします。キャプチャされたコールには、AWS AppSync コンソールからの呼び出しと、AWS AppSync API オペレーションへのコード呼び出しが含まれます。証跡を作成する場合は、AWS AppSync のイベントなど、Amazon S3 バケットへの CloudTrail イベントの継続的配信を有効にすることができます。証跡を設定しない場合でも、CloudTrail コンソールの [イベント履歴] で最新のイベントを表示できます。CloudTrail によって収集された情報を使用して、AWS AppSync に対して行われた要求、要求が行われた IP アドレス、要求を行った人、いつ行われたか、および追加の詳細を判別できます。

CloudTrail の詳細については、「AWS CloudTrail ユーザーガイド」を参照してください。

CloudTrail での AWS AppSync 情報

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

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

AWS AppSync は、AWS AppSync API を介して行われた呼び出しのログ記録をサポートしています。現時点では、API への呼び出しとリゾルバーへの呼び出しは、AWS AppSync によって CloudTrail に記録されません。

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

  • リクエストが、ルート認証情報と AWS Identity and Access Management (IAM) ユーザー認証情報のどちらを使用して送信されたか。

  • リクエストがロールまたはフェデレーションユーザーのテンポラリなセキュリティ認証情報を使用して行われたかどうか。

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

詳細については、「CloudTrail userIdentity エレメント」を参照してください。

AWS AppSync ログファイルエントリの概要

「トレイル」は、指定した Amazon S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrail のログファイルは、単一か複数のログエントリを含みます。イベントは任意ソースからの単一リクエストを表し、リクエストされたアクション、アクションの日時、リクエストパラメータなどの情報を含みます。CloudTrail ログファイルは、パブリック API 呼び出しの順序付けられたスタックトレースではないため、特定の順序では表示されません。

次の例は、AWS AppSync コンソールでおこなわれた GetGraphqlApi アクションを示す CloudTrail ログエントリです。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "ABCDEFXAMPLEPRINCIPAL:nikkiwolf", "arn": "arn:aws:sts::111122223333:assumed-role/admin/nikkiwolf", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AIDAJ45Q7YFFAREXAMPLE", "arn": "arn:aws:iam::111122223333:role/admin", "accountId": "111122223333", "userName": "admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-03-12T22:41:48Z" } } }, "eventTime": "2021-03-12T22:46:18Z", "eventSource": "appsync.amazonaws.com", "eventName": "GetGraphqlApi", "awsRegion": "us-west-2", "sourceIPAddress": "203.0.113.69", "userAgent": "aws-internal/3 aws-sdk-java/1.11.942 Linux/4.9.230-0.1.ac.223.84.332.metal1.x86_64 OpenJDK_64-Bit_Server_VM/25.282-b08 java/1.8.0_282 vendor/Oracle_Corporation", "requestParameters": { "apiId": "xhxt3typtfnmidkhcexampleid" }, "responseElements": null, "requestID": "2fc43a35-a552-4b5d-be6e-12553a03dd12", "eventID": "b95b0ad9-8c71-4252-a2ec-5dc2fe5f8ae8", "readOnly": true, "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }

次の例は、AWS CLI でおこなわれた CreateApikey アクションを示す CloudTrail ログエントリです。

{ "eventVersion": "1.08", "userIdentity": { "type": "IAMUser", "principalId": "ABCDEFXAMPLEPRINCIPAL", "arn": "arn:aws:iam::111122223333:user/nikkiwolf", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "nikkiwolf" }, "eventTime": "2021-03-12T22:49:10Z", "eventSource": "appsync.amazonaws.com", "eventName": "CreateApiKey", "awsRegion": "us-west-2", "sourceIPAddress": "203.0.113.69", "userAgent": "aws-cli/2.0.11 Python/3.7.4 Darwin/18.7.0 botocore/2.0.0dev15", "requestParameters": { "apiId": "xhxt3typtfnmidkhcexampleid" }, "responseElements": { "apiKey": { "id": "***", "expires": 1616191200, "deletes": 1621375200 } }, "requestID": "e152190e-04ba-4d0a-ae7b-6bfc0bcea6af", "eventID": "ba3f39e0-9d87-41c5-abbb-2000abcb6013", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }