素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

IT

【以外と簡単】S3バケットにIP制限をかける方法

投稿日: 2018年3月19日
最終更新日:

スポンサーリンク

336×280




S3コンテンツの閲覧制限

S3にもIP制限をかけれる?

以前、S3バケット静的コンテンツをアップロードしてWebサイトとして公開する方法を紹介しました。

基本的にはS3でWebサイトホスティングをするには全公開であることが多いと思いますが、場合によっては閲覧制限をつけてコンテンツを公開したい、というケースも出てくると思います。

EC2にはセキュリティグループという概念があるので、簡単にIP制限をかけることが可能ですが、S3バケットにはセキュリティグループをかけることが出来ません。

ポリシー定義で可能

そんな時は、S3バケットのポリシーを修正するだけでIP制限をかけることが可能になります。

今回は特定のIPのみにS3バケットを公開するようなポリシーの設定の仕方について紹介致します。

手順

前提

Point

  • S3バケットにて全公開のWebサイトホスティングを作成済み

ポリシー定義の修正

AWSにログインしたら、サービスメニューをクリックし、ストレージカテゴリS3を選択します。

次に、IP制限をかけたいバケットを選択し、アクセス制限メニューをクリックします。

アクセス権限タブを選択し、バケットポリシーメニューをクリックします。
すると、現在のポリシー定義のJsonが表示されるので、以下のように要点を修正した上で保存ボタンをクリックします。

ポイントとしては、S3でのWebサイトホスティングをすると、基本的には全公開になっているので、Denyを指定することで制限をするような方法を取っています。
仮に、EffectをAllowにしてConditionをIpAddressにしても、それ以外のIPを制限するという動きにはならないので気をつけましょう。

オブジェクトの公開

このままではホワイトリストのIPからアクセスをしても、Access Deniedが出てしまうと思います。

これは、アップロードしたコンテンツを公開していないのが原因なので、公開設定をしないといけません。

バケットメニューに入ったら、すべてのオブジェクトを選択して、さらにメニューから公開を選択します。

公開するオブジェクトの情報が表示されるので、問題が無ければ公開するボタンをクリックします。

確認

では、実際に試してみましょう。
まずはホワイトリストに登録したIPでアクセスしてみます。

正常に表示されています。

次に、ホワイトリストに含まれていないIPからアクセスしてみます。

しっかり閲覧制限がかかっていますね。

オススメの参考書

終わりに

バケットポリシーを調整することで、EC2セキュリティグループのような事を実現する事が可能です。

これで、一部の範囲でしか公開したくないドキュメントやWebサイトをS3で管理することが可能になるので、皆さんも是非お試しください♩

336×280




336×280




CATEGORIES & TAGS

IT, , , , , , , , ,

blogenist

Author: blogenist