メニュー
Amazon CloudFront
開発者ガイド (API バージョン 2016-09-29)

AWS CloudTrail を使用して CloudFront API に送信されたリクエストをキャプチャする

CloudFront は、IAM ユーザーも含めて、ご利用の AWS アカウントにより CloudFront API に送信されるあらゆるリクエストに関する情報をキャプチャする AWS サービスである CloudTrail と統合されています。CloudTrail はこのようなリクエストのログファイルを定期的に指定の Amazon S3 バケットに保存します。CloudTrail は、CloudFront コンソール、CloudFront API、AWS SDK、CloudFront CLI、別のサービス (例: AWS CloudFormation)など、何を利用してリクエストが作成されたかを問わず、すべてのリクエストに関する情報をキャプチャします。

CloudTrail ログファイルの情報を使用して、CloudFront に対して実行されたリクエストの種類、リクエストの実行元 IP アドレス、実行者、実行日時などを判断できます。CloudTrail の詳細 (設定して有効にする方法など) については、AWS CloudTrail User Guide を参照してください。

注記

CloudFront はグローバルサービスです。CloudFront ログの CloudTrail リクエストを表示するには、既存の証跡を更新してグローバル サービスを含める必要があります。詳細については、AWS CloudTrail User Guide の「Updating a Trail」と「About Global Service Events」を参照してください。

CloudTrail ログファイル内の CloudFront 情報

CloudTrail を有効にすると、CloudTrail がサポートするあらゆる AWS サービスに対して実行されるあらゆるリクエストが CloudTrail によってキャプチャされます (サポートされるサービスの一覧は、『AWS CloudTrail User Guide』の「サポートされるサービス」をご覧ください)。ログファイルはサービス別に整理も並べ替えもされていません。各ログファイルは複数のサービスのレコードを含む可能性があります。新しいログファイルを作成する時期は、CloudTrail によって決定されます。

注記

CloudTrail はすべての CloudFront API アクションをサポートします。

各ログファイルエントリには、リクエストの実行者に関する情報が含まれます。ログファイルのユーザー ID 情報は、リクエストが、ルートまたは IAM ユーザーの認証情報を使用して送信されたか、ロールまたはフェデレーションユーザーの一時的なセキュリティ認証情報を使用して送信されたか、あるいは別の AWS サービスによって送信されたかを確認するのに役立ちます。詳細については、AWS CloudTrail User Guide の「userIdentity 要素」を参照してください。

ログファイルは、任意の期間、保存できます。また、Amazon S3 ライフサイクルのルールを定義して、自動的にログファイルをアーカイブまたは削除することもできます。

デフォルトでは Amazon S3 のサーバー側の暗号化 (SSE) を使用して、ログファイルが暗号化されます。

ログファイルの配信時にすぐにアクションを実行する場合、新しいログファイルの配信時に CloudTrail により Amazon SNS 通知を発行することを選択できます。詳細については、AWS CloudTrail User Guide の「Amazon SNS 通知の設定」を参照してください。

また、複数の AWS リージョンと複数の AWS アカウントのログファイルを 1 つの Amazon S3 バケットに集約することもできます。詳細については、AWS CloudTrail User Guide の「CloudTrail ログファイルの単一の Amazon S3 バケットへの集約」を参照してください。

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

JSON 形式の各 CloudTrail ログファイルには、1 つ以上のログエントリを含めることができます。各ログエントリは任意の送信元からの単一のリクエストを表し、パラメータやアクションの日時など、リクエストされたアクションに関する情報を含みます。ログエントリは、特定の順序で生成されるわけではなく、API 呼び出しのスタックトレース順に並んではいません。

eventName 要素は、発生したアクションと、そのアクションを実行するときに使用された API バージョンを特定します。たとえば、以下の eventName 値は、ウェブディストリビューションが更新され、そのアクションを実行するときに 2014-01-31 という API バージョンが使用されたことを示しています。

UpdateDistribution2014_01_31

以下の例は、5 つのアクションを表す CloudTrail ログエントリを示しています。

  • ウェブディストリビューション設定の更新。eventName の値は UpdateDistribution です。

  • 現在のアカウントに関連付けられているウェブディストリビューションの一覧取得。eventName の値は ListDistributions です。

  • 特定のウェブディストリビューションの設定の取得。eventName の値は GetDistribution です。

  • 無効化バッチリクエストの作成。eventName の値は CreateInvalidation です。

  • 現在のアカウントに関連付けられているオリジンアクセス ID の一覧取得。eventName の値は ListCloudFrontOriginAccessIdentities です。

{ "Records": [{ "eventVersion": "1.01", "userIdentity": { "type": "IAMUser", "principalId": "A1B2C3D4E5F6G7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/smithj", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "smithj" }, "eventTime": "2014-05-06T18:00:32Z", "eventName": "UpdateDistribution2014_01_31", "sourceIPAddress": "192.0.2.17", "userAgent": "aws-sdk-ruby/1.39.0 ruby/1.9.3 x86_64-linux", "requestParameters": { "id": "EDFDVBD6EXAMPLE", "ifMatch": "E9LHASXEXAMPLE", "distributionConfig": { "restrictions": { "geoRestriction": { "quantity": 0, "restrictionType": "none" } }, "customErrorResponses": { "quantity": 0 }, "defaultRootObject": "index.html", "aliases": { "quantity": 1, "items": ["example.com"] }, "logging": { "bucket": "", "enabled": false, "prefix": "", "includeCookies": false }, "viewerCertificate": { "iAMCertificateId": "A1B2C3D4E5F6G7EXAMPLE", "sSLSupportMethod": "sni-only" }, "callerReference": "2014-05-06 64832", "defaultCacheBehavior": { "targetOriginId": "Images", "allowedMethods": { "items": ["GET", "HEAD"], "quantity": 2 }, "forwardedValues": { "cookies": { "forward": "none" }, "queryString": false }, "minTTL": 300, "trustedSigners": { "enabled": false, "quantity": 0 }, "viewerProtocolPolicy": "redirect-to-https", "smoothStreaming": false }, "origins": { "items": [{ "customOriginConfig": { "hTTPSPort": 443, "originProtocolPolicy": "http-only", "hTTPPort": 80 }, "domainName": "myawsbucket.s3-website-us-east-2.amazonaws.com", "id": "Web page origin" }, { "customOriginConfig": { "hTTPSPort": 443, "originProtocolPolicy": "http-only", "hTTPPort": 80 }, "domainName": "myotherawsbucket.s3-website-us-west-2.amazonaws.com", "id": "Images" }], "quantity": 2 }, "enabled": true, "cacheBehaviors": { "allowedMethods": { "items": ["GET", "HEAD"], "quantity": 2 }, "trustedSigners": { "enabled": false, "quantity": 0 }, "targetOriginId": "Web page origin", "smoothStreaming": false, "viewerProtocolPolicy": "redirect-to-https", "minTTL": 300, "forwardedValues": { "cookies": { "forward": "none" }, "queryString": false }, "pathPattern": "*.html" }], "quantity": 1 }, "priceClass": "PriceClass_All", "comment": "Added an origin and a cache behavior" } }, "responseElements": { "eTag": "E2QWRUHEXAMPLE", "distribution": { "domainName": "d111111abcdef8.cloudfront.net", "status": "InProgress", "distributionConfig": { distributionConfig response omitted }, "id": "EDFDVBD6EXAMPLE", "lastModifiedTime": "May 6, 2014 6:00:32 PM", "activeTrustedSigners": { "quantity": 0, "enabled": false }, "inProgressInvalidationBatches": 0 } }, "requestID": "4e6b66f9-d548-11e3-a8a9-73e33example", "eventID": "5ab02562-0fc5-43d0-b7b6-90293example" }, { "eventVersion": "1.01", "userIdentity": { "type": "IAMUser", "principalId": "A1B2C3D4E5F6G7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/smithj", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "smithj" }, "eventTime": "2014-05-06T18:01:35Z", "eventName": "ListDistributions2014_01_31", "sourceIPAddress": "192.0.2.17", "userAgent": "aws-sdk-ruby/1.39.0 ruby/1.9.3 x86_64-linux", "requestParameters": null, "responseElements": null, "requestID": "52de9f97-d548-11e3-8fb9-4dad0example", "eventID": "eb91f423-6dd3-4bb0-a148-3cdfbexample" }, { "eventVersion": "1.01", "userIdentity": { "type": "IAMUser", "principalId": "A1B2C3D4E5F6G7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/smithj", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "smithj" }, "eventTime": "2014-05-06T18:01:59Z", "eventName": "GetDistribution2014_01_31", "sourceIPAddress": "192.0.2.17", "userAgent": "aws-sdk-ruby/1.39.0 ruby/1.9.3 x86_64-linux", "requestParameters": { "id": "EDFDVBD6EXAMPLE" }, "responseElements": null, "requestID": "497b3622-d548-11e3-8fb9-4dad0example", "eventID": "c32289c7-005a-46f7-9801-cba41example" }, { "eventVersion": "1.01", "userIdentity": { "type": "IAMUser", "principalId": "A1B2C3D4E5F6G7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/smithj", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "smithj" }, "eventTime": "2014-05-06T18:02:27Z", "eventName": "CreateInvalidation2014_01_31", "sourceIPAddress": "192.0.2.17", "userAgent": "aws-sdk-ruby/1.39.0 ruby/1.9.3 x86_64-linux", "requestParameters": { "invalidationBatch": { "callerReference": "2014-05-06 64947", "paths": { "quantity": 3, "items": ["/images/new.jpg", "/images/logo.jpg", "/images/banner.jpg"] } }, "distributionId": "EDFDVBD6EXAMPLE" }, "responseElements": { "invalidation": { "createTime": "May 6, 2014 6:02:27 PM", "invalidationBatch": { "callerReference": "2014-05-06 64947", "paths": { "quantity": 3, "items": ["/images/banner.jpg", "/images/logo.jpg", "/images/new.jpg"] } }, "status": "InProgress", "id": "ISRZ85EXAMPLE" }, "location": "https://cloudfront.amazonaws.com/2014-01-31/distribution/EDFDVBD6EXAMPLE/invalidation/ISRZ85EXAMPLE" }, "requestID": "4e200613-d548-11e3-a8a9-73e33example", "eventID": "191ebb93-66b7-4517-a741-92b0eexample" }, { "eventVersion": "1.01", "userIdentity": { "type": "IAMUser", "principalId": "A1B2C3D4E5F6G7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/smithj", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "smithj" }, "eventTime": "2014-05-06T18:03:08Z", "eventName": "ListCloudFrontOriginAccessIdentities2014_01_31", "sourceIPAddress": "192.0.2.17", "userAgent": "aws-sdk-ruby/1.39.0 ruby/1.9.3 x86_64-linux", "requestParameters": null, "responseElements": null, "requestID": "42ca4299-d548-11e3-8fb9-4dad0example", "eventID": "7aeb434f-eb55-4e2a-82d8-417d5example" }] }