Eine Autorisierungsrichtlinie (AuthzPolicy
), die auf die Weiterleitungsregel von Application Load Balancern angewendet wird, definiert Regeln für die Quelle des eingehenden Traffics und die für diese Quelle zulässigen oder eingeschränkten Vorgänge.
Außerdem werden in der Autorisierungsrichtlinie die Bedingungen beschrieben, unter denen eine Regel gilt, und eine Aktion angegeben, um den Traffic entweder zuzulassen, abzulehnen oder weiter zu prüfen.
Mit Autorisierungsrichtlinien können Sie Zugriffssteuerungsprüfungen für eingehenden Traffic an Application Load Balancer einrichten. Anfragen, die diese Prüfungen bestehen, werden an Back-End-Dienste weitergeleitet. Anfragen, die diese Prüfungen nicht bestehen, werden mit einer nicht autorisierten Antwort beendet.
Autorisierungsrichtlinien können für die Weiterleitungsregel aller Application Load Balancer mit einem Load-Balancing-Schema von EXTERNAL_MANAGED
oder INTERNAL_MANAGED
konfiguriert werden.
Die folgenden Application Load Balancer unterstützen Autorisierungsrichtlinien:
- Globale externe Application Load Balancer
Regionale externe Application Load Balancer
Regionale interne Application Load Balancer
- Regionsübergreifende interne Application Load Balancer
Bei Application Load Balancern werden Autorisierungsrichtlinien nach der Auswertung von Routenerweiterungen, Netzwerksicherheitsrichtlinien (von Google Cloud Armor ausgewertet), CORS-Richtlinien (Cross-Origin Resource Sharing) und IAP-Richtlinien (Identity-Aware Proxy) aufgerufen, aber vor der Ausführung von Traffic-Management-Aktionen.
Weitere Informationen dazu, wann Autorisierungsrichtlinien im Pfad zur Anfrageverarbeitung aufgerufen werden, finden Sie unter Erweiterungspunkte im Load Balancing-Datenpfad.
Informationen zum Verwenden von Autorisierungsrichtlinien für Dienste, die mit Cloud Service Mesh bereitgestellt werden, finden Sie unter Dienstsicherheit mit Envoy einrichten.
Regeln für Autorisierungsrichtlinien
Eine Autorisierungsrichtlinie besteht aus einer Liste von HTTP-Regeln, die mit der eingehenden Anfrage abgeglichen werden.
Bei einer Autorisierungsrichtlinie mit einer ALLOW
- oder DENY
-Aktion werden in einer HTTP-Regel (AuthzRule
) die Bedingungen festgelegt, die bestimmen, ob Traffic den Load Balancer passieren darf. Es ist mindestens eine HTTP-Regel erforderlich.
Bei einer Autorisierungsrichtlinie mit der Aktion CUSTOM
werden in einer HTTP-Regel (AuthzRule
) die Bedingungen definiert, die festlegen, ob Traffic zur Autorisierung an den benutzerdefinierten Anbieter delegiert wird. Ein benutzerdefinierter Anbieter ist erforderlich, während HTTP-Regeln optional sind.
Eine Richtlinienübereinstimmung tritt auf, wenn mindestens eine HTTP-Regel mit der Anfrage übereinstimmt oder wenn in der Richtlinie keine HTTP-Regeln definiert sind.
Eine HTTP-Regel für Autorisierungsrichtlinien besteht aus den folgenden Feldern:
from
: Gibt die Identität des Clients an, die gemäß der Regel zulässig ist. Die Identität kann aus einem Clientzertifikat in einer mTLS-Verbindung abgeleitet werden oder es kann sich um die Umgebungsidentität handeln, die der Client-VM-Instanz zugewiesen ist, z. B. aus einem Dienstkonto oder einem sicheren Tag.to
: Gibt die von der Regel zulässigen Vorgänge an, z. B. die URLs, auf die zugegriffen werden kann, oder die zulässigen HTTP-Methoden.when
: Gibt zusätzliche Einschränkungen an, die erfüllt werden müssen. Sie können Common Expression Language (CEL)-Ausdrücke verwenden, um die Einschränkungen zu definieren.
Aktionen für Autorisierungsrichtlinien
Bei der Auswertung einer Anfrage gibt eine Autorisierungsrichtlinie die Aktion (AuthzAction
) an, die auf die Anfrage angewendet werden soll. Eine Autorisierungsrichtlinie muss mindestens eine Aktion haben. Folgende Aktionen sind möglich:
ALLOW
: Die Anfrage wird an das Backend weitergeleitet, wenn sie mit einer der Regeln in einerALLOW
-Richtlinie übereinstimmt. WennALLOW
-Richtlinien vorhanden sind, aber keine Übereinstimmung gefunden wird, wird die Anfrage abgelehnt. Mit anderen Worten: Die Anfrage wird abgelehnt, wenn keine der konfigurierten Autorisierungsrichtlinien mit einerALLOW
-Aktion mit der Anfrage übereinstimmt. In Cloud Logging wird diese Aktion alsdenied_as_no_allow_policies_matched_request
protokolliert.Damit eine
ALLOW
-Aktion angewendet werden kann, ist mindestens eine HTTP-Regel erforderlich.DENY
: Die Anfrage wird abgelehnt, wenn sie mit einer der Regeln in einerDENY
-Richtlinie übereinstimmt. WennDENY
-Richtlinien vorhanden sind, aber keine Übereinstimmung gefunden wird, ist die Anfrage zulässig. Mit anderen Worten: Die Anfrage ist zulässig, wenn keine der konfigurierten Autorisierungsrichtlinien mit einerDENY
-Aktion mit der Anfrage übereinstimmt. In Cloud Logging wird diese Aktion alsallowed_as_no_deny_policies_matched_request
protokolliert.Damit eine
DENY
-Aktion angewendet werden kann, ist mindestens eine HTTP-Regel erforderlich.CUSTOM
: Delegiert die Autorisierungsentscheidung an einen benutzerdefinierten Autorisierungsanbieter, z. B. IAP oder Diensterweiterungen. Weitere Informationen finden Sie unter Autorisierungsentscheidungen mithilfe von Autorisierungsrichtlinien delegieren.Wenn für eine
CUSTOM
-Richtlinie HTTP-Regeln konfiguriert sind, muss die Anfrage mit den HTTP-Regeln übereinstimmen, damit der benutzerdefinierte Anbieter aufgerufen wird. Wenn jedoch keine HTTP-Regeln definiert sind, delegiert die Autorisierungsrichtlinie die Autorisierungsentscheidung immer an einen benutzerdefinierten Autorisierungsanbieter. Weitere Informationen finden Sie im folgenden Beispiel, in dem keine HTTP-Regeln definiert sind und die Autorisierungsrichtlinie die Autorisierungsentscheidung an einen IAP delegiert:
Reihenfolge der Auswertung von Autorisierungsrichtlinien
Eine Autorisierungsrichtlinie unterstützt CUSTOM
-, DENY
- und ALLOW
-Richtlinien für die Zugriffssteuerung. Wenn einer einzelnen Ressource mehrere Autorisierungsrichtlinien zugewiesen sind, wird zuerst die CUSTOM
-Richtlinie, dann die DENY
-Richtlinie und schließlich die ALLOW
-Richtlinie ausgewertet. Die Bewertung erfolgt anhand der folgenden Regeln:
Wenn eine
CUSTOM
-Richtlinie mit der Anfrage übereinstimmt, wird dieCUSTOM
-Richtlinie mithilfe der benutzerdefinierten Autorisierungsanbieter ausgewertet. Wenn der Anbieter die Anfrage ablehnt, wird sie abgelehnt.DENY
- oderALLOW
-Richtlinien werden nicht ausgewertet, auch wenn sie konfiguriert sind.Wenn es
DENY
-Richtlinien gibt, die mit der Anfrage übereinstimmen, wird die Anfrage abgelehnt.ALLOW
-Richtlinien werden nicht ausgewertet, auch wenn sie konfiguriert sind.Wenn keine
ALLOW
-Richtlinien vorhanden sind, wird die Anfrage zugelassen.Wenn eine der
ALLOW
-Richtlinien mit der Anfrage übereinstimmt, erlauben Sie die Anfrage.Wenn
ALLOW
-Richtlinien vorhanden sind, aber keine Übereinstimmung gefunden wird, wird die Anfrage abgelehnt. Mit anderen Worten: Die Anfrage wird standardmäßig abgelehnt, wenn keine der konfiguriertenAuthzPolicies
-Elemente mit der AktionALLOW
mit der Anfrage übereinstimmt.
Autorisierungsrichtlinien zum Delegieren von Autorisierungsentscheidungen verwenden
Bei komplexen Autorisierungsentscheidungen, die nicht mit der Autorisierungsrichtlinie ausgedrückt werden können, delegieren Sie die Autorisierungsentscheidung an benutzerdefinierte Autorisierungsanbieter wie Identity-Aware Proxy (IAP) oder erstellen Sie eine eigene Autorisierungserweiterung, die mit Diensterweiterungen erstellt wurde. Dies ist nützlich, wenn Sie Ihre lokale Autorisierungs-Engine oder externe Identitätsanbieter über IAP verwenden möchten.
IAP: Konfigurieren Sie IAP, um den Zugriff auf Anwendungen zu steuern, die sich hinter den Weiterleitungsregeln des Application Load Balancers befinden. IAP prüft die Nutzeridentität und den Kontext, um den Zugriff zu bestimmen. Außerdem kann IAP IAM-Dienstkontotokens (Identity and Access Management) authentifizieren und IAM-Richtlinien auswerten, um den Zugriff auf Backend-Buckets zu schützen, die über den Application Load Balancer freigegeben werden. Weitere Informationen finden Sie unter Autorisierung an IAP und IAM delegieren.
In den folgenden Fällen können Sie die Authentifizierung an IAP und IAM delegieren:
- Verwenden Sie IAM für die Berechtigungsverwaltung.
- Implementieren Sie kontextsensitiven Zugriff.
- Verwenden Sie die browserbasierte Authentifizierung für Webanwendungen, die eine interaktive Authentifizierung erfordern.
Diensterweiterungen: Delegieren Sie Autorisierungsentscheidungen an Ihre benutzerdefinierte Autorisierungs-Engine, die auf Google Cloud VM-Instanzen oder lokal ausgeführt wird. Dies bietet Flexibilität für komplexe Autorisierungsrichtlinien, die nicht durch vordefinierte Richtlinien abgedeckt sind. Weitere Informationen finden Sie unter Autorisierungserweiterung konfigurieren.
Autorisierungsrichtlinie basierend auf Dienstkonten oder Tags
Sie können Attribute wie Dienstkonten oder Tags verwenden, um die Quelle des Traffics für interne Application Load Balancer zu identifizieren.
Bei internen Application Load Balancern können Sie Autorisierungsrichtlinien basierend auf Dienstkonten oder Tags anwenden, die mit Google Cloud -Ressourcen verknüpft sind. Traffic, der von diesen Google Cloud Ressourcen stammt, die mit einem bestimmten Dienstkonto oder Tag verknüpft sind, kann entweder zugelassen, abgelehnt oder an einen externen Dienst delegiert werden.
In den folgenden Tabellen sind die Quellressourcen und die verschiedenen VPC-Architekturen (Virtual Private Cloud) aufgeführt, die die Verwendung von Dienstkonten und Tags unterstützen.
Quelle | Unterstützung für Dienstkonten | Tag-Unterstützung |
---|---|---|
VM | ||
GKE-Knoten | ||
GKE-Container | * | * |
Direct VPC für Cloud Run | * | |
Connector für serverlosen VPC-Zugriff | † | † |
Cloud VPN | * | * |
Cloud Interconnect on Premises | * | * |
Application Load Balancer | ||
Netzwerk-Load-Balancer |
* Von Google Cloudnicht unterstützt.
† Die Quell-IP-Adresse ist eindeutig und kann stattdessen verwendet werden.
VPC | VPC-Architektur | Support |
---|---|---|
Innerhalb der VPC | Projektübergreifend (freigegebene VPC) | |
Innerhalb der VPC | Regionsübergreifend | |
VPC-übergreifender Zugriff | Peering-Link (Peer-VPC) | |
VPC-übergreifender Zugriff | Private Service Connect-übergreifender Zugriff | |
VPC-übergreifender Zugriff | Network Connectivity Center-Spokes kreuzen |
Weitere Informationen zum Einrichten einer Autorisierungsrichtlinie, die auf Dienstkonten und Tags basiert, die an eine Google Cloud VM-Ressource angehängt sind, finden Sie unter Autorisierungsrichtlinie auf Dienstkonten oder Tags basierend.
Kontingente
Informationen zu Kontingenten für Autorisierungsrichtlinien finden Sie unter Kontingente und Limits für Autorisierungsrichtlinien.
Preise
Autorisierungsrichtlinien werden während des Vorschauzeitraums nicht berechnet. Bei der Verwendung von Load Balancern fallen jedoch Netzwerkgebühren an. Google Cloud Preisinformationen finden Sie unter Preise.