WAF の関連付けの確認が必要な CloudFront ディストリビューション

必要な WAF ルールがないと、CloudFront のエッジでウェブ攻撃や自動化された不正利用を制御する手段が減ります。

説明

CloudFront に AWS WAF のウェブ ACL を関連付けると、ルールに応じて HTTP・HTTPS リクエストを検査、遮断できます。この保護が必要なサービスで関連付けがない場合、CloudFront 層でそのフィルタリングを利用できません。ウェブ ACL だけですべての攻撃を防げるわけではなく、アプリケーションの認証や脆弱性修正も必要です。

想定される影響

  • アプリケーションの弱点を悪用するリクエストがオリジンに届くおそれがあります。
  • 必要なフィルターやレート制限がないと、サービスの負荷が増える場合があります。

対処方法

  • 必要なウェブ ACL を構成し、web_acl_id で関連付けてください。AWS WAFv2 では、CloudFront 用ウェブ ACL の ARN を使ってください。
  • マネージドルールとサービス固有のルールを確認し、正当なリクエストが遮断されないことを試験してください。
  • WAF のログとメトリクスを監視し、オリジンへの直接アクセスも必要な範囲に制限してください。

例

ウェブ ACL の関連付けを比較する抜粋です。オリジンのアドレスを実際の値に置き換え、cloudfront_web_acl_arn に用意した CloudFront 用 WAFv2 ウェブ ACL の ARN を渡してください。

変更前

yaml
- name: create a basic distribution with defaults and tags
  community.aws.cloudfront_distribution:
    state: present
    default_origin_domain_name: www.my-cloudfront-origin.com

この例にはウェブ ACL の関連付けがありません。サービスに必要なリクエスト保護を別の設定で提供しているかも確認してください。

変更後

yaml
- name: create a basic distribution with defaults and tags
  community.aws.cloudfront_distribution:
    state: present
    default_origin_domain_name: www.my-cloudfront-origin.com
    web_acl_id: "{{ cloudfront_web_acl_arn }}"

ディストリビューションにウェブ ACL を関連付けます。実際の遮断は、ルールとデフォルトアクションによって決まります。

参考資料