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
Lesen Sie die Seite Einführung in den Organisationsrichtliniendienst, um Informationen zur Funktionsweise von Organisationsrichtlinien zu erhalten.
Lesen Sie die Seite Informationen zu Evaluierungen der Hierarchie, um Informationen zur Übernahme von Richtlinien zu erhalten.
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:
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änkungconstraints/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.
Legen Sie die Richtlinie für die Organisation mit dem Befehl
set-policy
fest. Dadurch werden alle an die Ressource angehängten Richtlinien überschrieben.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
Führen Sie den Befehl
set-policy
aus:gcloud org-policies set-policy /tmp/policy.yaml
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.
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_ID
ist 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.
Legen Sie die Richtlinie für das Projekt mit dem Befehl
set-policy
fest. Das Präfixunder:
legt die Einschränkung fest, mit der die angegebene Ressource und alle ihre untergeordneten Ressourcen abgelehnt werden.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
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
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.
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.
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
Legen Sie die Richtlinie für das Projekt mit dem Befehl
set-policy
fest.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
Führen Sie den Befehl
set-policy
aus:gcloud org-policies set-policy /tmp/policy.yaml
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.
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
Setzen Sie die Organisationsrichtlinie mit dem Befehl
reset
zurück.gcloud org-policies reset LIST_CONSTRAINT \ --project=PROJECT_ID
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.
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]. {}
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:
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]. {}
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.
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.
Legen Sie die Richtlinie für das Projekt mit dem Befehl
set-policy
fest.Erstellen Sie die temporäre Datei
/tmp/policy.yaml
zum Speichern der Richtlinie:name: organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT spec: rules: - enforce: true
Führen Sie den Befehl
set-policy
aus:gcloud org-policies set-policy /tmp/policy.yaml
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.
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.
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
Legen Sie die Richtlinie für das Projekt mit dem Befehl
set-policy
fest.Erstellen Sie die temporäre Datei
/tmp/policy.yaml
zum Speichern der Richtlinie:name: projects/PROJECT_ID/policies/BOOLEAN_CONSTRAINT spec: rules: - enforce: false
Führen Sie den Befehl
set-policy
aus:gcloud org-policies set-policy /tmp/policy.yaml
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.
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]. {}
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.
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]. {}
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.