Benutzerdefinierte VCL zum Zulassen von Anfragen
Sie können eine Fastly Edge ACL-Liste mit einem benutzerdefinierten VCL-Code-Fragment verwenden, um eingehende Anfragen zu filtern und den Zugriff nach IP-Adresse zuzulassen. Die ACL-Liste gibt die zuzulassen IP-Adressen an.
Erstellen Sie eine Zulassungsliste, um den Zugriff auf Ihre Staging-Umgebung zu beschränken, sodass nur Anfragen von angegebenen IP-Adressen für interne Entwickler und genehmigte externe Services zulässig sind. Sie können auch eine Zulassungsliste erstellen, um den Zugriff auf den Administrator in Staging- und Produktionsumgebungen zu sichern.
Das folgende Beispiel zeigt, wie Sie ein benutzerdefiniertes VCL-Snippet mit einer Fastly Access Control List (ACL) verwenden, um den Zugriff auf den Admin für eine Adobe Commerce in einer Cloud-Infrastrukturprojektumgebung 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.
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 Upgrade des Fastly-.
-
Überprüfen Sie die Umgebungskonfiguration für den Fastly-Service. Siehe Prüfen von Fastly-Caching.
-
Sie müssen über Administratorberechtigungen verfügen, um auf die Staging- und Produktionsumgebungen zugreifen zu können.
-
Liste der Client-IP-Adressen, die auf der Zulassungsliste enthalten sein sollen
Erstellen einer Edge-ACL zum 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 auf den Admin Ihrer Projektumgebung zugreifen dürfen.
-
Anmelden beim Administrator.
-
Klicken Sie Stores > Einstellungen > Konfiguration > Erweitert > System.
-
Erweitern Sie Vollständiger Seitencache > Fastly-Konfiguration > Edge ACL.
-
Erstellen Sie den ACL-Container:
-
Klicken Sie ACL hinzufügen.
-
Geben Sie auf der ACL Container-Seite einen ACL-Namen-
allowlist
ein. -
Wählen Sie Aktivieren nach der Änderung aus, um Ihre Änderungen für die Version der Fastly-Service-Konfiguration bereitzustellen, die Sie bearbeiten.
-
Klicken Sie Hochladen, um die ACL an Ihre Fastly-Service-Konfiguration anzuhängen.
-
-
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
allowlist
ACL. -
Fügen Sie für jede Client IP-Adresse den IP-Wert“ hinzu und speichern Sie ihn.
-
Klicken Sie Abbrechen, um zur Systemkonfigurationsseite zurückzukehren.
-
-
Klicken Sie Konfiguration speichern.
-
Aktualisieren Sie den Cache entsprechend der Benachrichtigung oben auf der Seite.
Erstellen Sie das benutzerdefinierte VCL-Snippet, um den Admin-Zugriff zu sichern
Der folgende benutzerdefinierte VCL-Code-Ausschnitt (JSON-Format) zeigt die Logik zum Filtern von Anfragen an den Administrator und zum Zulassen des Zugriffs, wenn die Client-IP-Adresse mit einer Adresse in der allowlist
-ACL ü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 ein benutzerdefiniertes Snippet erstellen überprüfen Sie in diesem Beispiel 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 content
in das Feld Inhalt .
-
name
— Name des VCL-Snippets. In diesem Beispielallowlist
. -
priority
- Bestimmt, wann der VCL-Snippet ausgeführt wird. Die Priorität besteht darin, sofort5
auszuführen und zu überprüfen, ob eine Admin-Anfrage von einer zulässigen IP-Adresse kommt. Das Snippet wird ausgeführt, bevor einem der standardmäßigen Magento-VCL-Snippets (magentomodule_*
) eine Priorität von 50 zugewiesen wird. Legen Sie die Priorität für jeden benutzerdefinierten Ausschnitt auf einen Wert von über oder unter 50 fest, je nachdem, wann der Ausschnitt ausgeführt werden soll. Snippets mit Zahlen niedrigerer Priorität werden zuerst ausgeführt. -
type
- Gibt einen Speicherort an, an dem der Ausschnitt in den versionierten VCL-Code eingefügt werden soll. Dieser VCL ist einrecv
Snippet-Typ, der den Snippet-Code unterhalb des standardmäßigen Fastly-VCL-Codes und über allen Objekten zurvcl_recv
-Unterroutine hinzufügt. -
content
- Der auszuführende VCL-Code-Ausschnitt. In diesem Beispiel filtert der Code Anfragen an den Administrator und ermöglicht den Zugriff, wenn die Client-IP-Adresse mit einer Adresse in derallowlist
-ACL übereinstimmt. Wenn die Adresse nicht übereinstimmt, wird die Anfrage mit einem403 Forbidden
Fehler 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 Code-Beispiel ist die Bedingung !req.http.Fastly-FF
bei der Verwendung von "". Diesen Code nicht entfernen oder bearbeiten.
Nachdem Sie den Code für Ihre Umgebung überprüft und aktualisiert haben, verwenden Sie eine der folgenden Methoden, um das benutzerdefinierte VCL-Snippet zu Ihrer Fastly-Service-Konfiguration hinzuzufügen:
-
Fügen Sie das benutzerdefinierte VCL-Snippet von der Admin. Diese Methode wird empfohlen, wenn Sie auf Admin zugreifen können. (Erfordert Fastly CDN-Modul für Magento 2 Version 1.2.58 oder höher.)
-
Speichern Sie das JSON-Code-Beispiel in einer Datei (z. B.
allowlist.json
) und Sie es mithilfe der Fastly-API. Verwenden Sie diese Methode, wenn Sie nicht auf Admin zugreifen können.
Hinzufügen des benutzerdefinierten VCL-Snippets
-
Anmelden beim Administrator.
-
Klicken Sie Stores > Einstellungen > Konfiguration > Erweitert > System.
-
Erweitern Sie Vollständiger Seitencache > Fastly-Konfiguration > Benutzerdefinierte VCL-Snippets.
-
Klicken Sie Benutzerdefiniertes Snippet erstellen.
-
Fügen Sie die VCL-Snippet-Werte hinzu:
-
Name —
allowlist
-
Typ —
recv
-
Priorität —
5
-
Fügen Sie den VCL-Ausschnittinhalt hinzu:
code language-conf if ((req.url ~ "^/admin") && !(client.ip ~ allowlist) && !req.http.Fastly-FF) { error 403 "Forbidden";}
-
-
Klicken Sie Erstellen, um die VCL-Snippet-Datei mit dem Namensmuster
type_priority_name.vcl
zu generieren, z. B.recv_5_allowlist.vcl
-
Nachdem die Seite neu geladen wurde, klicken im Abschnitt „Fastly-Konfiguration auf VCL zu Fastly hochladen, um die Datei zur Fastly-Service-Konfiguration hinzuzufügen.
-
Aktualisieren Sie nach Abschluss des Uploads den Cache entsprechend 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
-
Anmelden beim Administrator.
-
Klicken Sie auf Stores > Einstellungen > Konfiguration > Erweitert > System.
-
Erweitern Sie Vollständiger Seitencache > Fastly-Konfiguration > Benutzerdefinierte VCL-Snippets.
-
Klicken Sie in Spalte Aktion“ auf das Einstellungssymbol neben dem Snippet, das bearbeitet werden soll.
-
Nachdem die Seite neu geladen wurde, klicken Sie im Abschnitt Fastly-Konfiguration auf VCL zu Fastly.
-
Aktualisieren Sie nach Abschluss des Uploads den Cache entsprechend der Benachrichtigung oben auf der Seite.
Löschen des benutzerdefinierten VCL-Snippets
-
Anmelden beim Administrator.
-
Klicken Sie auf Stores > Einstellungen > Konfiguration > Erweitert > System.
-
Erweitern Sie Vollständiger Seitencache > Fastly-Konfiguration > Benutzerdefinierte VCL-Snippets.
-
Klicken Sie in Spalte Aktion“ auf das Papierkorbsymbol neben dem zu löschenden Snippet.
-
Klicken Sie im nächsten modalen Fenster auf DELETE aktivieren Sie eine neue Version.