最初に
S3にhtmlなどの資産をおき、CloudFrontで公開するという方法は一般的によく行われる方法。検索するとS3を公開する設定もよく見かけるが、S3を一般に公開せずに行う方がセキュリティ的に安心なので、Origin Access Identity(OAI)用いて設定する方法を自分の備忘録として、紹介する。 OAIについては、以下も参照ください。 docs.aws.amazon.com
AWSコンソール上での作業
CloudFrontのDistributionsの作成 Create Distribution→Get Startedの順にクリック
Origin Domain Nameを選択 S3のバケットが一覧となり、選択できる。 右下のCreate Distributionをクリック
Origin Access Identity(OAI)をCloudFrontのDistirbutionに紐づける Origin Domain Name and Pathの左側のチェックボックを選択し、Editをクリック
- Origin Access Identity(OAI)を新規に作る場合
Create a new Identity
をクリックし、Commentはデフォルトのものでも構わないし、自分がわかりやすい名前を設定しても良い。 - すでにあるOrigin Access Identity(OAI)に紐づける場合
Use an Existing Identity
をクリックし、Your Identitiesを選択。
- Origin Access Identity(OAI)を新規に作る場合
ブロックパブリックアクセスとバケットポリシーの修正
- S3のブロックパブリックアクセスとバケットポリシーを修正する。バケットポリシーは、以下のように設定する。Origin Access Identityは、Origin Access Identity で確認する。
{ "Version": "2012-10-17", "Id": "Policy999999999999", "Statement": [ { "xxx": "xxxx" }, { "Sid": "2", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity ABCDEFG1234567" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::your-bucket-name/*" } ] }