Amazon CloudFrontのCloudFront Functionsを使用することで、
特定のパスへのアクセスを特定のIPアドレスからのみに制限します。
手順
以下のような関数を作成し、関数の発行まで行う。
function handler(event) {
var request = event.request;
var uri = request.uri;
var clientIP = event.viewer.ip;
var TARGET_PATHS = [
'/wp-login.php',
'/wp-admin'
];
var IP_WHITELIST = [
'xxx.xxx.xxx.xxx',
];
if (TARGET_PATHS.some(path => uri.includes(path)) && !IP_WHITELIST.includes(clientIP)) {
return {
statusCode: 403,
statusDescription: 'Forbidden'
};
}
return request;
}
対象ディストリビューションのビヘイビアにおいて、
ビューワーリクエストに上記の関数を関連付ける。
参考
- CloudFront FunctionsでIP制限を試してみた | DevelopersIO
https://dev.classmethod.jp/articles/cloudfront-functions-ip-control/ - ビューワーを新しい URL にリダイレクトさせる – Amazon CloudFront
https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/example-function-redirect-url.html