Änderungen an Organisationsrichtlinien mit Policy Simulator testen

Mit dem Policy Simulator für die Organisationsrichtlinie können Sie sich eine Vorschau der Auswirkungen einer neuen benutzerdefinierten Einschränkung oder Organisationsrichtlinie ansehen, die eine benutzerdefinierte Einschränkung erzwingt, bevor sie für die Produktionsumgebung erzwungen wird. 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 anfordern oder den Bereich Ihrer Organisationsrichtlinie ändern, ohne Ihre Entwickler zu stören oder Ihre Umgebung zu beeinträchtigen.

Auf dieser Seite wird beschrieben, wie Sie eine Änderung an einer Organisationsrichtlinie mit Policy Simulator testen können. Außerdem wird erläutert, wie die Ergebnisse der Simulation interpretiert und die getestete Organisationsrichtlinie bei Bedarf angewendet wird.

Hinweise

  • Wenn Sie die Google Cloud CLI verwenden, legen Sie das Projekt fest, das für API-Aufrufe verwendet werden soll:

    gcloud config set project PROJECT_ID

    Ersetzen Sie PROJECT_ID durch den Namen oder die ID des Projekts.

  • Policy Simulator and Resource Manager APIs aktivieren.

    Aktivieren Sie die APIs

  • Optional: Sehen Sie sich eine Einführung in den Organisationsrichtliniendienst an.

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 erforderlichen Berechtigungen zum Ausführen und Zugreifen auf Simulationen zu erhalten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Ausführen und Zugreifen auf Simulationen erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um Simulationen auszuführen und darauf zuzugreifen:

  • 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

Möglicherweise können Sie 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 Einschränkung erzwingt, oder an beiden gleichzeitig testen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Organisationsrichtlinien auf.

    Zu den Organisationsrichtlinien

  2. Klicken Sie oben auf der Seite auf Projektauswahl.

  3. Wählen Sie in der Projektauswahl die Ressource aus, für die Sie Änderungen an einer Organisationsrichtlinie testen möchten. Wenn Sie Änderungen an einer benutzerdefinierten Einschränkung testen möchten, müssen Sie eine Organisationsressource auswählen.

  4. Wenn Sie eine neue benutzerdefinierte Einschränkung testen möchten, klicken Sie auf Benutzerdefinierte Einschränkung. Wenn Sie eine vorhandene benutzerdefinierte Einschränkung ändern möchten, wählen Sie sie in der Liste auf der Seite Organisationsrichtlinien aus und klicken Sie dann auf Einschränkung bearbeiten.

  5. Erstellen oder aktualisieren Sie die benutzerdefinierte Einschränkung, die Sie testen möchten.

    Wenn Sie beispielsweise eine benutzerdefinierte Einschränkung definieren möchten, die das Erstellen von Google Kubernetes Engine-Clusterressourcen einschränkt, wenn die Binärautorisierung nicht aktiviert ist, gehen Sie so vor:

    1. Wählen Sie im Feld Ressourcentyp die Option container.googleapis.com/Cluster aus.

    2. Wählen Sie unter Erzwingungsmethode die Option Beim Erstellen erzwingen aus.

    3. Klicken Sie auf Bedingung bearbeiten.

    4. Geben Sie im Bereich Bedingung hinzufügen den Wert resource.binaryAuthorization.enabled == true ein.

    5. Klicken Sie auf Speichern.

    6. Wählen Sie unter Aktion die Option Zulassen aus.

    Weitere Informationen finden Sie unter Benutzerdefinierte Einschränkungen erstellen und verwalten.

  6. Klicken Sie auf Einschränkung testen.

  7. Wenn dies eine neue Einschränkung oder eine Einschränkung ist, die nicht durch eine Organisationsrichtlinie erzwungen wird, müssen Sie die Organisationsrichtlinie definieren.

    1. Wählen Sie im Feld Bereich auswählen die Ressource aus, für die Sie diese benutzerdefinierte Einschränkung testen möchten.

    2. Klicken Sie auf Anpassen.

    3. Klicken Sie auf Regel hinzufügen.

    4. Wählen Sie unter Erzwingung die Option Ein aus und klicken Sie dann auf Fertig.

    5. Klicken Sie auf Weiter.

Die Seite Simulationsverlauf wird mit einer Liste der Simulationen angezeigt, die Sie in den letzten 14 Tagen ausgeführt haben. Weitere Informationen finden Sie auf dieser Seite unter Ergebnisse des Policy Simulators.

gcloud

  1. Zum Testen einer benutzerdefinierten Einschränkung erstellen Sie eine JSON- oder YAML-Datei, in der die zu testende benutzerdefinierte Einschränkung definiert ist.

    Eine benutzerdefinierte Einschränkung, die das Erstellen von Google Kubernetes Engine-Clusterressourcen einschränkt, wenn 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.

  2. Wenn Sie eine Organisationsrichtlinie testen möchten, die eine benutzerdefinierte Einschränkung basierend auf einem bestimmten Tag bedingt erzwingt, erstellen Sie eine JSON- oder YAML-Datei, die die zu testende Organisationsrichtlinie definiert.

    Die folgende Organisationsrichtlinie schränkt beispielsweise das Erstellen von Google Kubernetes Engine-Clusterressourcen ein, bei denen die Binärautorisierung nicht aktiviert ist. Ausgenommen hiervon sind Ressourcen, denen das Tag env=dev angehängt ist.

    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.

  3. Zum Testen einer Organisationsrichtlinie, die eine benutzerdefinierte Einschränkung erzwingt, erstellen Sie eine JSON- oder YAML-Datei, die die zu testende Organisationsrichtlinie definiert.

    Beispiel: Eine Organisationsrichtlinie, die das Erstellen von Google Kubernetes Engine-Clusterressourcen einschränkt, bei denen die Binärautorisierung nicht aktiviert ist, sieht in etwa so aus:

    name: "organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz"
    spec:
        rules:
        - enforce: true
    

    Ersetzen Sie ORGANIZATION_ID durch Ihre Organisations-ID, z. B. 1234567890123.

  4. Wenn Sie das Löschen einer Organisationsrichtlinie testen möchten, die eine benutzerdefinierte Einschränkung erzwingt, erstellen Sie eine JSON- oder YAML-Datei, die die Organisationsrichtlinie definiert, aber keine Regeln festlegt und die Richtlinie von ihrer übergeordneten Ressource übernimmt.

    Die folgende Organisationsrichtlinie würde beispielsweise das Löschen einer vorhandenen benutzerdefinierten custom.EnforceGKEBinaryAuthz-Einschränkung simulieren.

    name: "organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz"
    spec:
          inheritFromParent: true
    
  5. Führen Sie den folgenden Befehl aus, um die Änderung an der benutzerdefinierten Einschränkung, der Organisationsrichtlinie oder beidem zu simulieren:

    gcloud beta 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. Die Simulation von Änderungen über mehrere Organisationen hinweg wird nicht unterstützt.

  • CONSTRAINT_PATH: Der vollständige Pfad zur benutzerdefinierten Einschränkung, die Sie erstellt oder aktualisiert haben. Beispiel: tmp/constraint.yaml Wenn Sie das Flag --policies festlegen, müssen Sie das Flag --custom-constraints nicht angeben.

  • POLICY_PATH: der vollständige Pfad zur Organisationsrichtlinie, die Sie erstellt oder aktualisiert haben. Beispiel: tmp/policy.yaml Wenn Sie das Flag --custom-constraints festlegen, müssen Sie das Flag --policies nicht angeben.

Nach einigen Minuten gibt der Befehl eine Liste der Ressourcen aus, die gegen die Änderungen an der benutzerdefinierten Einschränkung und/oder an der Organisationsrichtlinie verstoßen würden.

Die Ergebnisse können auch in der Google Cloud Console aufgerufen werden. Unter Ergebnisse des Policy Simulators auf dieser Seite erfahren Sie, wie die Ergebnisse zu lesen sind.

Im Folgenden finden Sie eine Beispielantwort auf eine Simulation einer Organisationsrichtlinie. Diese Simulation umfasst eine benutzerdefinierte Einschränkung, die das Erstellen von Google Kubernetes Engine-Clusterressourcen einschränkt, wenn die Binärautorisierung nicht aktiviert ist. Wenn in diesem Fall die vorgeschlagene Änderung angewendet würde, würden zwei Clusterressourcen gegen die Richtlinie verstoßen: orgpolicy-test-cluster unter dem 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

Ergebnisse des Policy Simulator

Policy Simulator meldet die Ergebnisse einer Änderung in einer benutzerdefinierten Einschränkung oder Organisationsrichtlinie als Liste von Verstößen gegen die simulierte Richtlinie. In der Google Cloud Console werden die Ergebnisse der Simulationen gespeichert, die Sie in den letzten 14 Tagen generiert haben.

Um Simulationsergebnisse anzusehen, rufen Sie die Seite Simulationsverlauf auf.

Zum Simulationsverlauf

Wählen Sie eine Simulation aus, um Details zu sehen. Auf der Seite Simulationsbericht können Sie die Vorschau der Verstöße sehen. Darin sind 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 der Zeitpunkt, zu dem die Simulation abgeschlossen wurde.

Wenn Sie eine benutzerdefinierte Einschränkung simuliert haben, können Sie auf Details zur Einschränkung klicken, um die entsprechende Konfiguration zu sehen. Wenn Sie eine Organisationsrichtlinie simuliert haben, wird auf dem Tab Richtliniendetails die simulierte Konfiguration angezeigt.

Alle Verstöße sind in der Ressourcentabelle 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 mit der Gesamtsumme der Ressourcen unter ihnen in der Hierarchie angezeigt, die gegen die neue benutzerdefinierte Einschränkung oder Organisationsrichtlinie verstoßen.

Getestete Richtlinienänderung anwenden

Nachdem Sie die benutzerdefinierte Einschränkung, Ihre Organisationsrichtlinie oder beides getestet haben, können Sie die benutzerdefinierte Einschränkung einrichten und die Organisationsrichtlinie erzwingen. Sie können sich alle Policy Simulator-Ergebnisse in der Google Cloud Console ansehen, unabhängig davon, wie sie generiert wurden. Wenn Ihr Simulationsbericht Änderungen an maximal einer Organisationsrichtlinie enthält, können Sie die Organisationsrichtlinie direkt über die Simulationsergebnisse erzwingen. Verwenden Sie die Google Cloud CLI, um Teständerungen in mehreren Organisationsrichtlinien zu erzwingen.

Console

  1. Rufen Sie die Seite Simulationsverlauf auf, um die Ergebnisse des Policy Simulator einer benutzerdefinierten Einschränkung zu erzwingen.

    Zum Simulationsverlauf

  2. Wählen Sie den Simulationsbericht für die benutzerdefinierte Einschränkung oder Organisationsrichtlinie aus, die Sie anwenden möchten.

  3. Wenn dieser Simulationsbericht eine benutzerdefinierte Einschränkung enthält, klicken Sie auf Einschränkung speichern.

  4. Wenn dieser Simulationsbericht Änderungen an maximal einer Organisationsrichtlinie enthält, können Sie diese Organisationsrichtlinie als Probelaufrichtlinie anwenden, um das Verhalten in der Produktion ohne Risiko zu überwachen. Dazu wählen Sie Probelaufrichtlinie festlegen aus. Die Seite Richtliniendetails für die neue Seite der Organisationsrichtlinie wird angezeigt.

    Sie können die Organisationsrichtlinie sofort erzwingen. Klicken Sie dazu auf und wählen Sie Richtlinie festlegen aus.

gcloud

  1. Wenn Sie eine benutzerdefinierte Einschränkung erzwingen möchten, müssen Sie sie so einrichten, dass sie für Organisationsrichtlinien in Ihrer Organisation verfügbar ist. 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.

  2. Verwenden Sie den Befehl gcloud org-policies set-policy, um eine Organisationsrichtlinie mit einer benutzerdefinierten Einschränkung zu erzwingen:

    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 Ergebnisse von Policy Simulator als CSV-Datei speichern.

  1. Rufen Sie die Seite Simulationsverlauf auf, um die Ergebnisse von Policy Simulator zu speichern.

    Zum Simulationsverlauf

  2. Wählen Sie den Simulationsbericht aus, den Sie speichern möchten.

  3. Klicken Sie auf Vollständige Ergebnisse exportieren.

gcloud

Wenn Sie die gcloud CLI verwenden, können Sie Policy Simulator-Ergebnisse als JSON- oder YAML-Dateien 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.

Zum Speichern eines Testergebnisses als JSON-Datei fügen Sie dem simulate orgpolicy-Befehl beim Ausführen der Simulation das folgende Flag hinzu:

--format=json > FILENAME

Ersetzen Sie FILENAME durch einen Namen für die Ausgabedatei.

Nächste Schritte