ログ設定の確認が必要な CloudFront ディストリビューション

CloudFront のアクセスログがないと、リクエストの追跡や異常なトラフィックの調査が難しくなる場合があります。

説明

CloudFront のアクセスログには、リクエストパス、応答ステータス、処理時間などが記録されます。必要なリクエストログがないと、異常なトラフィックや CDN 層のエラーを調査しにくくなります。ログ自体が攻撃を遮断するわけではありません。

想定される影響

  • 異常なリクエストや大量アクセスの発見が遅れるおそれがあります。
  • インシデント調査や障害解析に必要なリクエスト履歴が不足する場合があります。

対処方法

  • ディストリビューションに必要な標準ログやリアルタイムログを設定してください。以下の S3 への配信方式では、logging.enabled: true、ログバケット、prefix を指定してください。
  • 選択した方式の配信権限、保存先のアクセス制限、保持期間を設定し、実際の受信を確認してください。
  • 標準ログの配信はベストエフォートであり、すべてのリクエストが必ず記録されるとは限りません。

例

ログ設定を比較する抜粋です。キャッシュ動作など、その他の必須設定は省略しています。どちらも enabled: false のため、コンテンツを配信する状態にはなっていません。

変更前

yaml
- name: create a CloudFront distribution
  community.aws.cloudfront_distribution:
    state: present
    caller_reference: unique test distribution ID
    origins:
      - id: my test origin-000111
        domain_name: www.example.com
    enabled: false

この設定にはログの配信設定がありません。運用中のディストリビューションに別途設定されたログ経路も確認してください。

変更後

yaml
- name: create a CloudFront distribution
  community.aws.cloudfront_distribution:
    state: present
    caller_reference: unique test distribution ID
    origins:
      - id: my test origin-000111
        domain_name: www.example.com
    logging:
      enabled: true
      include_cookies: false
      bucket: mylogbucket.s3.amazonaws.com
      prefix: myprefix/
    enabled: false

S3 へのログ配信を有効にしています。バケットと prefix を実際の保存先に置き換え、この配信方式に必要な権限を用意してください。

参考資料