Mit dem Policy Simulator für Organisationsrichtlinien können Sie sich eine Vorschau der Auswirkungen einer neuen benutzerdefinierten Einschränkung oder Organisationsrichtlinie ansehen, die eine benutzerdefinierte oder verwaltete Einschränkung erzwingt, bevor sie in Ihrer Produktionsumgebung erzwungen wird. Der Policy Simulator stellt eine Liste der Ressourcen bereit, die gegen die vorgeschlagene Richtlinie verstoßen, bevor sie erzwungen wird. So können Sie diese Ressourcen neu konfigurieren, Ausnahmen beantragen oder den Geltungsbereich Ihrer Organisationsrichtlinie ändern, ohne die Entwickler zu stören oder Ihre Umgebung zu beeinträchtigen.
Auf dieser Seite wird beschrieben, wie Sie eine Änderung an einer Organisationsrichtlinie mit dem Policy Simulator testen. Außerdem werden die Ergebnisse der Simulation und die Anwendung der getesteten Organisationsrichtlinie auf Anfrage erläutert.
Hinweise
-
Wenn Sie die Google Cloud CLI verwenden, legen Sie das Projekt fest, das Sie für API-Aufrufe verwenden möchten:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_ID
durch den Namen oder die ID des Projekts. -
Enable the Policy Simulator and Resource Manager APIs.
- Optional: Einführung in den Organisationsrichtliniendienst
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle OrgPolicy Simulator Admin (roles/policysimulator.orgPolicyAdmin
) für die Organisation zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Ausführen und Zugriff auf Simulationen benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Ausführen und Zugriff auf Simulationen erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Ausführen und Zugriff auf Simulationen erforderlich:
-
orgpolicy.constraints.list
-
orgpolicy.customConstraints.get
-
orgpolicy.policies.list
-
cloudasset.assets.searchAllResources
-
cloudasset.assets.listResource
-
cloudasset.assets.listOrgPolicy
-
policysimulator.orgPolicyViolationsPreviews.list
-
policysimulator.orgPolicyViolationsPreviews.get
-
policysimulator.orgPolicyViolationsPreviews.create
-
policysimulator.orgPolicyViolations.list
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Richtlinienänderung testen
Sie können eine Änderung an einer benutzerdefinierten Einschränkung, an einer Organisationsrichtlinie, die eine benutzerdefinierte oder verwaltete Einschränkung erzwingt, oder an beiden gleichzeitig testen.
Änderung an einer benutzerdefinierten Einschränkung testen
Console
Wechseln Sie in der Google Cloud Console zur Seite Organisationsrichtlinien.
Klicken Sie oben auf der Seite auf Projektauswahl.
Wählen Sie in der Projektauswahl die Organisationsressource aus.
Wenn Sie eine neue benutzerdefinierte Einschränkung testen möchten, klicken Sie auf
Benutzerdefinierte Einschränkung. Wenn Sie Änderungen an einer vorhandenen benutzerdefinierten Einschränkung vornehmen möchten, wählen Sie sie in der Liste auf der Seite Organisationsrichtlinien aus und klicken Sie dann auf Einschränkung bearbeiten.Erstellen oder aktualisieren Sie die benutzerdefinierte Einschränkung, die Sie testen möchten.
So definieren Sie beispielsweise eine benutzerdefinierte Einschränkung, die das Erstellen von Google Kubernetes Engine-Clusterressourcen einschränkt, wenn die Binärautorisierung nicht aktiviert ist:
Wählen Sie im Feld Ressourcentyp die Option
container.googleapis.com/Cluster
aus.Wählen Sie unter Methode erzwingen die Option Beim Erstellen erzwingen aus.
Klicken Sie auf
Bedingung bearbeiten.Geben Sie im Bereich Bedingung hinzufügen
resource.binaryAuthorization.enabled == true
ein.Klicken Sie auf Speichern.
Wählen Sie unter Aktion die Option Zulassen aus.
Weitere Informationen finden Sie unter Benutzerdefinierte Einschränkungen erstellen und verwalten.
Klicken Sie auf Einschränkung testen.
Wenn es sich um eine neue Einschränkung handelt oder um eine Einschränkung, die nicht durch eine Organisationsrichtlinie erzwungen wird, müssen Sie die Organisationsrichtlinie definieren.
Wählen Sie im Feld Bereich auswählen die Ressource aus, für die Sie die benutzerdefinierte Einschränkung testen möchten.
Klicken Sie auf Anpassen.
Klicken Sie auf Regel hinzufügen.
Wählen Sie unter Erzwingung die Option An aus und klicken Sie dann auf Fertig.
Klicken Sie auf Weiter.
Die Seite Simulationsverlauf wird angezeigt. Sie enthält eine Liste der Simulationen, die Sie in den letzten 14 Tagen ausgeführt haben. Weitere Informationen finden Sie auf dieser Seite unter Ergebnisse des Richtliniensimulators.
gcloud
Wenn Sie eine benutzerdefinierte Einschränkung testen möchten, erstellen Sie eine JSON- oder YAML-Datei, in der die benutzerdefinierte Einschränkung definiert ist, die Sie testen möchten.
Eine benutzerdefinierte Einschränkung, die das Erstellen von Google Kubernetes Engine-Clusterressourcen einschränkt, bei denen die Binärautorisierung nicht aktiviert ist, sieht beispielsweise so aus:
name: "organizations/ORGANIZATION_ID/customConstraints/custom.EnforceGKEBinaryAuthz" resource_types: "container.googleapis.com/Cluster" method_types: CREATE condition: "resource.binaryAuthorization.enabled == true" action_type: ALLOW
Ersetzen Sie
ORGANIZATION_ID
durch Ihre Organisations-ID, z. B.1234567890123
.Weitere Informationen zum Erstellen benutzerdefinierter Einschränkungen finden Sie unter Benutzerdefinierte Einschränkungen erstellen und verwalten.
Wenn Sie eine Organisationsrichtlinie testen möchten, die eine benutzerdefinierte Einschränkung erzwingt, erstellen Sie eine JSON- oder YAML-Datei, in der die zu testende Organisationsrichtlinie definiert ist.
Eine Organisationsrichtlinie, die das Erstellen von Google Kubernetes Engine-Clusterressourcen einschränkt, bei denen die Binärautorisierung nicht aktiviert ist, sieht beispielsweise so aus:
name: organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz spec: rules: - enforce: true
Ersetzen Sie
ORGANIZATION_ID
durch die Organisations-ID, z. B.1234567890123
.Sie können eine Organisationsrichtlinie testen, die eine benutzerdefinierte Einschränkung bedingt auf Grundlage des Vorhandenseins eines bestimmten Tags erzwingt. Dazu fügen Sie eine Bedingung in die JSON- oder YAML-Datei ein, die die Organisationsrichtlinie definiert.
Mit der folgenden Organisationsrichtlinie wird beispielsweise die Erstellung von Google Kubernetes Engine-Clusterressourcen eingeschränkt, bei denen die Binärautorisierung nicht aktiviert ist, mit Ausnahme von Ressourcen, die das Tag
env=dev
haben.name: organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz spec: rules: - condition: expression: "resource.matchTag('env', 'dev')" enforce: false - enforce: true
Ersetzen Sie
ORGANIZATION_ID
durch Ihre Organisations-ID, z. B.1234567890123
.Weitere Informationen zu bedingten Organisationsrichtlinien finden Sie unter Organisationsrichtlinie mit Tags festlegen.
Sie können die Auswirkungen des Löschens einer Organisationsrichtlinie testen, die eine benutzerdefinierte Einschränkung erzwingt. Erstellen Sie dazu eine JSON- oder YAML-Datei, in der die Organisationsrichtlinie ohne festgelegte Regeln definiert ist, mit der Ausnahme, dass die Richtlinie von der übergeordneten Ressource übernommen wird.
Mit der folgenden Organisationsrichtlinie wird beispielsweise das Löschen einer vorhandenen benutzerdefinierten Einschränkung für
custom.EnforceGKEBinaryAuthz
simuliert.name: organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz spec: inheritFromParent: true
Führen Sie den folgenden Befehl aus, um die Änderung an der benutzerdefinierten Einschränkung, der Organisationsrichtlinie oder beiden zu simulieren:
gcloud policy-intelligence simulate orgpolicy \ --organization=ORGANIZATION_ID \ --custom-constraints=CONSTRAINT_PATH \ --policies=POLICY_PATH
Ersetzen Sie Folgendes:
ORGANIZATION_ID
: Ihre Organisations-ID, z. B.1234567890123
. Das Simulieren von Änderungen für mehrere Organisationen wird nicht unterstützt.CONSTRAINT_PATH
: Der vollständige Pfad zur benutzerdefinierten Einschränkung, die Sie erstellt oder aktualisiert haben. Wenn Sie beispielsweise das Flagtmp/constraint.yaml
auf--policies
setzen, müssen Sie das Flag--custom-constraints
nicht festlegen.POLICY_PATH
: Der vollständige Pfad zur von Ihnen erstellten oder aktualisierten Organisationsrichtlinie. Wenn Sie beispielsweise das Flagtmp/policy.yaml
auf--custom-constraints
setzen, müssen Sie das Flag--policies
nicht festlegen.
Nach einigen Minuten gibt der Befehl eine Liste mit Ressourcen aus, die gegen die Änderungen an der benutzerdefinierten Einschränkung, der Organisationsrichtlinie oder beide verstoßen würden.
Die Ergebnisse können auch in der Google Cloud Console angezeigt werden. Weitere Informationen zum Lesen der Ergebnisse finden Sie unter Ergebnisse des Richtliniensimulators auf dieser Seite.
Das folgende Beispiel zeigt eine Antwort für eine Simulation von Richtlinien für Organisationen.
Diese Simulation umfasst eine benutzerdefinierte Einschränkung, die das Erstellen von Google Kubernetes Engine-Clusterressourcen einschränkt, bei denen die Binärautorisierung nicht aktiviert ist. Wenn in diesem Fall die vorgeschlagene Änderung angewendet wird, verstoßen zwei Clusterressourcen gegen die Richtlinie: orgpolicy-test-cluster
im Projekt simulator-test-project
und autopilot-cluster-1
im Projekt orgpolicy-test-0
.
Waiting for operation [organizations/012345678901/locations/global/orgPolic
yViolationsPreviews/85be9a2d-8c49-470d-a65a-d0cb9ffa8f83/operations/1883a83
c-c448-42e5-a7c5-10a850928f06] to complete...done.
---
customConstraint:
actionType: ALLOW
condition: resource.binaryAuthorization.enabled == true
methodTypes:
- CREATE
name: organizations/012345678901/customConstraints/custom.EnforceGKEBinaryAuthz
resourceTypes:
- container.googleapis.com/Cluster
name: organizations/012345678901/locations/global/orgPolicyViolationsPreviews/3dd47fd3-6df1-4156-8f10-413a3fc0ed83/orgPolicyViolations/b9fd23a5-7163-46de-9fec-7b9aa6af1113
resource:
ancestors:
- organizations/012345678901
- projects/456789012345
assetType: container.googleapis.com/Cluster
resource: //container.googleapis.com/projects/simulator-test-project/locations/us-central1/clusters/orgpolicy-test-cluster
---
customConstraint:
actionType: ALLOW
condition: resource.binaryAuthorization.enabled == true
methodTypes:
- CREATE
name: organizations/012345678901/customConstraints/custom.EnforceGKEBinaryAuthz
resourceTypes:
- container.googleapis.com/Cluster
name: organizations/012345678901/locations/global/orgPolicyViolationsPreviews/3dd47fd3-6df1-4156-8f10-413a3fc0ed83/orgPolicyViolations/e73896e6-7613-4a8d-8436-5df7a6455121
resource:
ancestors:
- organizations/012345678901
- folders/789012345678
- projects/456789012345
assetType: container.googleapis.com/Cluster
resource: //container.googleapis.com/projects/orgpolicy-test-0/locations/us-central1/clusters/autopilot-cluster-1
Änderung an einer verwalteten Einschränkung testen
Console
- Wechseln Sie in der Google Cloud Console zur Seite Organisationsrichtlinien.
Zu den Organisationsrichtlinien
Wählen Sie in der Projektauswahl das Projekt, den Ordner oder die Organisation aus, für die Sie die Organisationsrichtlinie bearbeiten möchten.
Auf der Seite Organisationsrichtlinien wird eine filterbare Liste der Einschränkungen für Organisationsrichtlinien angezeigt, die für diese Ressource verfügbar sind.
Wählen Sie in der Liste die verwaltete Einschränkung aus, für die Sie die Organisationsrichtlinie aktualisieren möchten. Auf der Seite Richtliniendetails sehen Sie die Quelle dieser Organisationsrichtlinie, die effektive Richtlinienbewertung für diese Ressource und weitere Details zur verwalteten Einschränkung.
Zum Aktualisieren der Organisationsrichtlinie für diese Ressource klicken Sie auf Richtlinie verwalten.
Wählen Sie auf der Seite Richtlinie bearbeiten die Option Richtlinie der übergeordneten Ressource überschreiben aus.
Wählen Sie Regel hinzufügen aus.
Wählen Sie unter Erzwingung aus, ob die Erzwingung dieser Organisationsrichtlinie aktiviert oder deaktiviert werden soll.
Klicken Sie optional auf Bedingung hinzufügen, um die Organisationsrichtlinie von einem Tag abhängig zu machen. Wenn Sie einer Organisationsrichtlinie eine bedingte Regel hinzufügen, müssen Sie mindestens eine bedingungslose Regel hinzufügen, da die Richtlinie sonst nicht gespeichert werden kann. Weitere Informationen finden Sie unter Organisationsrichtlinie mit Tags festlegen.
Klicken Sie auf Änderungen testen.
Die Seite Simulationsverlauf wird angezeigt. Sie enthält eine Liste der Simulationen, die Sie in den letzten 14 Tagen ausgeführt haben. Weitere Informationen finden Sie auf dieser Seite unter Ergebnisse des Richtliniensimulators.
gcloud
Wenn Sie eine Änderung an einer verwalteten Einschränkung testen möchten, erstellen Sie eine JSON- oder YAML-Datei, in der die verwaltete Einschränkung definiert wird, die Sie testen möchten.
name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: ENFORCEMENT_STATE
Ersetzen Sie Folgendes:
RESOURCE_TYPE
mitorganizations
,folders
oderprojects
.RESOURCE_ID
mit Ihrer Organisations-ID, Ordner-ID, Projekt-ID oder Projektnummer, je nach Ressourcentyp, der inRESOURCE_TYPE
angegeben ist.CONSTRAINT_NAME
durch den Namen der verwalteten Einschränkung, die Sie testen möchten. Beispiel:iam.managed.disableServiceAccountKeyCreation
ENFORCEMENT_STATE
mittrue
, um diese Organisationsrichtlinie zu erzwingen, wenn sie festgelegt ist, oderfalse
, um sie zu deaktivieren, wenn sie festgelegt ist.
Optional können Sie der
rules
einencondition
-Block hinzufügen, um die Organisationsrichtlinie von einem Tag abhängig zu machen. Wenn Sie einer Organisationsrichtlinie eine bedingte Regel hinzufügen, müssen Sie mindestens eine bedingungslose Regel hinzufügen, da die Richtlinie sonst nicht gespeichert werden kann. Weitere Informationen finden Sie unter Organisationsrichtlinie mit Tags festlegen.Wenn Sie das Löschen einer Organisationsrichtlinie testen möchten, die eine verwaltete Einschränkung erzwingt, sollten in der JSON- oder YAML-Datei, die die Organisationsrichtlinie definiert, keine Regeln festgelegt sein, mit Ausnahme der Übernahme der Richtlinie aus der übergeordneten Ressource.
Mit der folgenden Organisationsrichtlinie wird beispielsweise das Löschen einer vorhandenen von
iam.managed.disableServiceAccountKeyCreation
verwalteten Einschränkung simuliert.name: organizations/ORGANIZATION_ID/policies/iam.managed.disableServiceAccountKeyCreation spec: inheritFromParent: true
Führen Sie den Befehl
policy-intelligence simulate orgpolicy
aus:gcloud policy-intelligence simulate orgpolicy \ --organization=ORGANIZATION_ID \ --policies=POLICY_PATH
Ersetzen Sie Folgendes:
ORGANIZATION_ID
durch Ihre Organisations-ID, z. B.1234567890123
. Das Simulieren von Änderungen für mehrere Organisationen wird nicht unterstützt.POLICY_PATH
durch den vollständigen Pfad zur YAML-Datei Ihrer Organisationsrichtlinie.
Nach einigen Minuten gibt der Befehl eine Liste mit Ressourcen aus, die gegen die Änderungen an der benutzerdefinierten Einschränkung, der Organisationsrichtlinie oder beide verstoßen würden.
Die Ergebnisse können auch in der Google Cloud Console angezeigt werden. Weitere Informationen zum Lesen der Ergebnisse finden Sie unter Ergebnisse des Richtliniensimulators auf dieser Seite.
Ergebnisse des Policy Simulator
Der Policy Simulator meldet die Ergebnisse einer Änderung an einer benutzerdefinierten Einschränkung oder Organisationsrichtlinie als Liste von Verstößen gegen die simulierte Richtlinie. In der Google Cloud Console werden die Ergebnisse von Simulationen gespeichert, die Sie in den letzten 14 Tagen erstellt haben.
Wenn Sie Simulationsergebnisse aufrufen möchten, rufen Sie die Seite Simulationsverlauf auf.
Wählen Sie eine Simulation aus, um Details zu sehen. Auf der Seite Simulationsbericht sehen Sie eine Vorschau der Verstöße. Dort werden die Gesamtzahl der Verstöße aufgeführt, die durch die neue benutzerdefinierte Einschränkung oder Organisationsrichtlinie verursacht wurden, die Anzahl der Ressourcen, die im Rahmen der Simulation geprüft wurden, und die Uhrzeit, zu der die Simulation abgeschlossen wurde.
Wenn Sie eine benutzerdefinierte Einschränkung simuliert haben, können Sie auf Einschränkungsdetails klicken, um die simulierte Konfiguration aufzurufen. Wenn Sie eine Organisationsrichtlinie simuliert haben, wird auf dem Tab Richtliniendetails die simulierte Konfiguration angezeigt.
Alle Verstöße sind in der Tabelle mit den Ressourcen aufgeführt. Jede Ressource, die gegen die neue benutzerdefinierte Einschränkung oder Organisationsrichtlinie verstößt, wird mit einem Link zum Ressourceneintrag in Cloud Asset Inventory aufgeführt. Projekt-, Ordner- und Organisationsressourcen werden zusammen mit der Summe der Ressourcen angezeigt, die sich in der Hierarchie unter ihnen befinden und gegen die neue benutzerdefinierte Einschränkung oder Organisationsrichtlinie verstoßen.
Getestete Richtlinienänderung anwenden
Nachdem Sie die benutzerdefinierte Einschränkung, die Organisationsrichtlinie oder beides getestet haben, können Sie die benutzerdefinierte Einschränkung einrichten und die Organisationsrichtlinie erzwingen. Sie können alle Ergebnisse des Policy Simulator in der Google Cloud Console aufrufen, unabhängig davon, wie sie generiert wurden. Wenn Ihr Simulationsbericht nur Änderungen an einer Organisationsrichtlinie enthält, können Sie die Organisationsrichtlinie direkt über die Simulationsergebnisse erzwingen. Wenn Sie Teständerungen in mehreren Organisationsrichtlinien erzwingen möchten, verwenden Sie die Google Cloud CLI.
Console
Wenn Sie die Ergebnisse des Policy Simulator für eine benutzerdefinierte Einschränkung erzwingen möchten, rufen Sie die Seite Simulationsverlauf auf.
Wählen Sie den Simulationsbericht für die benutzerdefinierte Einschränkung oder Organisationsrichtlinie aus, die Sie anwenden möchten.
Wenn dieser Simulationsbericht eine benutzerdefinierte Einschränkung enthält, klicken Sie auf Einschränkung speichern.
Wenn dieser Simulationsbericht Änderungen an maximal einer Organisationsrichtlinie enthält, können Sie diese Organisationsrichtlinie als Richtlinie für den Testlauf anwenden, um das Verhalten in der Produktion ohne Risiken zu beobachten. Wählen Sie dazu Richtlinie für den Testlauf festlegen aus. Die Seite Richtliniendetails für die neue Organisationsrichtlinie wird angezeigt.
Sie können die Organisationsrichtlinie sofort erzwingen, indem Sie auf
und dann auf Richtlinie festlegen klicken.
gcloud
Wenn Sie eine benutzerdefinierte Einschränkung erzwingen möchten, müssen Sie sie einrichten, um sie für Organisationsrichtlinien in Ihrer Organisation verfügbar zu machen. Verwenden Sie zum Einrichten einer benutzerdefinierten Einschränkung den Befehl gcloud org-policies set-custom-constraint:
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Ersetzen Sie
CONSTRAINT_PATH
durch den vollständigen Pfad zu Ihrer benutzerdefinierten Einschränkungsdatei. Beispiel:/home/user/customconstraint.yaml
.Danach ist die benutzerdefinierte Einschränkung in der Liste der Google Cloud-Organisationsrichtlinien verfügbar.
Verwenden Sie den Befehl gcloud org-policies set-policy, um die Organisationsrichtlinie festzulegen:
gcloud org-policies set-policy POLICY_PATH
Ersetzen Sie
POLICY_PATH
durch den vollständigen Pfad zur YAML-Datei Ihrer Organisationsrichtlinie.Es kann bis zu 15 Minuten dauern, bis die Richtlinie wirksam wird.
Simulationsergebnisse speichern
Console
Wenn Sie die Google Cloud Console verwenden, können Sie die Policy Simulator-Ergebnisse als CSV-Datei speichern.
Wenn Sie die Ergebnisse des Policy Simulator speichern möchten, rufen Sie die Seite Simulationsverlauf auf.
Wählen Sie den Simulationsbericht aus, den Sie speichern möchten.
Klicken Sie auf
Vollständige Ergebnisse exportieren.
gcloud
Wenn Sie die gcloud CLI verwenden, können Sie die Policy Simulator-Ergebnisse als JSON- oder YAML-Datei speichern.
Standardmäßig werden Testergebnisse in der Google Cloud CLI im YAML-Format ausgegeben. Wenn Sie ein Testergebnis als YAML-Datei speichern möchten, leiten Sie die Ausgabe des Befehls simulate orgpolicy
beim Ausführen der Simulation weiter:
> FILENAME
Ersetzen Sie FILENAME
durch einen Namen für die Ausgabedatei.
Wenn Sie ein Testergebnis als JSON-Datei speichern möchten, fügen Sie beim Ausführen der Simulation dem Befehl simulate orgpolicy
das folgende Flag hinzu:
--format=json > FILENAME
Ersetzen Sie FILENAME
durch einen Namen für die Ausgabedatei.
Nächste Schritte
- Detaillierte Informationen zu Einschränkungen
- Weitere Optionen zum Anpassen von Richtlinien
- Organisationsrichtlinien basierend auf Tags festlegen