CloudFront、ACM(SSL)、S3でSSLによる静的ウェブホスティングでブラウザにうまく表示されない場合の気をつけるべきポイントです。
CloudFrontとACMでSSLによる静的ウェブホスティングを行うS3バケットは、SSE-S3でデフォルトの暗号化とサーバー側の暗号化をすると静的ウェブホスティングのコンテンツをブラウザから見られます。AWS KMSによる暗号化ではブラウザで見られません。
S3バケットのパブリックブロックアクセスは全解除しておいてください。
CloudFrontで使うACMのSSL証明証は、必ずACMのバージニア北部で発行してください。
S3のアクセス管理は暗号化を含めると、以下の全てで正しい設定が必要です。
CloudFrontでACMを使ってSSL化したら、S3バケットでも「デフォルトの暗号化」を有効にする必要があります。S3バケット作成の後、途中で「デフォルトの暗号化」や「サーバー側の暗号化」を有効にすると、中身の全オブジェクトは同時に暗号化にならないので、次のようなコマンド操作でバケット内の全オブジェクトの暗号化も行う必要があります。
SSE-S3 の場合(CloudFront ACM S3でSSL静的ウェブサイトホスティングで使う)
aws s3 cp s3://バケット名/ s3://バケット名/ --sse AES256 --recursive
AWS KMSの場合(静的ウェブホスティングではない、パブリックアクセスしないログのS3バケットなど)
aws s3 cp s3://バケット名/ s3://バケット名/ --sse aws:kms --recursive