• 文字サイズ変更
  • S
  • M
  • L
  • No : 425
  • 公開日時 : 2024/08/29 12:35
  • 印刷

アクセス制御はできますか?

カテゴリー : 

回答

VCLスニペットで可能です。
 
以下にVCLスニペットのサンプルを記載します。
実際の動作につきましては、お客様の責任にて十分に検証を行っていただいた上で、実施いただく必要がございます。
 
  1. VCLスニペット1つ目(許可するIPアドレスの設定)
    配置場所:最上部
    acl adminip {
     # 許可するIP一覧
     "localhost";
     "210.xxx.yyy.zzz";
     "192.168.10.0"/24;
    }

     
  2. VCLスニペット2つ目(IPアドレス制御例)
    配置場所:指定(recv)
    # ヘッダーの偽造がされないようにクライアントIPで上書き
    if (fastly.ff.visits_this_service == 0 && req.restarts == 0) {
      set req.http.Fastly-Client-IP = client.ip;
    }
     
    # 特定のIPアドレスのみ動作して、それ以外は何もさせたくない
    if (!(req.http.Fastly-Client-IP ~ adminip)) {
      error 403 "Access Denied";
    }
    # ヘッダーの偽造がされないようにクライアントIPで上書き
    if (fastly.ff.visits_this_service == 0 && req.restarts == 0) {
      set req.http.Fastly-Client-IP = client.ip;
    }
     
    # 特定のURLが含まれる場合、指定IPアドレスのみ許可する
    if (req.url ~ "/wp-admin/" && !(req.http.Fastly-Client-IP ~ adminip)) {
      # 上記はURLに/wp-admin/が入っているとき、特定IPのみ許可
      error 403 "Access Denied";
    }
    # ヘッダーの偽造がされないようにクライアントIPで上書き
    if (fastly.ff.visits_this_service == 0 && req.restarts == 0) {
      set req.http.Fastly-Client-IP = client.ip;
    }

    # 特定IPアドレスからのみPURGEを許可
    if (req.request == "FASTLYPURGE" && !(req.http.Fastly-Client-IP ~ adminip)) {
      error 403 "Access Denied";
    }

注意事項)
・上記例の場合、1と2の両方の設定が必要です。
・2は、お客様のご運用によって「すべて」もしくは「必要な記述のみ」を設定してください。(複数を設定される場合、重複している内容は1回のみの記載で問題ございません。)

アンケート:ご意見をお聞かせください

ご意見・ご感想をお寄せください お問い合わせを入力されましてもご返信はいたしかねます