CloudFront のディストリビューションとオリジン設定の確認

サービスに必要な CloudFront ディストリビューションとオリジンを確認し、オリジンへのアクセス、HTTPS、アプリケーションの保護を別途管理してください。

説明

CloudFront を利用する設計のサービスでは、ディストリビューションの無効化やオリジン設定の不足により、想定した経路でコンテンツを配信できないことがあります。ただし、すべての外部向けサービスに CDN が必要なわけではなく、CDN を使わないことだけで脆弱になるわけではありません。

CloudFront を有効にするだけでは、オリジンへの直接アクセスやアプリケーションへの攻撃は防げません。可用性の要件とオリジンのアクセスポリシーを併せて確認する必要があります。

想定される影響

  • 必要なディストリビューションが動作しないと、配信の停止やオリジンへの負荷集中につながる可能性があります。
  • オリジンに直接アクセスできると、CloudFront に適用したアクセス制御やフィルタリングを迂回される可能性があります。

対処方法

  1. サービスに CDN が必要か確認し、必要なディストリビューションの Enabled、Origins、キャッシュ動作を設定してください。
  2. オリジンに適したアクセス制限と HTTPS を設定し、ビューワー接続、認証、必要な WAF ポリシーを別途確認してください。
  3. デプロイ状況と実際のリクエスト経路を確認し、エラーとオリジンの負荷を監視してください。

例

以下はディストリビューション設定の抜粋です。実際のデプロイには、デフォルトのキャッシュ動作などの必須設定と、有効なオリジンが必要です。

変更前

yaml
Resources:
  MyDistribution:
    Type: AWS::CloudFront::Distribution
    Properties:
      DistributionConfig:
        Enabled: false
        DefaultRootObject: index.html

ディストリビューションが無効で、オリジンもありません。

変更後

yaml
Resources:
  MyDistribution:
    Type: AWS::CloudFront::Distribution
    Properties:
      DistributionConfig:
        Enabled: true
        DefaultRootObject: index.html
        Origins:
          - DomainName: www.example.com
            Id: origin1
            CustomOriginConfig:
              HTTPPort: 80
              HTTPSPort: 443
              OriginProtocolPolicy: https-only

ディストリビューションを有効にし、HTTPS で接続するカスタムオリジンを指定します。この抜粋だけでは、ビューワー側の HTTPS やオリジンへの直接アクセス制限は設定されません。

参考資料