AWS CloudFront Functionsを使って、IP制限を実装する方法を記載します。
これにより、特定のIPアドレスからのアクセスのみを許可し、それ以外のアクセスをブロックすることができます。
CloudFront Fucntionの作成
- AWS Management Consoleにログインし、CloudFrontサービスにアクセスします。
- 左側のナビゲーションパネルで「Functions」を選択し、「Create function」をクリックします。
- 関数名を入力し、次のようなJavaScriptコードを入力してください。ALLOWED_IPS変数に許可するIPアドレスを追加してください。
function handler(event) {
var request = event.request;
var sourceIP = request.headers['x-forwarded-for'].value.split(',')[0];
const ALLOWED_IPS = ['xxx.xxx.xxx.xxx', 'yyy.yyy.yyy.yyy'];
if (ALLOWED_IPS.includes(sourceIP)) {
return request;
} else {
return {
statusCode: 403,
statusDescription: 'Forbidden',
};
}
}
- 「Create」ボタンをクリックして関数を作成します。
- 関数が作成されたら、「Publish」をクリックして関数を公開します。
CloudFrontディストリビューションに関数を関連付ける
- CloudFrontディストリビューションの設定を開き、「Behavior」タブ(「Distribution Settings」の下にあります)で適切なキャッシュビヘイビアを選択し、「Edit」をクリックします。
- 「Function associations」セクションで、「Add function」ボタンをクリックし、イベントタイプとしてviewer-requestを選択し、作成したCloudFront Functionを選択します。
- 「Save changes」をクリックして、ディストリビューションの設定を更新します。
参考記事