リクエストを許可するカスタム VCL

カスタム VCL コードスニペットを含んだ Fastly Edge ACL リストを使用して、受信リクエストをフィルタリングし、IP アドレスによるアクセスを許可できます。 ACL リストは、許可する IP アドレスを指定します。

許可リストを作成して、ステージング環境へのアクセスを制限し、内部開発者および承認済みの外部サービス用に指定された IP アドレスからのリクエストのみが許可されるようにします。 また、ステージング環境と実稼動環境で管理者へのアクセスを保護するための許可リストを作成することもできます。

次の例は、カスタム VCL スニペットを Fastly アクセス制御リスト(ACL) Adobe Commerce on cloud infrastructure プロジェクト環境の管理者へのアクセスを保護します。 カスタム VCL スニペットをクラウド環境に追加する場合、Fastly では、ACL に含まれる IP アドレスからのリクエストのみを許可します。

TIP
公開アクセスを禁止するステージング環境および統合環境の場合は、で使用可能な HTTP アクセス制御オプションを使用します Cloud Console サイト全体へのアクセスを IP アドレスで管理します。

前提条件:

  • Fastly CDN を使用するように環境を設定する必要があります。 参照: Fastly サービスの設定.

  • Magento 2 の Fastly CDN モジュールが最新バージョンであることを確認してください。 参照: Fastly モジュールのアップグレード.

  • Fastly サービスの環境設定を確認します。 参照: Fastly キャッシュを確認する.

  • ステージング環境と実稼動環境にアクセスするには、管理者資格情報が必要です。

  • 許可リストに含めるクライアント IP アドレスのリスト

クライアント IP アドレスを許可するエッジ ACL を作成する

エッジ ACL は、サイトへのアクセスを管理するための IP アドレスリストを作成します。 この例では、Edge ACL を作成して、プロジェクト環境の管理者にアクセスできるクライアント IP アドレスのリストを追加します。

  1. ログイン を管理者に送信します。

  2. クリック ストア > 設定 > 設定 > 詳細 > システム.

  3. を展開 フルページキャッシュ > Fastly 設定 > エッジ ACL.

  4. ACL コンテナを作成します。

    • クリック ACL を追加.

    • ACL コンテナ ページ、を入力 ACL 名allowlist.

    • を選択 変更後にアクティベート 編集中の Fastly サービス設定のバージョンに変更をデプロイする場合。

    • クリック Upload をクリックして、ACL を Fastly サービス設定に添付します。

  5. 管理者にアクセスできる IP アドレスのリストを追加します。

    • の「設定」アイコンをクリックします allowlist ACL。

    • を追加して保存します。 IP 値 (クライアント IP アドレスごとに)。

    • クリック キャンセル 「システム設定」ページに戻ります。

  6. クリック 設定を保存.

  7. ページ上部の通知に従ってキャッシュを更新します。

管理アクセスを保護するためのカスタム VCL スニペットの作成

次のカスタム VCL スニペットコード(JSON 形式)は、管理者へのリクエストをフィルタリングし、クライアントの IP アドレスがのアドレスと一致した場合にアクセスを許可するロジックを示しています。 allowlist ACL。

{
  "name": "allowlist",
  "dynamic": "0",
  "type": "recv",
  "priority": "5",
  "content": "if ((req.url ~ \"^/admin\") && !(client.ip ~ allowlist) && !req.http.Fastly-FF) { error 403 \"Forbidden\"; }"
}

次の前 カスタムスニペットの作成 この例では、値を確認して、変更が必要かどうかを判断します。 次に、各値をそれぞれのフィールド(例:)に入力します type 「タイプ」フィールドに移動します。 content 「コンテンツ」フィールドに移動します。

  • name — VCL スニペットの名前。 この例では、 allowlist.

  • priority - VCL スニペットを実行するタイミングを指定します。 優先度は次のとおりです 5 を使用して、管理者リクエストが許可された IP アドレスからのリクエストであるかどうかを直ちに実行および確認します。 このスニペットは、デフォルトのMagentoVCL スニペット(magentomodule_*)に優先度 50 を割り当てました。 各カスタムスニペットの優先度を、スニペットを実行するタイミングに応じて 50 より高くまたは低く設定します。 優先度の低いスニペットが最初に実行されます。

  • type - バージョン管理された VCL コードにスニペットを挿入する場所を指定します。 この VCL は recv にスニペットコードを追加するスニペットタイプ vcl_recv デフォルトの Fastly VCL コードの下およびすべてのオブジェクトの上のサブルーチン

  • content – 実行する VCL コードのスニペット。 この例では、コードは管理者へのリクエストをフィルタリングし、クライアント IP アドレスがのアドレスと一致する場合はアクセスを許可します allowlist ACL。 アドレスが一致しない場合、リクエストは次のコードでブロックされます。 403 Forbidden エラー。

    管理者の URL が変更された場合は、サンプル値を /admin と環境の URL。 例: /company-admin.

このコードサンプルでは、条件は !req.http.Fastly-FF を使用する場合に重要 原点シールド. このコードを削除または編集しないでください。

環境のコードを確認して更新した後、次のいずれかの方法を使用して、カスタム VCL スニペットを Fastly サービス設定に追加します。

カスタム VCL スニペットの追加

  1. ログイン を管理者に送信します。

  2. クリック ストア > 設定 > 設定 > 詳細 > システム.

  3. を展開 フルページキャッシュ > Fastly 設定 > カスタム VCL スニペット.

  4. クリック カスタムスニペットの作成.

  5. VCL スニペットの値を追加します。

    • 名前allowlist

    • タイプrecv

    • 優先度5

    • を追加 VCL スニペットコンテンツ:

      code language-conf
      if ((req.url ~ "^/admin") && !(client.ip ~ allowlist) && !req.http.Fastly-FF) { error 403 "Forbidden";}
      
  6. クリック 作成 名前が pattern の VCL スニペット ファイルを生成するには type_priority_name.vcl、例: recv_5_allowlist.vcl

  7. ページの再読み込み後、 Fastly への VCL のアップロード が含まれる Fastly 設定 Fastly サービス設定にファイルを追加するためのセクションです。

  8. アップロードが完了したら、ページ上部の通知に従ってキャッシュを更新します。

Fastly は、アップロードプロセス中に VCL コードの更新バージョンを検証します。 検証に失敗した場合は、カスタム VCL スニペットを編集して問題を修正します。 次に、VCL を再度アップロードします。

カスタム VCL スニペットの変更

  1. ログイン を管理者に送信します。

  2. クリック ストア > 設定 > 設定 > 詳細 > システム.

  3. を展開 フルページキャッシュ > Fastly 設定 > カスタム VCL スニペット.

    カスタム VCL スニペットの管理

  4. が含まれる アクション 列で、編集するスニペットの横にある「設定」アイコンをクリックします。

  5. ページの再読み込み後、 Fastly への VCL のアップロード が含まれる Fastly 設定 セクション。

  6. アップロードが完了したら、ページ上部の通知に従ってキャッシュを更新します。

WARNING
この カスタム VCL スニペット UI オプションには、Adobe Commerce管理者を通じて追加されたスニペットのみが表示されます。 Fastly API を使用してスニペットを追加する場合は、API を使用して以下を行います それらを管理.

カスタム VCL スニペットの削除

  1. ログイン を管理者に送信します。

  2. クリック ストア > 設定 > 設定 > 詳細 > システム.

  3. を展開 フルページキャッシュ > Fastly 設定 > カスタム VCL スニペット.

    カスタム VCL スニペットの管理

  4. が含まれる アクション 列で、削除するスニペットの横にあるごみ箱アイコンをクリックします。

  5. 次のモーダルウィンドウで、 DELETE 新しいバージョンをアクティブ化します。

WARNING
この カスタム VCL スニペット UI オプションには、Adobe Commerce管理者を通じて追加されたスニペットのみが表示されます。 Fastly API を使用してスニペットを追加する場合は、API を使用して以下を行います それらを管理.
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26