CloudFrontのセキュリティポリシーが古いTLSを許可している

CloudFrontのビューワー接続にTLS 1.2以上を必須としてください。

説明

CloudFrontのビューワーセキュリティポリシーがTLS 1.2未満を許可していると、古いプロトコルで接続できます。デフォルトのCloudFront証明書では最小バージョンがTLSv1に固定されているため、それより高い最小バージョンを設定するにはカスタム証明書が必要です。

想定される影響

古いプロトコルを許可すると、古い暗号方式が使われたり、通信のセキュリティ基準を満たせなかったりするおそれがあります。

対処方法

サービスのドメインを含むカスタム証明書と、TLS 1.2以上を最小バージョンとするセキュリティポリシーを設定してください。変更前にクライアントの互換性を確認してください。

例

以下は証明書設定の抜粋です。証明書ARNの変数には、us-east-1で発行またはインポートしたACM証明書を指定してください。

変更前

hcl
resource "aws_cloudfront_distribution" "example" {
  origin {
    domain_name = aws_s3_bucket.b.bucket_regional_domain_name
    origin_id   = local.s3_origin_id

    s3_origin_config {
      origin_access_identity = "origin-access-identity/cloudfront/ABCDEFG1234567"
    }
  }

  enabled             = true
  comment             = "Some comment"
  default_root_object = "index.html"

  viewer_certificate {
    cloudfront_default_certificate = false
    acm_certificate_arn            = var.acm_certificate_arn
    ssl_support_method             = "sni-only"
    minimum_protocol_version       = "TLSv1_2016"
  }
}

変更後

hcl
resource "aws_cloudfront_distribution" "example" {
  origin {
    domain_name = aws_s3_bucket.b.bucket_regional_domain_name
    origin_id   = local.s3_origin_id

    s3_origin_config {
      origin_access_identity = "origin-access-identity/cloudfront/ABCDEFG1234567"
    }
  }

  enabled             = true
  comment             = "Some comment"
  default_root_object = "index.html"

  viewer_certificate {
    cloudfront_default_certificate = false
    acm_certificate_arn            = var.acm_certificate_arn
    ssl_support_method             = "sni-only"
    minimum_protocol_version       = "TLSv1.2_2021"
  }
}

参考資料