Google Cloud Armor-Sicherheitsrichtlinienregeln, die nach einer IP-Adresse filtern, verwenden in der Regel die Client-IP des Aufrufers. Wenn Ihre Dienste hinter einem Vermittler wie einem CDN (Content Delivery Network) eines Drittanbieters stehen, ist die Client-IP-Adresse im Feld origin.ip die IP-Adresse des letzten Vermittlers und nicht die des ursprünglichen Clients.
Mit der Funktion „Nutzer-IP“ können Sie ein alternatives Feld (origin.user_ip) konfigurieren, das aus einem Header aufgelöst wird, der vom Upstream-Anbieter ausgefüllt wird. Sie können dann das Feld origin.user_ip in den Regeln Ihrer Sicherheitsrichtlinie verwenden, um die IP-Adresse anzugeben, die in diesen Funktionen verwendet wird. Sie können die Option userIpRequestHeaders[] im Feld advancedOptionsConfig der Sicherheitsrichtlinie konfigurieren, wenn Sie origin.user_ip verwenden.
Funktionsweise von Nutzer-IP-Adressen
Sie konfigurieren Cloud Armor so, dass die IP-Adresse des Endnutzers aus einem bestimmten Anfrageheader extrahiert wird. Dieser Wert wird in das Feld origin.user_ip eingefügt, das Sie dann in Ihren Sicherheitsrichtlinienregeln verwenden können.
Wenn die in userIpRequestHeaders[] angegebenen Header nicht vorhanden sind oder ihre Werte keine gültigen IP-Adressen sind, greift Cloud Armor stattdessen auf die Client-IP-Adresse (origin.ip) zurück. Das folgende Beispiel zeigt einen direkten Vergleich für den Standardfall.
origin.ip != origin.user_ip
Die folgenden Beispiele zeigen, wie origin.user_ip in der Regelsprache, mit Google Threat Intelligence und in Adressgruppen verwendet wird.
inIpRange
inIpRange(origin.user_ip, '9.9.9.0/24')
Weitere Informationen zur Verwendung von inIpRange mit origin.user_ip finden Sie unter Attribute.
Google Threat Intelligence
evaluateThreatIntelligence('iplist-known-malicious-ips', origin.user_ip)
Weitere Informationen finden Sie unter Google Threat Intelligence anwenden.
Adressgruppen
evaluateAddressGroup('example-address-group', origin.user_ip)
Weitere Informationen finden Sie unter Adressgruppen konfigurieren.
Adressgruppen auf Organisationsebene
evaluateOrganizationAddressGroup('example-org-address-group', origin.user_ip)
Weitere Informationen finden Sie unter Adressgruppen auf Organisationsebene verwenden.
Best Practices
Da origin.user_ip aus einem Anfrageheader aufgelöst wird, der von einem nicht vertrauenswürdigen Client manipuliert werden kann, müssen Sie prüfen, ob der Traffic von einer vertrauenswürdigen Upstream-Quelle stammt.
Um die Upstream-Quelle zu validieren, erstellen Sie eine Sicherheitsrichtlinie mit mindestens zwei Regeln. Die erste Regel mit höherer Priorität prüft, ob die IP-Adresse des unmittelbaren Clients (origin.ip) zu Ihrem vertrauenswürdigen Upstream-Anbieter gehört. Die zweite Regel mit einer niedrigeren Priorität wendet Ihre beabsichtigte Logik mit dem Feld origin.user_ip an.
Sie können beispielsweise eine Richtlinie mit den folgenden zwei Regeln erstellen:
- Regel 1:
evaluateThreatIntelligence('iplist-public-clouds', origin.ip) - Regel 2:
inIpRange(origin.user_ip, '9.9.9.0/24')
Nächste Schritte
- Sprachattribute mit benutzerdefinierten Regeln konfigurieren
- Google Threat Intelligence anwenden
- Adressgruppen konfigurieren
- Adressgruppen auf Organisationsebene verwenden