Einschränkungen verwenden

In dieser Anleitung wird erläutert, wie eine Organisationsrichtlinie mit einer bestimmten Einschränkung erstellt wird. Die in den Beispielen auf dieser Seite verwendeten Einschränkungen sind keine tatsächlichen Einschränkungen, sondern Beispiele, die zu Lernzwecken generalisiert wurden.

Weitere Informationen zu Einschränkungen und den Problemen, die damit gelöst werden können, finden Sie in der Liste aller Einschränkungen für Organisationsrichtliniendienste.

Vorbereitung

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Organization policy administrator (roles/orgpolicy.policyAdmin) für die Organisation zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Organisationsrichtlinien benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält Berechtigungen zum Verwalten von Organisationsrichtlinien. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Verwalten von Organisationsrichtlinien erforderlich:

  • orgpolicy.constraints.list
  • orgpolicy.policies.create
  • orgpolicy.policies.delete
  • orgpolicy.policies.list
  • orgpolicy.policies.update
  • orgpolicy.policy.get
  • orgpolicy.policy.set

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Listeneinschränkungen mit einer Organisationsrichtlinie verwenden

Sie können für die Organisationsressource eine Organisationsrichtlinie festlegen, die mit einer Listeneinschränkung den Zugriff auf einen bestimmten Dienst verweigert. Der folgende Prozess wird beschrieben, wie Sie eine Organisationsrichtlinie mit der Google Cloud CLI festlegen. Eine Anleitung zum Aufrufen und Festlegen von Organisationsrichtlinien mithilfe der Google Cloud Console finden Sie unter Richtlinien erstellen und verwalten.

Organisationsrichtlinien mit Listeneinschränkungen dürfen nicht mehr als 500 einzelne zulässige oder abgelehnte Werte haben und dürfen nicht größer als 32 KB sein. Wenn ein erstellt oder aktualisiert wurde, sodass sie mehr als 500 Werte hat, oder größer als 32 KB ist, kann sie nicht gespeichert werden gibt einen Fehler zurück.

Durchsetzung für die Organisationsressource einrichten

So richten Sie die Erzwingung für eine Organisation mit der gcloud CLI ein: diese Schritte:

  1. Rufen Sie mit dem Befehl describe die aktuelle Richtlinie für die Organisationsressource ab. Dieser Befehl gibt die Richtlinie zurück, die direkt auf diese Ressource angewendet wird:

    gcloud org-policies describe \
      LIST_CONSTRAINT --organization=ORGANIZATION_ID
    

    Ersetzen Sie Folgendes:

    • ORGANIZATION_ID: eine eindeutige Kennzeichnung für die Organisationsressource. Organisations-ID ist als Dezimalzahl formatiert und darf keine führenden Nullen enthalten.

    • LIST_CONSTRAINT: die Listeneinschränkung für die den Sie erzwingen möchten. Mit der Einschränkung constraints/gcp.restrictNonCmekServices wird beispielsweise festgelegt, welche Dienste Ressourcen ohne vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) erstellen können.

    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.

    In der Antwort wird die aktuelle Organisationsrichtlinie zurückgegeben, sofern vorhanden. Beispiel:

    name: projects/841166443394/policies/gcp.resourceLocations
    spec:
      etag: BwW5P5cEOGs=
      inheritFromParent: true
      rules:
      - condition:
          expression: resource.matchTagId("tagKeys/1111", "tagValues/2222")
        values:
          allowedValues:
          - in:us-east1-locations
      - condition:
          expression: resource.matchTag("123/env", "prod")
        values:
          allowedValues:
          - in:us-west1-locations
      - values:
          deniedValues:
          - in:asia-south1-locations
      updateTime: '2021-01-19T12:00:51.095Z'
    

    Wenn keine Richtlinie festgelegt wurde, wird der Fehler NOT_FOUND zurückgegeben:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Legen Sie die Richtlinie für die Organisation mit dem Befehl set-policy fest. Dadurch werden alle an die Ressource angehängten Richtlinien überschrieben.

    1. Erstellen Sie die temporäre Datei /tmp/policy.yaml zum Speichern der Richtlinie:

      name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
      spec:
        rules:
        - values:
            deniedValues:
            - VALUE_A
      
    2. Führen Sie den Befehl set-policy aus:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. Rufen Sie die aktuell geltende Richtlinie mit describe --effective auf: Dadurch wird die Organisationsrichtlinie zurückgegeben, wie sie zu diesem Zeitpunkt in der Ressourcenhierarchie einschließlich Übernahme evaluiert wird.

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    Die Ausgabe des Befehls sieht so aus:

    name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
    spec:
      etag: BwVJi0OOESU=
      rules:
      - values:
          deniedValues:
          - VALUE_A
    

    Da diese Organisationsrichtlinie auf Organisationsebene festgelegt wurde, wird sie von allen untergeordneten Ressourcen, für die eine Richtlinienübernahme möglich ist, übernommen.

Es kann bis zu 15 Minuten dauern, bis Änderungen an Organisationsrichtlinien vollständig erzwungen werden.

Erzwingung für eine Hierarchieunterstruktur einrichten

Listeneinschränkungen nehmen explizit definierte Werte an, um zu bestimmen, welche Ressourcen zugelassen oder abgelehnt werden sollen. Einige Einschränkungen können auch Werte akzeptieren, die das Präfix under: verwenden, welches eine Unterstruktur mit dieser Ressource als Root angibt. Wenn Sie das Präfix under: für einen zulässigen oder abgelehnten Wert verwenden, wirkt sich die Organisationsrichtlinie auf diese Ressource und alle untergeordneten Elemente aus. Informationen zu den Einschränkungen, die die Verwendung des Präfixes under: ermöglichen, finden Sie auf der Seite Einschränkungen für Organisationsrichtlinien.

Ein Wert, der das Präfix under: verwendet, wird als Hierarchie-Unterstrukturstring bezeichnet. Ein Hierarchie-Unterstrukturstring gibt den Typ der Ressource an, auf die sie angewendet wird. Wenn Sie beispielsweise beim Einrichten der Einschränkung constraints/compute.storageResourceUseRestrictions den Unterstrukturstring projects/PROJECT_ID anwenden, wird die Verwendung des Compute Engine-Speichers für PROJECT_ID und alle untergeordneten Elemente entweder zugelassen oder abgelehnt.

  1. Rufen Sie mit dem Befehl describe die aktuelle Richtlinie für die Organisationsressource ab:

    gcloud org-policies describe \
      LIST_CONSTRAINT \
      --organization=ORGANIZATION_ID
    

    Ersetzen Sie Folgendes:

    • ORGANIZATION_IDist eine eindeutige Kennzeichnung für die Organisationsressource.

    • LIST_CONSTRAINT ist die Listeneinschränkung für den Dienst, den Sie erzwingen möchten.

    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.

    Wenn keine Richtlinie festgelegt wurde, wird der Fehler NOT_FOUND zurückgegeben:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Legen Sie die Richtlinie für das Projekt mit dem Befehl set-policy fest. Das Präfix under: legt die Einschränkung fest, mit der die angegebene Ressource und alle ihre untergeordneten Ressourcen abgelehnt werden.

    1. Erstellen Sie die temporäre Datei /tmp/policy.yaml zum Speichern der Richtlinie:

      name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
      spec:
        rules:
        - values:
            deniedValues:
            - under:folders/VALUE_A
      
    2. Führen Sie den Befehl set-policy aus:

      gcloud org-policies set-policy /tmp/policy.yaml
      

    Wobei:

    • under: ist ein Präfix, das angibt, dass es sich um einen Unterstrukturstring handelt.

    • folders/VALUE_A ist die Ordner-ID der Stammressource, die Sie ablehnen möchten. Diese Ressource und alle untergeordneten Elemente in der Ressourcenhierarchie werden abgelehnt.

    Sie können das Präfix under: auch wie in den folgenden Beispielen auf Organisationen und Projekte anwenden:

    • under:organizations/VALUE_X

    • under:projects/VALUE_Y

  3. Rufen Sie die aktuell geltende Richtlinie mit describe --effective auf:

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    Die Ausgabe des Befehls sieht so aus:

    name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - values:
          deniedValues:
          - under:folders/VALUE_A
    

    Die Richtlinie führt jetzt eine Evaluierung durch, nach der der Ordner VALUE_A und alle seine untergeordneten Ressourcen abgelehnt werden.

Es kann bis zu 15 Minuten dauern, bis Änderungen an Organisationsrichtlinien vollständig erzwungen werden.

Organisationsrichtlinie für ein Projekt zusammenführen

Sie können eine Organisationsrichtlinie für eine Ressource festlegen. Diese wird dann mit einer beliebigen Richtlinie, die aus der übergeordneten Ressource übernommen wurde, zusammengeführt. Die zusammengeführte Richtlinie wird dann evaluiert, um eine neue geltende Richtlinie auf Grundlage der Regeln für die Übernahme zu erstellen.

  1. Rufen Sie die aktuelle Richtlinie für die Ressource mit dem Befehl describe ab:

    gcloud org-policies describe \
      LIST_CONSTRAINT \
      --project=PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die eindeutige Kennzeichnung Ihres Projekts.

    • LIST_CONSTRAINT: die Listeneinschränkung für die den Sie erzwingen möchten.

    Wenn keine Richtlinie festgelegt wurde, wird der Fehler NOT_FOUND zurückgegeben:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Rufen Sie die aktuell geltende Richtlinie mit dem Befehl describe --effective auf:

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    Die Ausgabe des Befehls enthält einen abgelehnten Wert, der aus der Organisationsressource übernommen wird:

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - values:
          deniedValues:
          - VALUE_A
    
  3. Legen Sie die Richtlinie für das Projekt mit dem Befehl set-policy fest.

    1. Erstellen Sie die temporäre Datei /tmp/policy.yaml zum Speichern der Richtlinie:

      name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
      spec:
        inheritFromParent: true
        rules:
        - values:
            deniedValues:
            - VALUE_B
            - VALUE_C
      
    2. Führen Sie den Befehl set-policy aus:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  4. Verwenden Sie noch einmal den Befehl describe --effective, um die aktualisierte Richtlinie aufzurufen:

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    Die Ausgabe des Befehls enthält das aktuelle Ergebnis der Richtlinienzusammenführung aus der Ressource und der übergeordneten Ressource:

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - values:
          deniedValues:
            - VALUE_A
            - VALUE_B
            - VALUE_C
    

Es kann bis zu 15 Minuten dauern, bis Änderungen an Organisationsrichtlinien vollständig erzwungen werden.

Standardverhalten der Einschränkung wiederherstellen

Mit dem Befehl reset können Sie die Richtlinie zurücksetzen, um das Standardverhalten der Einschränkung zu verwenden. Eine Liste aller verfügbaren Einschränkungen und ihrer Standardwerte finden Sie unter Einschränkungen für Organisationsrichtlinien. Im folgenden Beispiel wird davon ausgegangen, dass beim Standardverhalten der Einschränkung alle Werte zugelassen werden.

  1. Rufen Sie die geltende Richtlinie für das Projekt ab, um die aktuelle zusammengeführte Richtlinie anzuzeigen:

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    Ersetzen Sie PROJECT_ID durch die eindeutige Kennung Ihres Projekts. Die Ausgabe des Befehls sieht so aus:

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - values:
          deniedValues:
          - VALUE_A
          - VALUE_B
          - VALUE_C
    
  2. Setzen Sie die Organisationsrichtlinie mit dem Befehl reset zurück.

    gcloud org-policies reset LIST_CONSTRAINT \
        --project=PROJECT_ID
    
  3. Rufen Sie die geltende Richtlinie ab, um das Standardverhalten zu überprüfen:

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    In der Ausgabe des Befehls werden alle Werte zugelassen:

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - allowAll: true
    

Es kann bis zu 15 Minuten dauern, bis Änderungen an Organisationsrichtlinien vollständig erzwungen werden.

Organisationsrichtlinie löschen

Sie können eine Organisationsrichtlinie aus einer Ressource löschen. Eine Ressource, die keine Gruppe von Organisationsrichtlinien umfasst, übernimmt alle Richtlinien der übergeordneten Ressource. Wenn Sie die Organisationsrichtlinie für die Organisationsressource löschen, entspricht die geltende Richtlinie dem Standardverhalten der Einschränkung.

In den folgenden Schritten wird beschrieben, wie Sie eine Organisationsrichtlinie für eine Organisation löschen.

  1. Löschen Sie die Richtlinie für die Organisationsressource mithilfe von delete Befehl:

    gcloud org-policies delete \
      LIST_CONSTRAINT \
      --organization=ORGANIZATION_ID
    

    Ersetzen Sie ORGANIZATION_ID durch die eindeutige Kennzeichnung der Organisationsressource. Die Ausgabe von lautet der Befehl:

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT].
    {}
    
  2. Rufen Sie die geltende Richtlinie für die Organisation ab, um sicherzustellen, dass sie nicht erzwungen wird:

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    Die Ausgabe des Befehls sieht so aus:

    name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - allowAll: true
    

In den folgenden Schritten wird beschrieben, wie eine Organisationsrichtlinie für ein Projekt gelöscht wird:

  1. Löschen Sie die Richtlinie für ein Projekt mit dem Befehl delete:

    gcloud org-policies delete \
      LIST_CONSTRAINT \
      --project=PROJECT_ID
    

    Dabei ist PROJECT_ID die eindeutige Kennzeichnung des Projekts. Die Ausgabe des Befehls sieht so aus:

    Deleted policy
    [projects/PROJECT_ID/policies/LIST_CONSTRAINT].
    {}
    
  2. Rufen Sie die geltende Richtlinie für das Projekt ab, um sicherzustellen, dass sie nicht erzwungen wird.

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    Die Ausgabe des Befehls sieht so aus:

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - allowAll: true
    

Es kann bis zu 15 Minuten dauern, bis Änderungen an Organisationsrichtlinien vollständig erzwungen werden.

Boolesche Einschränkungen in Organisationsrichtlinien verwenden

Durchsetzung für die Organisationsressource einrichten

Sie können eine Organisationsrichtlinie für Ihre Organisationsressource festlegen, um eine boolesche Einschränkung zu erzwingen. Im Folgenden wird beschrieben, wie Sie eine Organisation mithilfe der Google Cloud CLI festlegen. Eine Anleitung zum Aufrufen und Festlegen von Organisationsrichtlinien mithilfe der Google Cloud Console finden Sie unter Richtlinien erstellen und verwalten.

  1. Rufen Sie mit dem Befehl describe die aktuelle Richtlinie für die Organisationsressource ab:

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT \
      --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID ersetzen durch die eindeutige Kennung der Organisationsressource. 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.

    Wenn keine Richtlinie festgelegt wurde, wird der Fehler NOT_FOUND zurückgegeben:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Legen Sie die Richtlinie für das Projekt mit dem Befehl set-policy fest.

    1. Erstellen Sie die temporäre Datei /tmp/policy.yaml zum Speichern der Richtlinie:

      name: organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT
      spec:
        rules:
        - enforce: true
      
    2. Führen Sie den Befehl set-policy aus:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. Rufen Sie die aktuell geltende Richtlinie mit describe --effective auf:

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    Die Ausgabe des Befehls sieht so aus:

    name: organizations/ORGANIZATION_ID/policies/BOOLEAN_POLICY
    spec:
      rules:
      - enforce: true
    

Es kann bis zu 15 Minuten dauern, bis Änderungen an Organisationsrichtlinien vollständig erzwungen werden.

Organisationsrichtlinie für ein Projekt überschreiben

Wenn Sie die Organisationsrichtlinie für ein Projekt überschreiben möchten, legen Sie eine Richtlinie fest, die die Erzwingung der booleschen Einschränkung für alle Ressourcen in der Hierarchie unter dem Projekt deaktiviert.

  1. Rufen Sie die aktuelle Richtlinie für die Ressource ab, um zu zeigen, dass sie leer ist.

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT \
      --project=PROJECT_ID
    

    Dabei ist PROJECT_ID die eindeutige Kennzeichnung des Projekts.

    Wenn keine Richtlinie festgelegt wurde, wird der Fehler NOT_FOUND zurückgegeben:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Rufen Sie die geltende Richtlinie für das Projekt ab, um zu bestätigen, dass die Einschränkung für dieses Projekt erzwungen wird.

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    Die Ausgabe des Befehls sieht so aus:

    name: projects/PROJECT_ID/policies/BOOLEAN_POLICY
    spec:
      rules:
      - enforce: true
    
  3. Legen Sie die Richtlinie für das Projekt mit dem Befehl set-policy fest.

    1. Erstellen Sie die temporäre Datei /tmp/policy.yaml zum Speichern der Richtlinie:

      name: projects/PROJECT_ID/policies/BOOLEAN_CONSTRAINT
      spec:
        rules:
        - enforce: false
      
    2. Führen Sie den Befehl set-policy aus:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  4. Rufen Sie die geltende Richtlinie ab, um zu zeigen, dass sie für das Projekt nicht mehr erzwungen wird.

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    Die Ausgabe des Befehls sieht so aus:

    name: organizations/ORGANIZATION_ID/policies/BOOLEAN_POLICY
    spec:
      rules:
      - enforce: false
    

Es kann bis zu 15 Minuten dauern, bis Änderungen an Organisationsrichtlinien vollständig erzwungen werden.

Organisationsrichtlinie löschen

Sie können eine Organisationsrichtlinie aus einer Ressource löschen. Eine Ressource, die keine Gruppe von Organisationsrichtlinien umfasst, übernimmt alle Richtlinien der übergeordneten Ressource. Wenn Sie die Organisationsrichtlinie für die Organisationsressource löschen, entspricht die geltende Richtlinie dem Standardverhalten der Einschränkung.

In den folgenden Schritten wird beschrieben, wie eine Organisationsrichtlinie für eine Organisation und ein Projekt gelöscht wird.

  1. Löschen Sie die Richtlinie mit dem Befehl delete aus der Organisationsressource:

    gcloud org-policies delete \
      BOOLEAN_CONSTRAINT \
      --organization=ORGANIZATION_ID
    

    Ersetzen Sie ORGANIZATION_ID durch eine eindeutige Kennzeichnung für die Organisationsressource. Die Ausgabe des Befehls sieht so aus:

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT].
    {}
    
  2. Rufen Sie die geltende Richtlinie für die Organisation ab, um sicherzustellen, dass sie nicht erzwungen wird:

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    Wenn keine Richtlinie festgelegt wurde, wird der Fehler NOT_FOUND zurückgegeben:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  3. Löschen Sie die Organisationsrichtlinie mithilfe des Befehls delete aus dem Projekt:

    gcloud org-policies delete \
      BOOLEAN_CONSTRAINT \
      --project=PROJECT_ID
    

    Die Ausgabe des Befehls sieht so aus:

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT].
    {}
    
  4. Rufen Sie die geltende Richtlinie für das Projekt ab, um sicherzustellen, dass sie nicht erzwungen wird.

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    PROJECT_ID ersetzen durch die eindeutige Kennung Ihres Projekts.

    Wenn keine Richtlinie festgelegt wurde, wird der Fehler NOT_FOUND zurückgegeben:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    

Es kann bis zu 15 Minuten dauern, bis Änderungen an Organisationsrichtlinien vollständig erzwungen werden.