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.
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.
-
Melden Sie sich beibeim Administrator an.
-
Klicken Sie auf Stores > Einstellungen > Konfiguration > Erweitert > System.
-
Erweitern Sie Vollständiger Seiten-Cache > Fastly Configuration > Edge ACL.
-
Erstellen Sie den ACL-Container:
-
Klicken Sie auf ACL hinzufügen.
-
Geben Sie auf der Seite ACL-Container einen ACL-Namen—
allowlist
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.
-
-
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.
-
-
Klicken Sie auf Konfiguration speichern.
-
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 Beispielallowlist
. -
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 einrecv
-Snippet-Typ, der den Codeausschnitt zur UnterRoutinevcl_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 ACLallowlist
übereinstimmt. Wenn die Adresse nicht übereinstimmt, wird die Anfrage mit dem Fehler403 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:
-
Fügen Sie das benutzerdefinierte VCL-Snippet aus dem Admin hinzu. Diese Methode wird empfohlen, wenn Sie auf den Admin zugreifen können. (Erfordert das schnelle CDN-Modul für Magento 2 Version 1.2.58 oder höher.)
-
Speichern Sie das JSON-Codebeispiel in eine Datei (z. B.
allowlist.json
) und laden Sie sie mit der Fastly API🔗 hoch. Verwenden Sie diese Methode, wenn Sie nicht auf den Admin zugreifen können.
Hinzufügen des benutzerdefinierten VCL-Snippets
-
Melden Sie sich beibeim Administrator an.
-
Klicken Sie auf Stores > Einstellungen > Konfiguration > Erweitert > System.
-
Erweitern Sie Vollständiger Seiten-Cache > Fastly Configuration > Custom VCL Snippets.
-
Klicken Sie auf Benutzerdefiniertes Snippet erstellen.
-
Fügen Sie die VCL-Snippet-Werte hinzu:
-
Name —
allowlist
-
Typ —
recv
-
Priorität —
5
-
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";}
-
-
Klicken Sie auf Erstellen , um die VCL-Snippet-Datei mit dem Namensmuster
type_priority_name.vcl
zu generieren, z. B.recv_5_allowlist.vcl
-
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.
-
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
-
Melden Sie sich beibeim Administrator an.
-
Klicken Sie auf Stores > Einstellungen > Konfiguration > Erweitert > System.
-
Erweitern Sie Vollständiger Seiten-Cache > Fastly Configuration > Custom VCL Snippets.
-
Klicken Sie in der Spalte Aktion auf das Einstellungssymbol neben dem zu bearbeitenden Snippet.
-
Klicken Sie nach dem Neuladen der Seite im Abschnitt Schnelle Konfiguration auf VCL auf Fastly hochladen .
-
Nach Abschluss des Uploads aktualisieren Sie den Cache gemäß der Benachrichtigung oben auf der Seite.
Löschen des benutzerdefinierten VCL-Snippets
-
Melden Sie sich beibeim Administrator an.
-
Klicken Sie auf Stores > Einstellungen > Konfiguration > Erweitert > System.
-
Erweitern Sie Vollständiger Seiten-Cache > Fastly Configuration > Custom VCL Snippets.
-
Klicken Sie in der Spalte Aktion auf das Papierkorbsymbol neben dem zu löschenden Ausschnitt.
-
Klicken Sie im nächsten modalen Fenster auf DELETE und aktivieren Sie eine neue Version.