【導入実績300社以上】AWS 構築・運用保守サービス

【導入実績300社以上】AWS 構築・運用保守サービス

【サーバー管理不要】WordPress専用クラウド『WebSpeed』

【サーバー管理不要】WordPress専用クラウド『WebSpeed』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【コミュニケーションアプリ開発】LINE アプリ開発サービス

【コミュニケーションアプリ開発】LINE アプリ開発サービス

【ECサイト構築】Shopify カスタムアプリ開発サービス

【ECサイト構築】Shopify カスタムアプリ開発サービス

【音声アプリ開発】Twilio アプリ開発サービス

【音声アプリ開発】Twilio アプリ開発サービス

【グローバル対応】北米リージョン・クラウド / サーバー サポート

【グローバル対応】北米リージョン・クラウド / サーバー サポート

【CPU】AMD EPYC 技術検証(PoC)サービス

【CPU】AMD EPYC 技術検証(PoC)サービス

【Webシステム / サービス開発】SAKARAKU Lab(セカラクラボ)

【Webシステム / サービス開発】SAKARAKU Lab(セカラクラボ)

【取材記事】サーバー系企業ビヨンドが サーバーサイドエンジニアを募集中

【取材記事】サーバー系企業ビヨンドが サーバーサイドエンジニアを募集中

【対談記事】「やっぱクラウド移設っていいですよね」マイネット × ビヨンド エンジニア対談

【対談記事】「やっぱクラウド移設っていいですよね」マイネット × ビヨンド エンジニア対談

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【15周年記念 特設サイト】ビヨンドは「2022.4.4」で15周年を迎えました!

【15周年記念 特設サイト】ビヨンドは「2022.4.4」で15周年を迎えました!

AWS Cloudfrontの地域制限機能を使って特定地域からのアクセスを遮断する

インフラエンジニアの寺岡です。

今回はAWSのCloudfrontを使って
特定地域からのアクセスを遮断する設定をやってみました。
設定自体は簡単ですが実用性ありだと思いましたのでまとめておきます。

Amazon CloudFront CDN (コンテンツ配信とストリーミング) | AWS

■Cloudfrontとは?

CloudfrontはAWSのCDN(Contents Delivery Network)サービスで
世界中に「エッジロケーション」と呼ばれる
コンテンツを配信するためのサーバが設置されています。
この「エッジロケーション」を使うことで
ユーザーがURLをリクエストしたときにIPアドレスから地域情報を割り出して
一番近い場所にあるサーバからレスポンスを返すという仕組みになっています。
この仕組みのおかげで、EC2やS3などのサービスの前にCloudfrontを設置するだけで
離れた場所にあるサーバにアクセスをしにいく必要がなくなるので
簡単にWebサイトを高速化することができます。

■地理制限機能ってなんだろう?

タイトルで出てきた「地理制限機能」を使ってみます。
Cloudfrontのデフォルトの設定だと
ユーザーがいる場所に関係なくリクエストされたコンテンツを配信します。
これはこれで便利でありがたいのですが

  • 特定地域から頻繁に攻撃を受けるのでアクセスを制限したい
  • 著作権上の理由からアクセスが許可されていない国がある

などの理由があったときに困ります。

こんなときにCloudfrontの機能で国レベルでアクセスを許可もしくは禁止をすることができます。
これが地域制限機能です。
実際に設定して使ってみましょう。

■実際に使ってみよう

あらかじめS3のコンテンツを配信するための
Cloudfrontのディストリビューションを作成しておきました。

AWS S3で静的サイトの配信をやってみた | 株式会社ビヨンド

S3に設置しているコンテンツを配信する設定にしている場合
Orginという項目がS3のエンドポイントになっています。
Domain Nameの項目を後からブラウザでアクセスするのでメモしておきます。
左側にチェックボックスがあるのでチェックして
Distribution Settingsをクリックします。

2016-09-10_03h06_58

ディストリビューションの設定画面になるので
Restrictionsタブを選択しましょう。
Geo Restrictionという項目がDisebledで無効になっているはずです。
これを有効にすることで地理制限機能が使えるようになります。
左のチェックボックスにチェックを入れてEditをクリックしましょう。

2016-09-10_01h42_05

Geo-Restrictionの設定画面になります。

2016-09-10_03h15_41

Enable Geo-Restrictionという項目がNoになっているはずなので
Yesを選択すると新たに項目が2つ増えるはずです。
Restriction Typeでは、制限を行うタイプを選択します。
それぞれについて軽くまとめると・・・

項目名 概要
Whitelist 「ホワイトリスト」はアクセスを許可したい国を設定し、リストに含まれているいずれかの国にユーザーがいる場合のみコンテンツへのアクセスを許可します。
Blacklist 「ブラックリスト」はアクセスを禁止したい国を設定し、リストに含まれているいずれかの国にユーザーがいる場合コンテンツへのアクセスを禁止します。

今回は、特定地域からのアクセスを禁止したいので「ブラックリスト」を使います。
Blacklistを選択してCountries項目で国を選択します。
アクセスが禁止されるかを確認するために日本を選択してみましょう。
左の国一覧からJP(日本)を選択してADD>>ボタンをクリックします。
すると右側に追加されるはずです。
この状態でYes, Editをクリックして編集を完了させます。

2016-09-10_03h38_59

Cloudfrontは設定が反映されるまでに少し時間がかかります。
ディストリビューションの一覧に戻って
statusがin progressからdeployedになるまで待ちましょう。

2016-09-10_03h36_56

ブラウザからcloudfrontのエンドポイントにアクセスしてみます。

2016-09-10_03h40_42

はい、見事に自分で作成したCloudfrontにブロックされました。

いかがでしたでしょうか。
これだけの手順でアクセスの制限が行えますし
使って損はない機能だと思いますので是非是非試してみてください。
ではまたの機会に、ありがとうございました。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
0
読み込み中...
0 票, 平均: 0.00 / 10
1,111
facebook twitter はてなブックマーク

この記事をかいた人

About the author

寺岡佑樹

2016年ビヨンド入社、現在6年目のインフラエンジニア
MSPの中の人として障害対応時のトラブルシューティングを行いながら
AWSなどのパブリッククラウドを用いたインフラの設計/構築も行っている。
最近はDockerやKubernetesなどのコンテナ基盤の構築や
運用自動化の一環としてTerraformやPackerなどのHashicorpツールを扱うことが多く
外部の勉強会やセミナーで登壇するEvangelistの役割も担っている。

・GitHub
https://github.com/nezumisannn

・登壇経歴
https://github.com/nezumisannn/my-profile

・発表資料(SpeakerDeck)
https://speakerdeck.com/nezumisannn

・所有資格
AWS Certified Solutions Architect - Associate
Google Cloud Professional Cloud Architect