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 Load-Balancer-Einstellungen für ein ganzes Projekt, einen ganzen Ordner oder eine ganze Organisation umsetzen.

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:

constraints/compute.restrictLoadBalancerCreationForTypes

Wenn Sie die Einschränkung compute.restrictLoadBalancerCreationForTypes festlegen, geben Sie die nicht zulässigen Cloud Load Balancing-Typen an. Eine Liste der verfügbaren Typen finden Sie unter Load-Balancer-Erstellung einschränken.

Organisationsrichtlinie einrichten

Console

Führen Sie die folgenden Schritte aus, um über die Console die Organisationsrichtlinie zu Cloud Load Balancing festzulegen:

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

    Zur Seite "Organisationsrichtlinien"

  2. Geben Sie im Feld Filter load ein und wählen Sie constraints/compute.restrictLoadBalancerCreationForTypes aus.
  3. Klicken Sie auf Load-Balancer-Erstellung basierend auf Load-Balancer-Typen einschränken.
  4. Klicken Sie auf Bearbeiten, um die vorhandenen Richtlinieneinschränkungen für Cloud Load Balancing zu bearbeiten.
  5. Zum Erstellen einer benutzerdefinierten Richtlinie wählen Sie Anpassen aus.
  6. Nachdem Sie Änderungen vorgenommen haben, klicken Sie auf Speichern, um die Einstellungen für die Einschränkung zu übernehmen.

gcloud

Zum Festlegen der OS Login-Organisationsrichtlinie verwenden Sie den Befehl gcloud resource-manager org-policies enable-enforce.

  1. Ermitteln Sie Ihre Organisations-ID.

    gcloud organizations list
  2. Erstellen Sie die Richtliniendatei, wie in den folgenden Beispielen gezeigt.

    Werte auflisten, die abgelehnt werden sollen

    {
     "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
     "listPolicy": {
       "deniedValues": [
         "INTERNAL_TCP_UDP",
         "INTERNAL_HTTP_HTTPS",
         "EXTERNAL_NETWORK_TCP_UDP",
         "EXTERNAL_TCP_PROXY",
         "EXTERNAL_SSL_PROXY",
         "EXTERNAL_HTTP_HTTPS"
       ]
     }
    }
    

    Alle Weiterleitungsregeln ablehnen

    {
      "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
      "listPolicy": {
        "allValues": "DENY"
      }
    }
    
  3. Legen Sie die Einschränkung in Ihrer Organisation fest. Ersetzen Sie organization-id durch Ihre Organisations-ID.

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

    Sie können die Organisationsrichtlinie mit dem Flag --folder oder --project und der entsprechenden Ordner-ID bzw. Projekt-ID auch auf einen Ordner oder ein Projekt anwenden.

    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
    

    Ersetzen Sie Folgendes:

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, Cloud Load Balancing 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.

Weitere Informationen zum Festlegen von Organisationsrichtlinien, einschließlich Beschreibungen der verfügbaren Optionen, finden Sie unter Organisationsrichtlinien erstellen und verwalten und Einschränkungen verwenden.

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

Weitere Informationen