Benutzerdefinierte VCL für das Zulassen von Anforderungen

Sie können eine Fastly Edge ACL-Liste mit einem benutzerdefinierten VCL-Codeausschnitt verwenden, um eingehende Anforderungen 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.

Das folgende Beispiel zeigt, wie ein benutzerdefiniertes VCL-Snippet mit einer Fastly Access Control List (ACL) , 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 HTTP-Zugriffssteuerungsoption, die im Cloud Console 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 Services konfigurieren.

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

  • Ü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 von Edge ACL für das Zulassen von Client-IP-Adressen

Edge-ACLs erstellen IP-Adresslisten für die Verwaltung 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. Anmelden an den Administrator.

  2. Klicks Stores > Einstellungen > Konfiguration > Erweitert > System.

  3. Erweitern Vollständiger Seiten-Cache > Schnelle Konfiguration > Edge ACL.

  4. Erstellen Sie den ACL-Container:

    • Klicks ACL hinzufügen.

    • Im ACL-Container Seite, geben Sie eine ACL-Nameallowlist.

    • Auswählen Aktivieren nach der Änderung , um Ihre Änderungen an der Version der von Ihnen bearbeiteten Fastly-Dienstkonfiguration bereitzustellen.

    • Klicks 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 allowlist ACL.

    • Hinzufügen und Speichern der IP-Wert für jede Client-IP-Adresse.

    • Klicks Abbrechen , um zur Systemkonfigurationsseite zurückzukehren.

  6. Klicks 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-Snippet-Code (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 im 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\"; }"
}

Vorher Erstellen eines benutzerdefinierten Snippets Überprüfen Sie anhand dieses Beispiels die Werte, um festzustellen, ob Sie Änderungen vornehmen müssen. Geben Sie dann jeden Wert in die entsprechenden Felder ein, beispielsweise type in das Feld Typ 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 5 , um sofort auszuführen und zu überprüfen, ob Admin-Anfragen von einer zulässigen IP-Adresse stammen. Das Snippet wird vor einem der standardmäßigen Magento VCL-Snippets (magentomodule_*) eine Priorität von 50 zugewiesen. 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. Diese VCL ist ein recv Snippet-Typ , der den Snippet-Code zum vcl_recv Subroutine unterhalb des standardmäßigen Fastly VCL-Codes und über allen Objekten.

  • 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 allowlist ACL. Wenn die Adresse nicht übereinstimmt, wird die Anfrage mit einer 403 Forbidden Fehler.

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

Im Codebeispiel wird die Bedingung !req.http.Fastly-FF ist bei Verwendung von Origin Shielding. 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. Anmelden an den Administrator.

  2. Klicks Stores > Einstellungen > Konfiguration > Erweitert > System.

  3. Erweitern Vollständiger Seiten-Cache > Schnelle Konfiguration > Benutzerdefinierte VCL-Snippets.

  4. Klicks Benutzerdefiniertes Snippet erstellen.

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

    • Nameallowlist

    • Typrecv

    • Priorität5

    • Fügen Sie die VCL Snippet-Inhalt:

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

  7. Nachdem die Seite neu geladen wurde, klicken Sie auf VCL schnell hochladen im Schnelle Konfiguration -Abschnitt, 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. Anmelden an den Administrator.

  2. Klicks Stores > Einstellungen > Konfiguration > Erweitert > System.

  3. Erweitern Vollständiger Seiten-Cache > Schnelle Konfiguration > Benutzerdefinierte VCL-Snippets.

    Verwalten benutzerdefinierter VCL-Snippets

  4. Im Aktion klicken Sie auf das Einstellungssymbol neben dem zu bearbeitenden Snippet.

  5. Nachdem die Seite neu geladen wurde, klicken Sie auf VCL schnell hochladen im Schnelle Konfiguration Abschnitt.

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

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

Löschen des benutzerdefinierten VCL-Snippets

  1. Anmelden an den Administrator.

  2. Klicks Stores > Einstellungen > Konfiguration > Erweitert > System.

  3. Erweitern Vollständiger Seiten-Cache > Schnelle Konfiguration > Benutzerdefinierte VCL-Snippets.

    Verwalten benutzerdefinierter VCL-Snippets

  4. Im Aktion auf das Papierkorbsymbol neben dem zu löschenden Snippet klicken.

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

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