Benutzerdefinierte VCL für das Zulassen von Anforderungen

Sie können eine Fastly Edge ACL-Liste mit einem benutzerdefinierten VCL-Codefragment verwenden, um eingehende Anfragen zu filtern und den Zugriff nach IP-Adresse zuzulassen. Die ACL-Liste gibt die IP-Adressen an, die zugelassen werden sollen.

Erstellen Sie eine Zulassungsliste, um den Zugriff auf Ihre Staging-Umgebung zu beschränken, sodass nur Anforderungen von bestimmten IP-Adressen für interne Entwickler und genehmigte externe Dienste zulässig sind. Sie können auch eine Zulassungsliste erstellen, um den Zugriff auf die Admin in Staging- und Produktionsumgebungen zu sichern.

Im folgenden Beispiel wird gezeigt, wie ein benutzerdefiniertes VCL-Snippet mit einer Fastly Access Control List (ACL) verwendet wird, um den Zugriff auf den Admin für eine Adobe Commerce in der Cloud-Infrastruktur-Projektumgebung zu sichern. Wenn Sie das benutzerdefinierte VCL-Snippet zur Cloud-Umgebung hinzufügen, lässt Fastly nur Anfragen von IP-Adressen zu, die in der ACL enthalten sind.

TIP
Verwenden Sie für Staging- und Integrationsumgebungen, die nicht öffentlich zugänglich sein sollten, die in Cloud Console verfügbare Option HTTP-Zugriffskontrolle , um den Zugriff auf die gesamte Site nach IP-Adresse zu verwalten.

Voraussetzungen:

  • Ihre Umgebung muss für die Verwendung des Fastly CDN konfiguriert sein. Siehe Fastly-Dienste konfigurieren.

  • Stellen Sie sicher, dass Sie die neueste Version des Fastly CDN-Moduls für Magento 2 ausführen. Siehe Aktualisieren des Schnellmoduls.

  • Überprüfen Sie die Umgebungskonfiguration für den Fastly-Dienst. Siehe Schnelles Zwischenspeichern überprüfen.

  • Sie müssen über Administratorberechtigungen verfügen, um auf die Staging- und Produktionsumgebungen zugreifen zu können.

  • Liste der Client-IP-Adressen, die in die Zulassungsliste aufgenommen werden sollen

Erstellen einer Edge ACL für die Zulassung von Client-IP-Adressen

Edge ACLs erstellen IP-Adresslisten zum Verwalten des Zugriffs auf Ihre Site. In diesem Beispiel erstellen Sie eine Edge-ACL und fügen die Liste der Client-IP-Adressen hinzu, die für den Zugriff auf den Admin für Ihre Projektumgebung zugelassen sind.

  1. Melden Sie sich beibeim Administrator an.

  2. Klicken Sie auf Stores > Einstellungen > Konfiguration > Erweitert > System.

  3. Erweitern Sie Vollständiger Seiten-Cache > Fastly Configuration > Edge ACL.

  4. Erstellen Sie den ACL-Container:

    • Klicken Sie auf ACL hinzufügen.

    • Geben Sie auf der Seite ACL-Container einen ACL-Namenallowlist ein.

    • Wählen Sie Aktivieren nach der Änderung aus, um Ihre Änderungen für die Version der von Ihnen bearbeiteten Fastly-Service-Konfiguration bereitzustellen.

    • Klicken Sie auf Hochladen , um die ACL an Ihre Fastly-Service-Konfiguration anzuhängen.

  5. Fügen Sie die Liste der IP-Adressen hinzu, die auf den Admin zugreifen dürfen:

    • Klicken Sie auf das Symbol Einstellungen für die ACL allowlist .

    • Fügen Sie den IP-Wert für jede Client-IP-Adresse hinzu und speichern Sie ihn.

    • Klicken Sie auf Abbrechen , um zur Systemkonfigurationsseite zurückzukehren.

  6. Klicken Sie auf Konfiguration speichern.

  7. Aktualisieren Sie den Cache gemäß der Benachrichtigung oben auf der Seite.

Erstellen Sie ein benutzerdefiniertes VCL-Snippet, um den Administratorzugriff zu sichern.

Der folgende benutzerdefinierte VCL-Codeausschnitt (JSON-Format) zeigt die Logik zum Filtern von Anforderungen an den Admin und zum Gewähren des Zugriffs, wenn die Client-IP-Adresse mit einer Adresse in der ACL allowlist übereinstimmt.

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

Bevor Sie ein benutzerdefiniertes Snippet erstellen aus diesem Beispiel, überprüfen Sie die Werte, um festzustellen, ob Sie Änderungen vornehmen müssen. Geben Sie dann jeden Wert in die entsprechenden Felder ein, z. B. type in das Feld Typ und content in das Feld Inhalt .

  • name - Name für das VCL-Snippet. In diesem Beispiel allowlist.

  • priority - Bestimmt, wann das VCL-Snippet ausgeführt wird. Die Priorität lautet "5", um sofort auszuführen und zu überprüfen, ob Admin-Anfragen von einer zulässigen IP-Adresse stammen. Das Snippet wird ausgeführt, bevor einem der standardmäßigen Magento VCL-Snippets (magentomodule_*) eine Priorität von 50 zugewiesen wurde. Legen Sie die Priorität für jedes benutzerdefinierte Snippet höher oder niedriger als 50 fest, je nachdem, wann Ihr Snippet ausgeführt werden soll. Snippets mit niedrigeren Prioritätswerten werden zuerst ausgeführt.

  • type - Gibt einen Speicherort an, an dem das Snippet in den versionierten VCL-Code eingefügt werden soll. Dieser VCL ist ein recv -Snippet-Typ, der den Codeausschnitt zur UnterRoutine vcl_recv unterhalb des standardmäßigen Fastly VCL-Codes und über allen Objekten hinzufügt.

  • content - Das auszuführende Codefragment von VCL. In diesem Beispiel filtert der Code Anforderungen an den Admin und ermöglicht den Zugriff, wenn die Client-IP-Adresse mit einer Adresse in der ACL allowlist übereinstimmt. Wenn die Adresse nicht übereinstimmt, wird die Anfrage mit dem Fehler 403 Forbidden blockiert.

    Wenn die URL für Ihren Administrator geändert wurde, ersetzen Sie den Beispielwert /admin durch die URL für Ihre Umgebung. Beispiel: /company-admin.

Im Codebeispiel ist die Bedingung !req.http.Fastly-FF bei der Verwendung von Origin Shielding wichtig. Entfernen oder bearbeiten Sie diesen Code nicht.

Nachdem Sie den Code für Ihre Umgebung überprüft und aktualisiert haben, verwenden Sie eine der folgenden Methoden, um das benutzerdefinierte VCL-Snippet Ihrer Fastly Service-Konfiguration hinzuzufügen:

Hinzufügen des benutzerdefinierten VCL-Snippets

  1. Melden Sie sich beibeim Administrator an.

  2. Klicken Sie auf Stores > Einstellungen > Konfiguration > Erweitert > System.

  3. Erweitern Sie Vollständiger Seiten-Cache > Fastly Configuration > Custom VCL Snippets.

  4. Klicken Sie auf Benutzerdefiniertes Snippet erstellen.

  5. Fügen Sie die VCL-Snippet-Werte hinzu:

    • Nameallowlist

    • Typrecv

    • Priorität5

    • Fügen Sie den Codeausschnitt-Inhalt VCL hinzu:

      code language-conf
      if ((req.url ~ "^/admin") && !(client.ip ~ allowlist) && !req.http.Fastly-FF) { error 403 "Forbidden";}
      
  6. Klicken Sie auf Erstellen , um die VCL-Snippet-Datei mit dem Namensmuster type_priority_name.vcl zu generieren, z. B. recv_5_allowlist.vcl

  7. Klicken Sie nach dem Neuladen der Seite im Abschnitt Schnelle Konfiguration auf VCL auf Fastly hochladen , um die Datei zur Konfiguration des Fastly-Dienstes hinzuzufügen.

  8. Nach Abschluss des Uploads aktualisieren Sie den Cache gemäß der Benachrichtigung oben auf der Seite.

Validiert die aktualisierte Version des VCL-Codes während des Upload-Prozesses schnell. Wenn die Validierung fehlschlägt, bearbeiten Sie das benutzerdefinierte VCL-Snippet, um das Problem zu beheben. Laden Sie dann die VCL erneut hoch.

Ändern des benutzerdefinierten VCL-Snippets

  1. Melden Sie sich beibeim Administrator an.

  2. Klicken Sie auf Stores > Einstellungen > Konfiguration > Erweitert > System.

  3. Erweitern Sie Vollständiger Seiten-Cache > Fastly Configuration > Custom VCL Snippets.

    Verwalten benutzerdefinierter VCL-Snippets

  4. Klicken Sie in der Spalte Aktion auf das Einstellungssymbol neben dem zu bearbeitenden Snippet.

  5. Klicken Sie nach dem Neuladen der Seite im Abschnitt Schnelle Konfiguration auf VCL auf Fastly hochladen .

  6. Nach Abschluss des Uploads aktualisieren Sie den Cache gemäß der Benachrichtigung oben auf der Seite.

WARNING
Die UI-Option Benutzerdefinierte VCL-Snippets zeigt nur die Snippets an, die über den Adobe Commerce-Administrator hinzugefügt wurden. Wenn Sie Snippets mit der Fastly API hinzufügen, verwenden Sie die API, um sie zu verwalten.

Löschen des benutzerdefinierten VCL-Snippets

  1. Melden Sie sich beibeim Administrator an.

  2. Klicken Sie auf Stores > Einstellungen > Konfiguration > Erweitert > System.

  3. Erweitern Sie Vollständiger Seiten-Cache > Fastly Configuration > Custom VCL Snippets.

    Verwalten benutzerdefinierter VCL-Snippets

  4. Klicken Sie in der Spalte Aktion auf das Papierkorbsymbol neben dem zu löschenden Ausschnitt.

  5. Klicken Sie im nächsten modalen Fenster auf DELETE und aktivieren Sie eine neue Version.

WARNING
Die UI-Option Benutzerdefinierte VCL-Snippets zeigt nur die Snippets an, die über den Adobe Commerce-Administrator hinzugefügt wurden. Wenn Sie Snippets mit der Fastly API hinzufügen, verwenden Sie die API, um sie zu verwalten.
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26