CloudFrontのアクセスログ設定方法

8月 16, 2019AWS,CloudFront

CloudFrontのディストリビューションにアクセスログを設定する

概要

  • CloudFrontにアクセスログを設定する方法を紹介します。CloudFrontにアクセスログを設定することで、ユーザーリクエストをログに記録することができます。
  • CloudFrontのアクセスログは、S3の指定バケットに保存されます。S3バケットのアクセス許可は、後述します。

CloudFrontの設定

  • CloudFrontのコンソールで、Distributionを選択します。
  • Generalタブにおいて、Edit を押下して設定を編集します。

 

  • LoggingをOnにします。アクセスログを保存するS3のバケット名を指定します。同一アカウントのS3バケットを指定する場合は選択肢から選び、異なるアカウントのS3バケットを指定する場合は直接入力します。
  • ファイル名のプレフィックスをオプションで指定できます。
  • 「Yes, Edit」ボタンを押下して、設定変更を適用します。

 

  • 設定変更が適用されると下記画面になります。

 

 

ログ記録の確認

S3バケットのログ記録を確認する

  • S3バケットにログ記録が開始されたことを確認します。gz圧縮され、ファイルが保存されていることが確認できます。

ファイル名の形式

  • CloudFront が Amazon S3 バケットに保存する各ログファイルの名前には、次のファイル名形式が使用されます。(出典:Amazon CloudFront 開発者ガイド
  • 日付と時刻は協定世界時 (UTC) です。
    bucket-name.s3.amazonaws.com/optional-prefix/distribution-ID. YYYY-MM-DD-HH.unique-ID.gz
  • たとえば、バケット名が mylogs、プレフィックスが myprefix/、ディストリビューション ID が EMLARXS9EXAMPLE であれば、ファイル名は次のようになります。
    mylogs.s3.amazonaws.com/myprefix/EMLARXS9EXAMPLE.2014-11-14-20.RT4KCN4SGK9.gz

参考情報

  • その他ログ記録の仕組みやログの形式は、下記ドキュメントを参照下さい。

 

S3バケットのアクセス許可

  • CloudFrontのアクセスログを保存するS3バケットのアクセスコントロールリストを確認します。CloudFrontでアクセスログを有効にすると、CloudFront は自動的に、awslogsdelivery アカウントに FULL_CONTROL のアクセス許可を付与します。
  • S3バケットのアクセスコントロールリストを確認すると、下記の「他の AWS アカウントのアクセス」に下記正規IDが追加され、FULL_CONTROL のアクセス許可が付与されたことが確認できます。 c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0
  • もし、上記正規IDが追加されていない場合は、手動で正規IDとアクセス許可を設定する必要があります。詳細は、ドキュメントを参照ください。

 

 

CloudFrontのアクセスログが記録されないとき

  • CloudFrontのアクセスログが記録されないときは、S3バケットのアクセス権限に、下記awslogsdelivery アカウントが追加され、FULL_CONTROL のアクセス許可が設定されていることを確認します。

c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0

 

AWS,CloudFront

Posted by takaaki