概要
初期の構築で、 S3 に静的コンテンツを配置して、表に CloudFront を構築した際、403 forbidden でアクセスできない場合がある。
また、curlで叩いた際にSSLのエラーが表示される。
curl -I https://test.inamuu.com
curl: (35) error:14004410:SSL routines:CONNECT_CR_SRVR_HELLO:sslv3 alert handshake failure
この場合、 CloudFront の Origin は対象の S3バケット を指定しているが、 CNAMEs が空になっていることが原因。
アクセスするドメイン名を設定しないと駄目。
例えば test.inamuu.com だったら CNAMEsに test.inamuu.com を指定する必要がある。
Terraformでは下記のように記述する。
resource "aws_cloudfront_distribution" "test_inamuu_s3_distribution" {
...
aliases = ["test.inamuu.com", "test2.inamuu.com"]
}
S3の指定だけで良いと思っていて、ちょいハマってしまったので記録しておく。
<p style='padding: 5px;'>