Änderungen an Organisationsrichtlinien mit Policy Simulator testen

Mit dem Richtliniensimulator für Organisationsrichtlinien können Sie sich eine Vorschau der Auswirkungen einer neuen benutzerdefinierten Einschränkung oder einer Organisationsrichtlinie ansehen, die eine benutzerdefinierte Einschränkung erzwingt, bevor sie in Ihrer Produktionsumgebung erzwungen wird. Der Richtliniensimulator 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 mithilfe von Policy Simulator. Außerdem werden die Ergebnisse der Simulation und die Anwendung der getesteten Organisationsrichtlinie auf Anfrage erläutert.

Hinweis

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

    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: Rufen Sie eine ab. eine Einführung in den Organisationsrichtliniendienst.

Erforderliche Rollen

Um die Berechtigungen zu erhalten, die Sie zum Ausführen und Aufrufen von Simulationen benötigen, bitten Sie Ihren Administrator, Ihnen Die IAM-Rolle OrgPolicy Simulator Admin (roles/policysimulator.orgPolicyAdmin) für die Organisation. 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 Einschränkung erzwingt, oder an beiden gleichzeitig 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 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 möchten Wenn Sie Änderungen an einer vorhandenen benutzerdefinierten Einschränkung vornehmen möchten, wählen Sie sie aus der Liste aus 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, bei denen 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 Erzwingungsmethode die Option Beim Erstellen erzwingen aus.

    3. Klicken Sie auf  Bedingung bearbeiten.

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

    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. Ob dies eine neue Einschränkung oder eine nicht von einer Organisation erzwungene Einschränkung ist müssen Sie die Organisationsrichtlinie definieren.

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

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

    Beispiel: eine benutzerdefinierte Einschränkung, die das Erstellen von Google Kubernetes Engine einschränkt Clusterressourcen, bei denen die Binärautorisierung nicht aktiviert ist, ähnelt dem Folgendes:

    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 bedingt erzwingt, die auf der Existenz eines bestimmten Tags basiert, erstellen Sie eine JSON- oder YAML-Datei, in der die zu testende Organisationsrichtlinie definiert ist.

    Die folgende Organisationsrichtlinie schränkt beispielsweise das Erstellen von Google Kubernetes Engine-Clusterressourcen ein, 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.

  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, bei denen die Binärautorisierung nicht aktiviert ist, ist etwa so:

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

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

  4. Um das Löschen einer Organisationsrichtlinie zu testen, die eine benutzerdefinierte Richtlinie erzwingt Einschränkung, erstellen Sie eine JSON- oder YAML-Datei, die die Organisationsrichtlinie definiert. legt aber keine Regeln fest und übernimmt die Richtlinie von der übergeordneten Ressource.

    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
    
  5. Führen Sie den folgenden Befehl aus, um die Änderung an der benutzerdefinierten Einschränkung zu simulieren: Organisationsrichtlinie oder beides:

    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 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. Beispiel: tmp/policy.yaml Wenn Sie das Flag --custom-constraints festlegen, müssen Sie für --policies-Flag.

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 finden Sie unter Ergebnisse des Policy Simulator auf dieser Seite, um wie die Ergebnisse zu interpretieren sind.

Im Folgenden finden Sie eine Beispielantwort für eine Simulation einer Organisationsrichtlinie. 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. In dieser würden bei Anwendung der vorgeschlagenen Änderung zwei Clusterressourcen verstoßen gegen die Richtlinie: orgpolicy-test-cluster unter dem Projekt simulator-test-project und autopilot-cluster-1 unter dem 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 Richtliniensimulators

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.

Rufen Sie die Seite Simulationsverlauf auf, um Simulationsergebnisse anzusehen.

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 sehen. Wenn Sie eine Organisationsrichtlinie sehen Sie auf dem Tab Richtliniendetails die Konfiguration, simuliert.

Alle Verstöße sind in der Tabelle der Ressourcen aufgeführt. Jede Ressource, die gegen wird die neue benutzerdefinierte Einschränkung oder Organisationsrichtlinie mit einem Link zum Ressourceneintrag in Cloud Asset Inventory. 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 Richtliniensimulators in der Google Cloud Console aufrufen, unabhängig davon, wie sie generiert wurden. Wenn Ihr Simulationsbericht Änderungen an mehr als eine Organisationsrichtlinie hat, können Sie die Organisationsrichtlinie erzwingen. direkt über die Simulationsergebnisse. Wenn Sie Teständerungen in mehreren Organisationsrichtlinien erzwingen möchten, verwenden Sie die Google Cloud CLI.

Console

  1. Wenn Sie die Ergebnisse des Richtliniensimulators 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 nur einer Organisation enthält können Sie diese Organisationsrichtlinie Probelaufrichtlinie um das Verhalten in der Produktion ohne Risiken zu überwachen, indem Sie Probelaufrichtlinie festlegen Auf der Seite Richtliniendetails für das neue wird die Seite mit den Organisationsrichtlinien 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. Um eine benutzerdefinierte Einschränkung einzurichten, verwenden Sie die gcloud org-policies set-custom-constraint (gcloud org-policies set-custom-constraint) Befehl:

    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. Um eine Organisationsrichtlinie mit einer benutzerdefinierten Einschränkung zu erzwingen, verwenden Sie die Methode gcloud org-policies set-policy Befehl:

    gcloud org-policies set-policy POLICY_PATH
    

    Ersetzen Sie POLICY_PATH durch den vollständigen Pfad zu Ihrem YAML-Datei für Organisationsrichtlinien.

    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 Richtliniensimulators 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 Policy Simulator-Ergebnisse als JSON- oder YAML-Dateien.

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.

Fügen Sie das folgende Flag hinzu, um ein Testergebnis als JSON-Datei zu speichern dem Befehl simulate orgpolicy hinzu, wenn die Simulation ausgeführt wird:

--format=json > FILENAME

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

Nächste Schritte