Help us understand the problem. What is going on with this article?

CloudFront 経由で S3 のファイルにアクセスする

もくじ

  1. CloudFront 経由で S3 のファイルにアクセスできるようにする
  2. 独自ドメインで CloudFront にアクセスできるようにする
  3. CloudFront 経由の時だけ S3 のファイルにアクセスできるようにする


準備

cloudfront_s3_001.png

  • S3に画像ファイルをアップロードしておく
  • 画像ファイルに公開する設定をしておく
  • ブラウザから画像ファイルのリンクにアクセスして画像が表示されることを確認しておく

cf_s3_000.png

種別 URL アクセス可否
S3公開リンク http://s3-<リージョン>.amazonaws.com/<バケット名>/<ファイル名>
CloudFrontドメイン http://<ドメイン名>.cloudfront.net/<ファイル名> 未設定
独自ドメイン http://<ドメイン名>/<ファイル名> 未設定




1. CloudFront 経由で S3 のファイルにアクセスできるようにする

cloudfront_s3_002.png

設定:CloudFront

CloudFrontのコンソールでDistributionを作成する

cf_s3_01.png
cf_s3_02.png

Origin Domain NameにS3のバケットを指定する

補足:
テキストボックスをクリックすると選択候補のリストが表示される

cf_s3_03.png

cf_s3_04.png

StatusDeployedになるまで待つ

cf_s3_05.png

アクセス確認

ブラウザからCloudFrontドメインのURLにアクセスして、ファイルにアクセスできるようになったことを確認する

種別 URL アクセス可否
S3公開リンク http://s3-<リージョン>.amazonaws.com/<バケット名>/<ファイル名>
CloudFrontドメイン http://<ドメイン名>.cloudfront.net/<ファイル名>
独自ドメイン http://<ドメイン名>/<ファイル名> 未設定




2. 独自ドメインで Cloud Front にアクセスできるようにする

cloudfront_s3_003.png

設定:CloudFront

CloudFrontのコンソールでDistribution設定を変更する

cf_s3_11.png
cf_s3_12.png

Altername Domain Nameにドメイン名を指定する

補足:
今回はファイルに「http://image.<独自ドメイン>/<ファイル名>」でアクセスできるように、
Altername Domain Nameにはimage.<独自ドメイン>を指定した

cf_s3_13.png
cf_s3_14.png
cf_s3_15.png

設定:Route53

Route53のコンソールでimage.<独自ドメイン>のレコードを作成する

Alias TargetにはCloudFrontのDistributionを指定する

補足:
テキストボックスをクリックすると選択候補のリストが表示される

cf_s3_16.png
cf_s3_17.png

アクセス確認

ブラウザから独自ドメインのURLにアクセスして、ファイルにアクセスできるようになったことを確認する

種別 URL アクセス可否
S3公開リンク http://s3-<リージョン>.amazonaws.com/<バケット名>/<ファイル名>
CloudFrontドメイン http://<ドメイン名>.cloudfront.net/<ファイル名>
独自ドメイン http://<ドメイン名>/<ファイル名>


3. Cloud Front 経由の時だけ S3 のファイルにアクセスできるようにする

cloudfront_s3_004.png

設定:CloudFront

CloudFrontのコンソールでRestrict Bucket Accessを設定する

cf_s3_21.png
cf_s3_22.png
cf_s3_23.png
cf_s3_24.png
cf_s3_25.png

確認:S3

S3のコンソールでバケットポリシーが設定されてることを確認する

cf_s3_26.png

設定:S3

S3のコンソールでパブリックアクセスを禁止しておく

cf_s3_27.png

補足:
CloudFrontでRestrict Bucket Accessを設定しても、S3でパブリックアクセスが許可されていると公開リンクからファイルへアクセスすることが可能なため、上記の操作を行い準備で有効化した「公開する」設定を無効化する必要がある

アクセス確認

ブラウザからS3公開リンクにアクセスして、ファイルにアクセスできなくなったことを確認する

種別 URL アクセス可否
S3公開リンク http://s3-<リージョン>.amazonaws.com/<バケット名>/<ファイル名> ×
CloudFrontドメイン http://<ドメイン名>.cloudfront.net/<ファイル名>
独自ドメイン http://<ドメイン名>/<ファイル名>
NaokiIshimura
Ruby on Rails Engineer.
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした