LoginSignup
0
0

More than 3 years have passed since last update.

AWSで配信をしてみる準備 (Cloud Frontを介してS3にアクセス)

Posted at

自分用メモ。

以前書いたShaka Packagerを使った配信環境を構築してみるにあたって、CDNを介した環境を作ってみたいと思った。
Shaka Packagerを使った配信環境はEC2で構築してみようと思ったので、オリジンはS3で、EdgeとしてCloud Frontを使ってみることに。

Cloud Frontを介したほうが安いのか、S3のみを使ったほうが安いかは調べてない。

やりたいこと

S3へのコンテンツへのアクセスをCloud Frontからのアクセスに限定して、S3のオブジェクトへの直接のアクセス (XXXX.s3-ap-northeast-1.amazonaws.com のURLでのアクセス) をさせないこともついでにやろうと思った、なぜか。

色々ドキュメントを探したところ、端的に書いていたのはこのページだった。
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html

以下のページから辿った。
https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html

バケットの設定

バケットの「アクセス権限」 > 「ブロックパブリックアクセス」について。
今回、パブリックアクセスは許可しないので、全部ブロック(「パブリックアクセスを全てブロック」が「オン」の状態)で良い。

Cloud Frontの設定

  1. 先にDistributionを作成していたので、作成済みのDistributionを選択し「Origins and Origin Groups」タブを選択。
  2. 「Origins」のセクションで「Create Origin」ボタンを押下
  3. 表示された画面で、「Origin Domain Name」にて作成済みのバケットのドメインを選択する。自動でOrigin IDが入るので、それは編集しない。
  4. 「Restrict Bucket Access」でYesを選択する。
  5. 後の項目はヘルプでも読みながら選択・入力すれば迷うことはない。

ちなみに、 「Grant Read Permissions on Bucket」で「Yes, Update Bucket Policy」を選んでおくと、バケットの「バケットポリシー」にOAIを使ったポリシーが勝手に更新されてくれた。

動作確認

バケットに適当なファイルを置いて、以下を確認した。

  • S3のバケットのURLでファイルにアクセス → アクセスできないこと
  • Cloud FrontのURLでファイルにアクセス → アクセスできること
  • S3のバケットのURLでルートフォルダにアクセス → アクセスできないこと
  • Cloud FrontのURLでルートフォルダにアクセス → アクセスできないこと

感想
EC2は以前から開発環境として使っていたけど、初めてそれ以外を使ってみた。
AWSを知っている人はすごいんだなと思った。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0