Diese Seite gilt für Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen
Die genaue Ermittlung der Client-IP-Adresse bei API-Anfragen ist für einige Funktionen in Apigee wichtig, darunter Analytics und erweiterte API-Sicherheit, z. B. Missbrauchserkennung und Sicherheitsmaßnahmen.
Die Identifizierung der Client-IP ist in modernen Netzwerkarchitekturen, in denen Proxys und Load Balancer verwendet werden, schwierig, da diese Vermittler die tatsächliche Quell-IP-Adresse verschleiern können.
Um diese Herausforderung zu meistern, unterstützt Apigee eine Einstellung auf Umgebungsebene, mit der angegeben wird, wie die Client-IP-Adresse aus dem X-Forwarded-For-Header (XFF) aufgelöst werden soll. Dabei wird der Index im Header angegeben, der der IP-Adresse für Ihre Netzwerktopologie und Sicherheitsanforderungen entspricht. Mit dieser Einstellung erhalten Sie Transparenz, Konsistenz und Kontrolle darüber, wie Client-IP-Adressen für alle Anfragen in der Umgebung ermittelt werden. Außerdem wird so eine konsistente Identifizierung von Client-IP-Adressen in erweiterter API-Sicherheit, Flussvariablen und Analysevariablen in der Umgebung erreicht.
Wenn die Client-IP-Auflösung auf Umgebungsebene nicht wie auf dieser Seite beschrieben konfiguriert ist, werden die Variablen für die Client-IP-Adresse mit dem Standardverhalten für die Client-IP-Adressauflösung gefüllt.
Standardauflösung der Client-IP-Adresse
Wenn die Auflösung der Client-IP-Adresse nicht auf Umgebungsebene konfiguriert ist, wird der Standardwert der Dimension ax_resolved_client_ip
wie unter Analytics-Dimensionen beschrieben berechnet.
Wenn die Client-IP-Auflösung für eine Umgebung konfiguriert ist, werden die Flow- und Analytics-Variablen anhand der Konfiguration der Client-IP-Auflösung festgelegt. Weitere Informationen finden Sie unter Client-IP-Auflösung für eine Umgebung festlegen.
Wann sollte die Client-IP-Auflösung für eine Umgebung festgelegt werden?
Die Auflösung der Client-IP-Adresse ist zwar nicht erforderlich, kann aber sinnvoll sein, wenn die Standardauflösung der Client-IP-Adresse nicht Ihren Anforderungen entspricht und Sie sie überschreiben möchten, um eine bestimmte Auflösung der Client-IP-Adresse für Analytics, Advanced API Security oder eine andere Funktion bereitzustellen, die konsistente und zuverlässige Informationen zu Client-IP-Adressen erfordert.
Syntax der Konfiguration für die Auflösung von Client-IP-Adressen
Die Einstellung für die Auflösung der Client-IP hat folgendes Format:
"clientIpResolutionConfig": { "headerIndexAlgorithm": { "ipHeaderName" : "X-Forwarded-For", "ipHeaderIndex": 2 } }
ipHeaderName
ist der Header, der für die Client-IP verwendet werden soll. Derzeit istX-Forwarded-For
der unterstützte Header-Wert.ipHeaderIndex
ist der Indexwert inipHeaderName
.
Eine positive Zahl wählt eine Adresse aus, die von links beginnt (die erste Adresse, die dem Header hinzugefügt wurde). Die erste Position links ist0
und erhöht sich um eins für jede nachfolgende Adresse (z. B.0, 1, 2
). Wenn die Liste beispielsweise192.0.2.1, 192.0.2.2, 192.0.2.3
ist, wird ein Index von1
in192.0.2.2
aufgelöst.
Eine negative Zahl wählt eine Adresse aus, die von rechts (der zuletzt dem Header hinzugefügten Adresse) beginnt. Die erste Position rechts ist-1
und wird für jede nachfolgende Adresse um eins verringert (z. B.-3, -2, -1
). Wenn die Liste beispielsweise192.0.2.1, 192.0.2.2, 192.0.2.3, 192.0.2.4
ist, wird der Index-1
in192.0.2.4
und der Index-2
in192.0.2.3
aufgelöst.
Weitere Informationen zu dieser Einstellung finden Sie in der organizations.environment API.
Konfigurationen für die Auflösung von Client-IP-Adressen ansehen
Sie können die aktuelle Konfiguration für die Auflösung der Client-IP-Adresse für eine Umgebung entweder über die Apigee-Benutzeroberfläche oder die Management APIs aufrufen.
Konfiguration der Client-IP-Auflösung über die Benutzeroberfläche ansehen
So rufen Sie die Konfiguration der Client-IP-Auflösung auf:
Rufen Sie in der Google Cloud Console die Seite Verwaltung > Umgebungen auf.
-
Wählen Sie die Umgebung aus und sehen Sie sich die Client-IP-Konfiguration auf dem Tab Kanalinfo an.
Konfiguration der Client-IP-Auflösung mit der API aufrufen
Wenn Sie die Apigee Management APIs verwenden möchten, um die Konfiguration für die Auflösung von Client-IP-Adressen aufzurufen, senden Sie eine Anfrage an die organizations.environments.get API.
Client-IP-Auflösung für eine Umgebung festlegen
Nachdem Sie die Konfiguration für die Client-IP-Auflösung für eine Umgebung festgelegt haben, wird die Flussvariable client.resolved.ip
mit dem angegebenen Algorithmus gefüllt. Das gilt auch für die Resolved Client IP
-Analytics-Dimension.
Nachdem Sie die Konfiguration für die Auflösung der Client-IP-Adresse für eine Umgebung festgelegt haben, können sich die Änderungen auf vorhandene Konfigurationen für die erweiterte API-Sicherheit für Regeln für Sicherheitsmaßnahmen auswirken. Prüfen Sie vorhandene Regeln und generieren Sie sie bei Bedarf neu, um die neuen Variablen und Einstellungen zu verwenden.
Berücksichtigen Sie diese Auswirkungen bei der Auswahl des Index für die Client-IP-Auflösung:
- Apigee-zu-Apigee-Aufrufe werden nicht als Sonderfall behandelt. Achten Sie darauf, die entsprechende Anzahl von IPs zu notieren und zu überspringen.
- Da der X-Forwarded-For-Header gefälscht werden kann, ist es besser, den richtigen Index basierend auf der Anzahl der erwarteten Hops zwischen dem Client und dem Apigee-Load-Balancer zu verwenden. Ein böswilliger Nutzer kann einen vorausgefüllten X-Forwarded-For-Header senden. Die erste IP-Adresse im XFF-Header entspricht zwar am ehesten der tatsächlichen Client-IP-Adresse, die letzte IP-Adresse im XFF-Header ist jedoch am vertrauenswürdigsten, da der Load Balancer den TCP-Client kennt, der mit ihm verbunden ist.
Wenn Sie die Auflösung der Client-IP-Adresse für eine Umgebung festlegen möchten, verwenden Sie eine der Apigee API Management APIs, um die Auflösung der Client-IP-Adresse für die Umgebung in der client_ip_resolution_config
festzulegen.
Verwenden Sie organizations.environments.create für neue Umgebungen. Verwenden Sie updateEnvironment oder modifyEnvironment für vorhandene Umgebungen.
Auflösung der Client-IP-Adresse testen
Nachdem Sie eine neue Client-IP-Konfiguration gespeichert haben, können Sie sie so testen:
- Warten Sie nach dem Speichern einer neuen Konfigurationseinstellung mindestens 5 Minuten.
- Starten Sie eine Sitzung zur Fehlerbehebung. Aktivieren Sie die Einstellung Alle FlowInfos anzeigen.
- Prüfen Sie die FlowInfo kurz vor Proxy Request Flow Started. Die konfigurierte Client-IP-Adresse sollte in diesem Abschnitt angezeigt werden.
Suchen Sie in FlowInfo nach diesen Variablen:
client_ip_resolution.resolved.ip
: Die aufgelöste Client-IP-Adresse.client_ip_resolution.used.fallback
: Boolesch. Dieser Wert istfalse
, es sei denn, Apigee ist auf die standardmäßige Auflösung der Client-IP zurückgefallen, weil eine konfigurierte Auflösung der Client-IP nicht verwendet werden konnte. Das kann beispielsweise der Fall sein, wenn in der konfigurierten Auflösung ein Index angegeben wird, der im Header nicht vorhanden ist.client_ip_resolution.algorithm
: Der Algorithmus, der zum Ermitteln der Client-IP-Adresse verwendet wird. Falls konfiguriert, ist dies"HeaderIndexAlgorithm{IpHeaderName:header_name, IpHeaderIndex: $header_index}"
. Andernfalls wirddefault
angezeigt.
Beschränkungen
Diese Einschränkungen gelten für die Auflösung von Client-IPs auf Umgebungsebene:
- Es kann bis zu 5 Minuten dauern, bis Aktualisierungen der Konfigurationen für die Auflösung von Client-IP-Adressen wirksam werden.
- Vermeiden Sie häufige Änderungen (z. B. alle 5 Minuten) an der Konfiguration für die Client-IP-Auflösung, da dies zu Leistungseinbußen führen kann.
- Das Festlegen der Konfiguration für die Auflösung der Client-IP-Adresse für eine Umgebung in Apigee Hybrid ist ab Version 1.14.0 verfügbar.
- Die Konfiguration kann über die Apigee Console oder API aufgerufen, aber nur über die API festgelegt werden.
- Auch wenn keine böswilligen Nutzer vorhanden sind, ist die X-Forwarded-For-Liste darauf angewiesen, dass jeder Proxy die richtigen Informationen hinzufügt. Diese vollständige Liste liegt außerhalb der Aufsicht und Kontrolle von Apigee. Wenn Sie die Konfiguration für die Auflösung der Client-IP-Adresse festlegen, wird daher nicht garantiert, dass die richtige IP-Adresse der Anfrage ermittelt wird.