AWS CloudFront
S3 + CloudFrontで、S3へのアクセスを遮断する
- S3バケットを作成する
- 「ブロックパブリックアクセス (バケット設定)」の「パブリックアクセスをすべて ブロック」をオフにする。
- 「バケットポリシー」に下記を設定する。
- S3のオブジェクトにアクセスできるようにする設定。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<バケット名>/*" } ] }
- S3のオブジェクトにアクセスできるようにする設定。
- CloudFrontで「Create Distribution」を押下。
- 下記設定。
- Origin Domain Name:対象のS3バケット名
- 必要に応じて、HTTPプロトコル、許可するメソッドを指定する。
- Statusが「Deployed」になるまで待つ。
- IDクリック → Origins and Origin Groups タブ → 作成済みの「Origins」を選択して「Edit」押下。
- 下記設定。
- Restrict Bucket Access:Yes
- Origin Access Identity:Create a New Identity
- どちらでもいいが…
- Grant Read Permissions on Bucket:Yes, Update Bucket Policy
- S3のバケットポリシーから「”Sid”: “PublicReadGetObject”」を削除する。
- CloudFrontのStatusが「Deployed」になるまで待つ。