学んだこと
よくやる設定
- S3 への直接アクセスを防ぎたい場合には Origin Access Identity を利用する
- コンテンツへの IP 制限を行いたい場合には WAF を利用すると良い
- 必要なヘッダは転送する
/
を 任意のコンテンツに転送したい場合(例:/
にアクセスしたらindex.html
にアクセスさせる)には「デフォルトルートオブジェクト」を指定する- CloudFront 自体の IP アドレス範囲は https://ip-ranges.amazonaws.com/ip-ranges.json から取得出来る
等。
注意点
- 「デフォルトルートオブジェクト」が適用されるのはトップルートのみ
- サブディレクトリにも同様の設定(デフォルトルートオブジェクト)を行いたい場合には Web Site Hosting を有効にするしかない(今のところ)
- Web Site Hosting を有効にした S3 バケットをオリジンにする場合にはオリジンの設定には Web Site Hosting の URL を指定すること
- Web Site Hosting を有効にした S3 バケットには Origin Access Identity は適用されない
- 上記の場合、WAF で IP 制限かけていても、バケットポリシーで IP 制限をかけていない場合には S3 バケットのオブジェクトにはどっからでもアクセスが可能となる
参考文献
- http://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/LocationsOfEdgeServers.html
- https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/IndexDocumentSupport.html
まだまだ、勉強が必要そうです。