Änderungen an Organisationsrichtlinien mit dem Policy Simulator testen

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.

    Enable the 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

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

    Zu den Organisationsrichtlinien

  2. Klicken Sie oben auf der Seite auf Projektauswahl.

  3. Wählen Sie in der Projektauswahl die Organisationsressource aus.

  4. 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.

  5. 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:

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

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

    3. Klicken Sie auf  Bedingung bearbeiten.

    4. Geben Sie im Bereich Bedingung hinzufügen 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 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.

    1. Wählen Sie im Feld Bereich auswählen die Ressource aus, für die Sie die 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 An aus und klicken Sie dann auf Fertig.

    5. 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

  1. 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.

  2. 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
      
  3. 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 Flag tmp/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 Flag tmp/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

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

Zu den Organisationsrichtlinien

  1. Wählen Sie in der Projektauswahl das Projekt, den Ordner oder die Organisation aus, für die Sie die Organisationsrichtlinie bearbeiten möchten.

  2. Auf der Seite Organisationsrichtlinien wird eine filterbare Liste der Einschränkungen für Organisationsrichtlinien angezeigt, die für diese Ressource verfügbar sind.

  3. 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.

  4. Zum Aktualisieren der Organisationsrichtlinie für diese Ressource klicken Sie auf Richtlinie verwalten.

  5. Wählen Sie auf der Seite Richtlinie bearbeiten die Option Richtlinie der übergeordneten Ressource überschreiben aus.

  6. Wählen Sie Regel hinzufügen aus.

  7. Wählen Sie unter Erzwingung aus, ob die Erzwingung dieser Organisationsrichtlinie aktiviert oder deaktiviert werden soll.

  8. 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.

  9. 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

  1. 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 mit organizations, folders oder projects.

    • RESOURCE_ID mit Ihrer Organisations-ID, Ordner-ID, Projekt-ID oder Projektnummer, je nach Ressourcentyp, der in RESOURCE_TYPE angegeben ist.

    • CONSTRAINT_NAME durch den Namen der verwalteten Einschränkung, die Sie testen möchten. Beispiel: iam.managed.disableServiceAccountKeyCreation

    • ENFORCEMENT_STATE mit true, um diese Organisationsrichtlinie zu erzwingen, wenn sie festgelegt ist, oder false, um sie zu deaktivieren, wenn sie festgelegt ist.

    Optional können Sie der rules einen condition-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
    
  2. 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.

Simulationsverlauf aufrufen

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

  1. Wenn Sie die Ergebnisse des Policy Simulator für eine benutzerdefinierte Einschränkung erzwingen möchten, rufen Sie die Seite Simulationsverlauf auf.

    Simulationsverlauf aufrufen

  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 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

  1. 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.

  2. 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.

  1. Wenn Sie die Ergebnisse des Policy Simulator speichern möchten, rufen Sie die Seite Simulationsverlauf auf.

    Simulationsverlauf aufrufen

  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 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