CloudFront とオリジン間の通信が未暗号化

CloudFront とカスタムオリジンサーバーの間にも HTTPS を使用します。

説明

CloudFront がカスタムオリジンに HTTP で接続すると、ビューワーと CloudFront の間が HTTPS でも、オリジンへの接続は暗号化されません。

想定される影響

オリジンへの通信を傍受できる相手が、リクエストや応答のデータを読み取ったり改ざんしたりするおそれがあります。

対処方法

オリジンで HTTPS を使えるように証明書を用意し、CustomOriginConfig.OriginProtocolPolicy を https-only にしてください。証明書の名前と、オリジンに正常に接続できることを確認してください。

例

この例はカスタムオリジン設定の抜粋です。app.example.com を実際に到達可能なオリジンホストに置き換えてください。S3 ウェブサイトエンドポイントは HTTPS に対応しないため、別のオリジン構成が必要です。

変更前

yaml
Resources:
  WebDistribution:
    Type: AWS::CloudFront::Distribution
    Properties:
      DistributionConfig:
        Origins:
          - DomainName: app.example.com
            Id: app-origin
            CustomOriginConfig:
              OriginProtocolPolicy: http-only

変更後

yaml
Resources:
  WebDistribution:
    Type: AWS::CloudFront::Distribution
    Properties:
      DistributionConfig:
        Origins:
          - DomainName: app.example.com
            Id: app-origin
            CustomOriginConfig:
              OriginProtocolPolicy: https-only

参考資料