WAF ウェブ ACL が関連付けられていない CloudFront

CloudFront に AWS WAF のウェブ ACL を関連付けると、設定したルールに基づいてウェブリクエストを検査・制御できます。

説明

CloudFront ディストリビューションに AWS WAF のウェブ ACL を関連付けると、エッジでウェブリクエストを検査し、設定されたルールとアクションに基づいて制御できます。ウェブ ACL が関連付けられていないディストリビューションには、この WAF による保護が適用されません。

関連付けるだけですべての攻撃を遮断できるわけではありません。ルールの範囲とアクションが重要であり、Count アクションはリクエストを集計するだけで遮断はしません。WAF は、アプリケーションの認証、入力検証、脆弱性の修正に代わるものではありません。

想定される影響

  • 悪意のあるリクエストや異常なリクエスト量をエッジで制限する機会を失う可能性があります。
  • アプリケーションに脆弱性がある場合、その攻撃を緩和できる WAF ルールがない状態で悪用される可能性があります。

対処方法

  • CLOUDFRONT スコープの AWS WAF ウェブ ACL を用意し、us-east-1 にあるそのウェブ ACL の ARN を distributionConfig.webACLID に指定してください。
  • サービスに適したマネージドルールとレート制限を構成してください。Count モードとログで影響を確認してから、必要な遮断アクションを適用してください。
  • 実際のディストリビューションにウェブ ACL が関連付けられていることを確認し、攻撃リクエストと正常なリクエストへの動作を試験してください。

例

以下はウェブ ACL の関連付けだけを比較する部分的な例です。証明書やオリジンなど、残りの必須設定は省略しています。例の ARN は、実際の CloudFront 用ウェブ ACL の ARN に置き換えてください。

変更前

yaml
apiVersion: cloudfront.aws.crossplane.io/v1alpha1
kind: Distribution
spec:
  forProvider:
    distributionConfig:
      enabled: true
      viewerCertificate:
        minimumProtocolVersion: TLSv1.2_2018

この定義には WAF ウェブ ACL の関連付けがありません。アプリケーションのほかのセキュリティ対策も含めて、必要な保護を検討してください。

変更後

yaml
apiVersion: cloudfront.aws.crossplane.io/v1alpha1
kind: Distribution
spec:
  forProvider:
    distributionConfig:
      enabled: true
      viewerCertificate:
        minimumProtocolVersion: TLSv1.2_2018
      webACLID: arn:aws:wafv2:us-east-1:123456789012:global/webacl/example/473e64fd-f30b-4765-81a0-62ad96dd167a

ARN で AWS WAF ウェブ ACL を関連付けています。許可・遮断されるリクエストは、関連付けられたウェブ ACL の実際のルールとアクションによって決まります。

参考資料