Einschränkungen für Organisationsrichtlinien zu Cloud Load Balancing

Diese Seite enthält zusätzliche Informationen zu Einschränkungen für Organisationsrichtlinien zu Cloud Load Balancing. Mit Einschränkungen für Organisationsrichtlinien können Sie Einstellungen für ein ganzes Projekt, einen ganzen Ordner oder eine ganze Organisation umsetzen.

Organisationsrichtlinien gelten nur für neue Ressourcen. Einschränkungen werden nicht rückwirkend erzwungen. Wenn Sie bereits Load-Balancing-Ressourcen haben, die gegen die Richtlinien einer neuen Organisationsrichtlinie verstoßen, müssen Sie diese Verstöße manuell beheben.

Eine vollständige Liste der verfügbaren Einschränkungen finden Sie unter Einschränkungen für Organisationsrichtlinien.

Load-Balancer-Typen einschränken

Verwenden Sie eine Organisationsrichtlinie, um die Cloud Load Balancing-Typen einzuschränken, die in Ihrer Organisation erstellt werden können. Legen Sie die folgende Einschränkung für die Organisationsrichtlinie fest:

  • Name: Load-Balancer-Erstellung basierend auf Load-Balancer-Typen einschränken
  • ID: constraints/compute.restrictLoadBalancerCreationForTypes

Wenn Sie die Einschränkung compute.restrictLoadBalancerCreationForTypes festlegen, geben Sie eine Zulassungsliste oder Sperrliste für die Cloud Load Balancing-Typen an. Die Liste der zulässigen oder abgelehnten Werte darf nur Werte aus der folgenden Liste enthalten:

  • Application Load Balancer
    • GLOBAL_EXTERNAL_MANAGED_HTTP_HTTPS für den globalen externen Application Load Balancer
    • EXTERNAL_HTTP_HTTPS für den klassischen Application Load Balancer
    • EXTERNAL_MANAGED_HTTP_HTTPS für den regionalen externen Application Load Balancer
    • GLOBAL_INTERNAL_MANAGED_HTTP_HTTPS für den regionenübergreifenden internen Application Load Balancer
    • INTERNAL_HTTP_HTTPS für den regionalen internen Application Load Balancer
  • Proxy-Network-Load-Balancer
    • GLOBAL_EXTERNAL_MANAGED_TCP_PROXY für den globalen externen Proxy-Network-Load-Balancer mit einem TCP-Proxy
    • GLOBAL_EXTERNAL_MANAGED_SSL_PROXY für den globalen externen Proxy-Network-Load-Balancer mit einem SSL-Proxy
    • EXTERNAL_TCP_PROXY für den klassischen Proxy-Network-Load-Balancer mit einem TCP-Proxy
    • EXTERNAL_SSL_PROXY für den klassischen Proxy-Network-Load-Balancer mit einem SSL-Proxy
    • REGIONAL_EXTERNAL_MANAGED_TCP_PROXY für den regionalen externen Proxy-Network-Load-Balancer mit einem TCP-Proxy
    • REGIONAL_INTERNAL_MANAGED_TCP_PROXY für den regionalen internen Proxy-Network-Load-Balancer mit einem TCP-Proxy
    • GLOBAL_INTERNAL_MANAGED_TCP_PROXY für den regionenübergreifenden internen Proxy-Netzwerk-Load Balancer mit einem TCP-Proxy
  • Passthrough-Network-Load-Balancer
    • EXTERNAL_NETWORK_TCP_UDP für den externen Passthrough-Network-Load-Balancer
    • INTERNAL_TCP_UDP für den internen Passthrough-Network-Load-Balancer

Verwenden Sie das Präfix in: gefolgt von INTERNAL oder EXTERNAL, um alle internen und externen Load-Balancer-Typen einzubinden. Wenn Sie beispielsweise in:INTERNAL zulassen, können alle internen Load-Balancer aus der vorherigen Liste zugelassen werden.

Eine Beispielanleitung zur Verwendung dieser Einschränkung finden Sie unter Listeneinschränkungen mit Organisationsrichtlinien einrichten.

Nachdem Sie die Richtlinie festgelegt haben, wird die Richtlinie erzwungen, wenn Sie die entsprechenden Weiterleitungsregeln von Google Cloud hinzufügen. Die Einschränkung wird für vorhandene Cloud Load Balancing-Konfigurationen nicht durchgesetzt.

Wenn Sie versuchen, Load-Balancer eines Typs zu erstellen, der gegen die Einschränkung verstößt, schlägt der Versuch fehl und es wird eine Fehlermeldung generiert. Die Fehlermeldung hat folgendes Format:

Constraint constraints/compute.restrictLoadBalancerCreationForTypes
violated for projects/PROJECT_NAME. Forwarding Rule projects/PROJECT_NAME/region/REGION/forwardingRules/FORWARDING_RULE_NAME
of type SCHEME is not allowed.

Wenn Sie mehrere restrictLoadBalancerCreationForTypes-Einschränkungen auf verschiedenen Ressourcenebenen festlegen, werden diese hierarchisch durchgesetzt. Aus diesem Grund empfiehlt es sich, das Feld inheritFromParent auf true zu setzen. So sorgen Sie dafür, dass auch Richtlinien auf höheren Ebenen berücksichtigt werden.

GKE-Fehlermeldungen

Wenn Sie Dienstobjekte und Ingress-Objekte von Google Kubernetes Engine (GKE) verwenden, erhalten Sie bei Verwendung dieser Organisationsrichtlinie zum Einschränken der Erstellung von Load-Balancern eine Fehlermeldung wie die folgende:

Warning  Sync    28s   loadbalancer-controller  Error during sync: error running
load balancer syncing routine: loadbalancer FORWARDING_RULE_NAME
does not exist: googleapi: Error 412:
Constraint constraints/compute.restrictLoadBalancerCreationForTypes violated for
projects/PROJECT_ID. Forwarding Rule
projects/PROJECT_ID/global/forwardingRules/FORWARDING_RULE_NAME
of type LOAD_BALANCER_TYPE is not allowed, conditionNotMet

Führen Sie die folgenden Befehle aus, um die GKE-Fehlermeldungen aufzurufen:

kubectl get events -w
kubectl describe RESOURCE_KIND NAME

Dabei gilt:

  • RESOURCE_KIND: die Art des Load-Balancers, ingress oder service
  • NAME: der Name des Load-Balancers

Globales Load-Balancing deaktivieren

Diese boolesche Einschränkung deaktiviert das Erstellen von globalen Load-Balancing-Produkten. Wenn sie erzwungen wird, können nur regionale Load-Balancing-Produkte ohne globale Abhängigkeiten erstellt werden.

  • Name: Deaktivieren Sie das globale Load-Balancing
  • ID: constraints/compute.disableGlobalLoadBalancing

Standardmäßig können Nutzer globale Load-Balancing-Produkte erstellen.

Eine Beispielanleitung zur Verwendung dieser Einschränkung finden Sie unter Boolesche Einschränkungen mit Organisationsrichtlinien einrichten.

Protokollweiterleitungstypen einschränken

Verwenden Sie eine Organisationsrichtlinie, um die Protokollweiterleitungstypen einzuschränken, die in Ihrer Organisation erstellt werden können. Legen Sie die folgende Einschränkung für die Organisationsrichtlinie fest:

  • Name: Protokollweiterleitung basierend auf dem Typ der IP-Adresse einschränken
  • ID: constraints/compute.restrictProtocolForwardingCreationForTypes

Wenn Sie die Einschränkung compute.restrictProtocolForwardingCreationForTypes festlegen, geben Sie eine Zulassungsliste oder eine Sperrliste für die Protokollweiterleitungstypen an. Die Liste der zulässigen oder abgelehnten Werte darf nur Werte aus der folgenden Liste enthalten:

  • INTERNAL
  • EXTERNAL

Eine Beispielanleitung zur Verwendung dieser Einschränkung finden Sie unter Listeneinschränkungen mit Organisationsrichtlinien einrichten.

Nachdem Sie die Richtlinie festgelegt haben, wird die Richtlinie erzwungen, wenn Sie die entsprechenden Weiterleitungsregeln von Google Cloud hinzufügen. Die Einschränkung wird bei bestehenden Konfigurationen der Protokollweiterleitung nicht erzwungen.

Wenn Sie versuchen, eine Bereitstellung einer Protokollweiterleitung eines Typs zu erstellen, der gegen die Einschränkung verstößt, schlägt der Versuch fehl und eine Fehlermeldung wird erzeugt. Die Fehlermeldung hat folgendes Format:

Constraint constraints/compute.restrictProtocolForwardingCreationForTypes
violated for projects/PROJECT_NAME. Forwarding Rule
projects/PROJECT_NAME/region/REGION/forwardingRules/FORWARDING_RULE_NAME
of type SCHEME is not allowed.

Wenn Sie mehrere restrictProtocolForwardingCreationForTypes-Einschränkungen auf verschiedenen Ressourcenebenen festlegen und das Feld inheritFromParent auf true setzen, werden die Einschränkungen hierarchisch durchgesetzt.

Einschränkungen für freigegebene VPC erzwingen

Mit den folgenden Organisationsrichtlinien können Sie einschränken, wie Nutzer freigegebene VPC-Bereitstellungen einrichten dürfen.

Freigegebene VPC-Hostprojekte einschränken

Mit dieser Listeneinschränkung können Sie die freigegebenen VPC-Hostprojekte einschränken, an die eine Ressource angehängt werden kann.

  • Name: Freigegebene VPC-Hostprojekte einschränken
  • ID: constraints/compute.restrictSharedVpcHostProjects

Ein Projekt kann standardmäßig einem beliebigen Hostprojekt in derselben Organisation zugeordnet werden, wodurch es zu einem Dienstprojekt wird. Wenn Sie die Einschränkung compute.restrictSharedVpcHostProjects festlegen, geben Sie so eine Zulassungsliste oder eine Sperrliste für Hostprojekte an:

  • Geben Sie ein Projekt im folgenden Format an:
    • projects/PROJECT_ID
  • Geben Sie ein Projekt, einen Ordner oder eine Organisation an. Die Einschränkung gilt für alle Projekte unter der angegebenen Ressource in der Ressourcenhierarchie. Verwenden Sie das folgende Format:
    • under:organizations/ORGANIZATION_ID
    • under:folders/FOLDER_ID

Eine Beispielanleitung zur Verwendung dieser Einschränkung finden Sie unter Listeneinschränkungen mit Organisationsrichtlinien einrichten.

Freigegebene VPC-Subnetzwerke einschränken

Mit dieser Listeneinschränkung werden die freigegebenen VPC-Subnetze definiert, die von zulässigen Ressourcen verwendet werden können. Diese Einschränkung gilt nicht für Ressourcen innerhalb desselben Projekts.

  • Name: Freigegebene VPC-Subnetzwerke einschränken
  • ID: constraints/compute.restrictSharedVpcSubnetworks

Standardmäßig können zulässige Ressourcen jedes freigegebene VPC-Subnetzwerk verwenden. Wenn Sie die Einschränkung compute.restrictSharedVpcSubnetworks festlegen, geben Sie so eine eingeschränkte Liste von Subnetzen an:

  • Geben Sie ein Subnetz im folgenden Format an:
    • projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME.
  • Geben Sie ein Projekt, einen Ordner oder eine Organisation an. Die Einschränkung gilt für alle Subnetze unter der angegebenen Ressource in der Ressourcenhierarchie. Verwenden Sie das folgende Format:
    • under:organizations/ORGANIZATION_ID
    • under:folders/FOLDER_ID
    • under:projects/PROJECT_ID

Eine Beispielanleitung zur Verwendung dieser Einschränkung finden Sie unter Listeneinschränkungen mit Organisationsrichtlinien einrichten.

Projektübergreifende Backend-Dienste einschränken

Mit dieser Einschränkung können Sie die Backend-Dienste beschränken, auf die eine URL-Zuordnung verweisen kann. Diese Einschränkung gilt nicht für Backend-Dienste innerhalb desselben Projekts wie die URL-Zuordnung.

  • Name: Projektübergreifende Backend-Dienste einschränken
  • ID: constraints/compute.restrictCrossProjectServices

Standardmäßig können URL-Zuordnungen in allen Host- oder Dienstprojekten auf kompatible Backend-Dienste aus anderen Dienstprojekten oder dem Hostprojekt in derselben freigegebenen VPC-Bereitstellung verweisen, solange der Nutzer, der die Aktion ausführt, die Berechtigung compute.backendServices.use hat. Wenn Sie die Einschränkung restrictCrossProjectServices festlegen, geben Sie so eine Zulassungsliste oder eine Sperrliste für Backend-Dienste an:

  • Specify backend services in the following format:
    • projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME
  • Geben Sie ein Projekt, einen Ordner oder eine Organisation an. Die Einschränkung gilt für alle Backend-Dienste unter der angegebenen Ressource in der Ressourcenhierarchie. Verwenden Sie das folgende Format:
    • under:organizations/ORGANIZATION_ID
    • under:folders/FOLDER_ID
    • under:projects/PROJECT_ID

Nachdem Sie eine Organisationsrichtlinie mit dieser Einschränkung eingerichtet haben, wird die Einschränkung wirksam, wenn Sie das nächste Mal mit dem Befehl gcloud compute url-maps einen Backend-Dienst an eine URL-Zuordnung anhängen. Die Einschränkung wirkt sich nicht rückwirkend auf vorhandene Verweise auf projektübergreifende Backend-Dienste aus.

Eine Beispielanleitung zur Verwendung dieser Einschränkung finden Sie unter Listeneinschränkungen mit Organisationsrichtlinien einrichten.

Entfernen von Sperren gemeinsam genutzter VPC-Projekte einschränken

Wenn diese boolesche Einschränkung bereits auf True gesetzt ist, wird die Gruppe der Nutzer eingeschränkt, die eine Sperre für ein freigegebenes VPC-Host-Projekt entfernen können, ohne eine Berechtigung auf Organisationsebene zu haben.

  • Name: Entfernen von Sperren gemeinsam genutzter VPC-Projekte einschränken
  • ID: constraints/compute.restrictXpnProjectLienRemoval

Standardmäßig kann jeder Nutzer mit der Berechtigung zur Aktualisierung von Sperren eine Sperre eines freigegebenen VPC-Host-Projekts entfernen. Für die Erzwingung dieser Einschränkung muss die Berechtigung auf Organisationsebene vorhanden sein.

Eine Beispielanleitung zur Verwendung dieser Einschränkung finden Sie unter Boolesche Einschränkungen mit Organisationsrichtlinien einrichten.

Boolesche Einschränkungen mit Organisationsrichtlinien einrichten

Console

Führen Sie die folgenden Schritte aus, um über die Console eine Organisationsrichtlinie festzulegen:

  1. Wechseln Sie in der Google Cloud Console zur Seite Organisationsrichtlinien.

    Zu den Organisationsrichtlinien

  2. Suchen Sie im Feld Filter nach der Einschränkung entweder nach Name oder nach ID.
  3. Klicken Sie auf den Namen der Einschränkung.
  4. Klicken Sie auf Bearbeiten, um die Einschränkung zu bearbeiten.
  5. Wählen Sie auf der Seite Bearbeiten die Option Anpassen aus.
  6. Wählen Sie unter Erzwingung eine Erzwingungsoption aus:
    • Wählen Sie An, um die Erzwingung dieser Einschränkung zu aktivieren.
    • Wählen Sie Aus, um die Erzwingung dieser Einschränkung zu deaktivieren.
  7. Nachdem Sie Änderungen vorgenommen haben, klicken Sie auf Speichern, um die Einstellungen für die Einschränkung zu übernehmen.

Eine ausführliche Anleitung zur Anpassung von Organisationsrichtlinien mithilfe der Google Cloud Console finden Sie unter Richtlinien für boolesche Einschränkungen anpassen.

gcloud

Verwenden Sie den Befehl gcloud resource-manager org-policies enable-enforce so, um die Erzwingung einer booleschen Einschränkung für eine Organisationsrichtlinie zu aktivieren.

So aktivieren Sie die Einschränkung für die Sperre eines freigegebenen VPC-Projekts:

gcloud resource-manager org-policies enable-enforce \
    --organization ORGANIZATION_ID \
    constraints/compute.restrictXpnProjectLienRemoval

So deaktivieren Sie das globale Load-Balancing:

gcloud resource-manager org-policies enable-enforce \
    --organization ORGANIZATION_ID \
    constraints/compute.disableGlobalLoadBalancing

Eine ausführliche Anleitung zur Arbeit mit booleschen Einschränkungen in gcloud finden Sie unter Einschränkungen verwenden.

Listeneinschränkungen mit Organisationsrichtlinien einrichten

Console

Führen Sie die folgenden Schritte aus, um über die Console eine Organisationsrichtlinie festzulegen:

  1. Wechseln Sie in der Google Cloud Console zur Seite Organisationsrichtlinien.

    Zu den Organisationsrichtlinien

  2. Suchen Sie im Feld Filter nach der Einschränkung entweder nach Name oder nach ID. Wenn Sie beispielsweise Hostprojekte von freigegebenen VPCs einschränken möchten, suchen Sie nach der ID: constraints/compute.restrictSharedVpcHostProjects.
  3. Klicken Sie auf den Namen der Einschränkung.
  4. Klicken Sie auf Bearbeiten, um die Einschränkung zu bearbeiten.
  5. Zum Erstellen einer benutzerdefinierten Richtlinie wählen Sie Anpassen aus und geben die Zulassungsliste oder Sperrliste für Ressourcen an. Eine ausführlichere Anleitung zum Anpassen von Organisationsrichtlinien mithilfe der Google Cloud Console finden Sie unter Richtlinien für Listeneinschränkungen anpassen.
  6. Nachdem Sie Änderungen vorgenommen haben, klicken Sie auf Speichern, um die Einstellungen für die Einschränkung zu übernehmen.

gcloud

Dieser Abschnitt enthält einige Konfigurationsbeispiele, die Ihnen zeigen, wie Sie eine Organisationsrichtliniendatei mit Listeneinschränkung erstellen und festlegen. Eine ausführlichere Anleitung zum Arbeiten mit Listeneinschränkungen und Organisationsrichtlinien in gcloud finden Sie unter Einschränkungen verwenden.

  1. Erstellen Sie die Richtliniendatei. Verwenden Sie die folgenden JSON-Konfigurationsbeispiele, um eine eigene Richtliniendatei anhand Ihrer Anforderungen zu erstellen.

    • Load-Balancer-Typen einschränken

      • Nur einen Teil der Load-Balancer zulassen

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "allowedValues": [
            "INTERNAL_TCP_UDP",
            "INTERNAL_HTTP_HTTPS",
            "EXTERNAL_NETWORK_TCP_UDP",
            "EXTERNAL_TCP_PROXY",
            "EXTERNAL_SSL_PROXY",
            "EXTERNAL_HTTP_HTTPS"
          ]
        }
        }
        
      • Alle externen Load-Balancer ablehnen

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "deniedValues": [
            "in:EXTERNAL"
          ]
        }
        }
        
      • Alle Load-Balancer ablehnen

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "allValues": "DENY"
        }
        }
        
    • Protokollweiterleitungstypen einschränken

      • Alle Protokollweiterleitungen ablehnen

        {
        "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes",
        "listPolicy": {
          "allValues": "DENY"
        }
        }
        
      • Nur interne Protokollweiterleitung zulassen

        {
        "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes",
        "listPolicy": {
          "deniedValues": [
            "EXTERNAL"
          ]
        }
        }
        
    • Freigegebene VPC-Konfigurationen einschränken

      • Freigegebene VPC-Hostprojekte einschränken

        {
        "constraint": "constraints/compute.restrictSharedVpcHostProjects",
        "listPolicy": {
          "allowedValues": [
            "under:folders/FOLDER_ID",
            "under:projects/PROJECT_ID"
          ]
        }
        }
        
      • Freigegebene VPC-Subnetzwerke einschränken

        {
        "constraint": "constraints/compute.restrictSharedVpcSubnetworks",
        "listPolicy": {
          "deniedValues": [
            "under:organizations/ORGANIZATION_ID",
            "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME"
          ]
        }
        }
        
      • Backend-Dienste von freigegebenen VPCs einschränken

        {
        "constraint": "constraints/compute.restrictCrossProjectServices",
        "listPolicy": {
          "allowedValues": [
            "under:folders/FOLDER_ID",
            "under:projects/PROJECT_ID",
            "projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME"
          ]
        }
        }
        
  2. Die Einschränkung auf eine Ressource anwenden: entweder eine Organisation, einen Ordner oder ein Projekt.

    Führen Sie für Organisationen den folgenden Befehl aus:

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --organization=ORGANIZATION_ID
    

    Führen Sie den folgenden Befehl aus, um einen Ordner zu erstellen:

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --folder=FOLDER_ID
    

    Führen Sie für Projekte den folgenden Befehl aus, um ein Projekt zu erstellen:

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --project=PROJECT_ID
    

    Dabei gilt:

Nächste Schritte