【AWS】特定のパスへのアクセスを特定のIPアドレスからのみに制限する

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;
}

対象ディストリビューションのビヘイビアにおいて、
ビューワーリクエストに上記の関数を関連付ける。

参考

タイトルとURLをコピーしました