pict3の日記

AWSネタを中心に

Amazon CloudFrontによるコンテンツ配信(originのs3にアクセス制限を付ける編)【cloudpack 大阪 BLOG】

f:id:pict3:20150828132346p:plain

 

前回はどこからでも参照可能なs3バケットをオリジンにしました。

そのため、s3から直接画像を取得することも可能でした。

今回は、CloudFrontからのみアクセスするように制限を掛けたいと思います。

イメージは以下です。

f:id:pict3:20150828173054p:plain

 

今回も、画像ファイルのみをCloudFrontより取得するようにします。

 

s3に画像をアップロード

バケットを作って、画像ファイルをアップロードします。

マネジメントコンソールにて、s3にバケットを作成して、画像をアップロードします。

今回は、バケットポリシーを設定しません。

なので、この時点では画像にアクセスできません。

 

CloudFrontの設定

ディストリビューションは前回使ったものを使います。

まずは、Originを作成します。

Origin Domain Nameは新たに作ったポリシーなしのバケットを選択します。

選択後、Restrict Bucket Accessの選択オプションボタンが現れます。

「Yes」を選びましょう。

未生成の場合は、Identifyを生成します。作成済みの場合は使い回しOKです。

Grant Read Permissions on Bucketは、「Yes, Update Bucket Policy」を選びます。

すると、自動的にs3のバケットに以下のようなポリシーが追加されます。

※すでに何らかのバケットポリシーを設定していた場合、追加されません。

{
"Version": "2008-10-17", "Id": "PolicyForCloudFrontPrivateContent", "Statement": [ { "Sid": "1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <Access ID>" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<backet名>/*" } ] }

これで、s3にCloudFrontからアクセス可能なポリシーが追加されました。

 

次に、追加したOriginに対応するBehaviorを追加します。

Patternは取り敢えず、「*」としておきます。

 

以上で、s3への直アクセスを禁止した、s3オブジェクトのCloudFront配信が可能となりました。

 

cloudpack.jp