Rollenänderungen mit Policy Simulator testen

Auf dieser Seite wird beschrieben, wie Sie eine Änderung an einer IAM-Zulassungsrichtlinie mit dem Policy Simulator simulieren. Außerdem wird erläutert, wie Sie die Ergebnisse der Simulation interpretieren und die simulierte Zulassungsrichtlinie anwenden können.

Mit dieser Funktion wird der Zugriff nur auf Grundlage von Zulassungsrichtlinien ausgewertet.

Informationen zum Simulieren von Änderungen an anderen Richtlinientypen finden Sie hier:

Hinweis

  • Aktivieren Sie die Policy Simulator API und die Resource Manager API.

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

    APIs aktivieren

  • Optional: Weitere Informationen finden Sie unter Funktionsweise des Policy Simulator für Zulassungsrichtlinien.

Erforderliche Berechtigungen

Bevor Sie eine Änderung an einer Zulassungsrichtlinie simulieren, müssen Sie überprüfen, ob Sie die entsprechenden Berechtigungen haben. Zum Ausführen einer Simulation sind bestimmte Berechtigungen erforderlich. Darüber hinaus ermöglichen andere, nicht zwingend notwendige Berechtigungen die maximal möglichen Ergebnisse einer Simulation.

Weitere Informationen zu IAM-Rollen (Identity and Access Management) finden Sie unter Informationen zu Rollen.

Erforderliche Berechtigungen für die Zielressource

Die Zielressource der Simulation ist die Ressource, deren Zulassungsrichtlinie Sie simulieren.

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für die Zielressource zuzuweisen, um die benötigten Berechtigungen zum Ausführen einer Simulation zu erhalten:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Ausführen einer Simulation erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Ausführen einer Simulation erforderlich:

  • cloudasset.assets.searchAllResources
  • policysimulator.replays.run
  • service.resource.getIamPolicy, wobei resource der Ressourcentyp der Zielressource und service der Name des Google Cloud -Dienstes ist, zu dem diese Ressource gehört.
  • Simulierte Richtlinienänderungen anwenden: service.resource.setIamPolicy, wobei resource der Ressourcentyp der Zielressource und service der Name des Google Cloud -Dienstes ist, zu dem die Ressource gehört.

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Erforderliche Berechtigungen für die Hostressource

Die Hostressource einer Simulation ist das Element – das Projekt, der Ordner oder die Organisation –, mit dem die Simulation erstellt und ausgeführt wird. Die Hostressource muss in keiner Weise der Zielressource zugeordnet sein.

Die Art und Weise, wie die Hostressource festlegt wird, hängt von der verwendeten Plattform ab.

Console

Die Hostressource ist das Projekt, der Ordner oder die Organisation in der Ressourcenauswahl.

Wenn Sie die Hostressource ändern möchten, wählen Sie in der Ressourcenauswahl ein anderes Projekt, einen anderen Ordner oder eine andere Organisation aus.

gcloud

Die Hostressource ist das aktuelle Kontingentprojekt. Um das Kontingentprojekt festzulegen, verwenden Sie den Befehl gcloud auth application-default set-quota-project.

REST

Die Hostressource wird manuell bei jedem Senden einer Anfrage angegeben. Weitere Informationen finden Sie auf dieser Seite unter Richtlinienänderung simulieren.

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Simulator Admin (roles/policysimulator.admin) für die Hostressource zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen einer Simulation 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 einer Simulation erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Ausführen einer Simulation erforderlich:

  • policysimulator.replayResults.list
  • policysimulator.replays.create
  • policysimulator.replays.get

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Damit Sie die maximal möglichen Ergebnisse einer Simulation erhalten, benötigen Sie bestimmte IAM- und Google Workspace-Berechtigungen. Allerdings können Sie eine Simulation auch ohne diese Berechtigungen ausführen. Wenn Sie eine Simulation ohne diese Berechtigungen ausführen, kann dies aber zu einer erhöhten Anzahl unbekannter Zugriffsänderungen führen, da es dann möglicherweise nicht möglich ist, Informationen abzurufen, die sich eventuell auf die Ergebnisse der Simulation auswirken.

Wir empfehlen für das Ausführen einer Simulation die Rolle des Sicherheitsprüfers (roles/iam.securityReviewer) für Ihre Organisation. Alternativ benötigen Sie keine zusätzlichen Rollen, wenn Sie bereits die Rolle „Security Admin“ haben (roles/iam.securityAdmin).

Mit diesen Rollen erhalten Sie die folgenden Berechtigungen für maximal mögliche Ergebnisse der Simulation:

  • iam.roles.get und iam.roles.list für alle relevanten Projekte, Ordner oder Organisationen, in denen benutzerdefinierte Rollen definiert sind. Projekte, Ordner oder Organisationen sind dann relevant, wenn sie Ancestor oder Nachfolgerelement der Ressource ist, deren Zulassungsrichtlinie Sie simulieren.
  • service.resource.getIamPolicy, wobei resource der Name eines Ressourcentyps ist, der eine Zulassungsrichtlinie haben kann, und service der Name desGoogle Cloud -Dienstes ist, zu dem diese Ressource gehört.

    Wenn Sie eine Simulation ausführen, empfehlen wir Ihnen diese Berechtigung für jede Ressource, die folgenden Kriterien entspricht:

    • Policy Simulator unterstützt die Ressource.
    • Die Ressource hat eine Zulassungsrichtlinie, die sich auf den Zugriff des Nutzers auswirken kann. Dies gilt, wenn eine der folgenden Bedingungen zutrifft:

      • Die Ressource ist ein Nachfolgerelement der Ressource, deren Zulassungsrichtlinie Sie simulieren, und wird in den entsprechenden Zugriffslogs angezeigt.
      • Die Ressource ist ein Ancestor der Ressource, deren Zulassungsrichtlinie Sie simulieren.

    Angenommen, Sie möchten eine Zulassungsrichtlinie für ein Projekt simulieren. Wenn die Zugriffslogs einen Zugriffsversuch auf einen Cloud Storage-Bucket im Projekt dokumentieren, benötigen Sie die Berechtigung storage.buckets.getIamPolicy für diesen Bucket. Wenn das Projekt einen übergeordneten Ordner mit einer Zulassungsrichtlinie hat, benötigen Sie außerdem die Berechtigung resourcemanager.folders.getIamPolicy für diesen Ordner.

Wir empfehlen die Berechtigung, Informationen zur Gruppenmitgliedschaft für jede Google-Gruppe in der ursprünglichen Zulassungsrichtlinie und der vorgeschlagenen Zulassungsrichtlinie abzurufen.

Super Admins und Gruppenadministratoren von Google Workspace haben in der Regel Zugriff auf die Gruppenmitgliedschaft. Wenn Sie weder Super Admin noch Gruppenadministrator sind, bitten Sie Ihren Google Workspace-Administrator, eine benutzerdefinierte Google Workspace-Administratorrolle zu erstellen, die die Berechtigung groups.read (unter Berechtigungen für Admin API) enthält, und Ihnen zuzuweisen. So können Sie die Mitgliedschaft aller Gruppen in Ihrer Domain aufrufen und Änderungen an einer Zulassungsrichtlinie effektiver simulieren.

Richtlinienänderung simulieren

Simulieren Sie eine Änderung an einer Zulassungsrichtlinie, indem Sie die folgenden Schritte ausführen.

Console

Das folgende Beispiel zeigt, wie Sie eine Änderung an einer Zulassungsrichtlinie für ein Projekt simulieren. Sie können jedoch eine Änderung an einer Zulassungsrichtlinie für jede Ressource simulieren, die eine Zulassungsrichtlinie hat.

Bearbeiten Sie die Berechtigungen eines Hauptkontos und klicken Sie dann auf Änderungen testen, anstatt auf Speichern:

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

    Zur Seite "IAM"

  2. Erstellen Sie eine vorgeschlagene Änderung an der Zulassungsrichtlinie, indem Sie die Berechtigungen eines vorhandenen Hauptkontos bearbeiten:

    1. Ermitteln Sie das Hauptkonto, dessen Zugriff Sie ändern möchten, und klicken Sie rechts auf den Button Bearbeiten .
    2. Bearbeiten Sie den Zugriff des Hauptkontos und fügen Sie eine neue Rolle hinzu oder ändern bzw. widerrufen Sie eine vorhandene Rolle.
  3. Klicken Sie auf Änderungen testen, um die vorgeschlagene Änderung zu simulieren.

  4. Nach einigen Minuten zeigt die Google Cloud Konsole die Ergebnisse der Simulation als Liste mit Zugriffsänderungen an. Weitere Informationen finden Sie auf dieser Seite unter Informationen zu den Ergebnissen von Policy Simulator.

    Wenn der Zugriff in der vorhandenen Zulassungsrichtlinie durch die simulierte Zulassungsrichtlinie nicht geändert wurde, zeigt die Google Cloud Console keine Zugriffsänderungen an.

gcloud

Wenn Sie eine Änderung an einer Zulassungsrichtlinie simulieren möchten, folgen Sie dem read-modify-write-Muster. Simulieren Sie jedoch die Zulassungsrichtlinie, anstatt sie zu schreiben.

  1. Lesen Sie die aktuelle Zulassungsrichtlinie mit dem folgenden Befehl:

    gcloud resource-type get-iam-policy resource-id --format=format > filepath

    Ersetzen Sie die folgenden Werte:

    • resource-type: Der Ressourcentyp, für den Sie eine Zulassungsrichtlinie simulieren möchten. Beispiel: projects.
    • resource-id: Die ID der Ressource, deren Zulassungsrichtlinie Sie simulieren möchten. Beispiel: my-project.
    • format: das Format der Antwort. Verwenden Sie den Wert json oder yaml.
    • filepath: Den Pfad zu einer neuen Ausgabedatei für die Zulassungsrichtlinie.

    Mit dem folgenden Befehl wird beispielsweise die Zulassungsrichtlinie für das Projekt my-project im JSON-Format abgerufen und im Basisverzeichnis des Nutzers gespeichert:

    gcloud projects get-iam-policy my-project --format=json > ~/policy.json
  2. Ändern Sie die vom Befehl get-iam-policy zurückgegebene JSON- oder YAML-Zulassungsrichtlinie entsprechend den Änderungen, die Sie simulieren möchten.

    Sie können mehrere Arten von Änderungen an der Zulassungsrichtlinie vornehmen. Beispielsweise haben Sie die Möglichkeit, ein Hauptkonto zu einer Rollenbindung hinzuzufügen oder daraus zu entfernen oder eine Rollenbindung aus der Zulassungsrichtlinie zu entfernen.

  3. Führen Sie den folgenden Befehl aus, um die Änderung der Zulassungsrichtlinie zu simulieren:

    gcloud iam simulator replay-recent-access \
        full-resource-name \
        filepath \
        --format=format

    Ersetzen Sie die folgenden Werte:

    • full-resource-name: Der vollständige Name der Ressource, deren Zulassungsrichtlinie Sie simulieren möchten.

      Der vollständige Ressourcenname ist ein URI, der aus dem Dienstnamen und dem Pfad zur Ressource besteht. Wenn Sie beispielsweise eine Zulassungsrichtlinie für ein Projekt simulieren, verwenden Sie //cloudresourcemanager.googleapis.com/projects/project- id, wobei project-id die ID des Projekts ist, dessen Zulassungsrichtlinie Sie simulieren.

      Eine Liste der Formate für vollständige Ressourcennamen finden Sie unter Vollständige Ressourcennamen.

    • filepath: Pfad zur Datei mit der geänderten Zulassungsrichtlinie zum Zulassen, die Sie simulieren möchten. Beispiel: ~/proposed_policy.json

    • format: Das Format für die Antwort. Beispiel: jsonoder yaml.

    Nach einigen Minuten gibt der Befehl eine Liste mit Wiederholungsergebnissen aus, die zeigen, wie sich der Zugriff des Hauptkontos ändert, wenn die vorgeschlagene Zulassungsrichtlinie angewendet wird. In diesen Ergebnissen finden Sie auch alle Fehler, die während der Simulation aufgetreten sind. Dazu zählen insbesondere Fehler aufgrund von nicht unterstützten Ressourcentypen.

    Weitere Informationen zum Lesen der Ergebnisse finden Sie unter Informationen zu den Ergebnissen von Policy Simulator auf dieser Seite. Informationen zum Speichern von Simulationsergebnissen, anstatt Sie auszugeben, erhalten Sie unter Simulationsergebnisse speichern.

    Das folgende Beispiel zeigt eine Antwort für eine zulässige Simulation der Zulassungsrichtlinie, wobei der Nutzer my-user@example.com verwendet wird. Wenn in diesem Fall die vorgeschlagene Änderung angewendet wird, hat my-user@example.com potenziell nicht mehr die Berechtigungen resourcemanager.projects.list und resourcemanager.projects.get für das Projekt my-project und auf keinen Fall die Berechtigung resourcemanager.projects.update für das Projekt my-project:

    [
      {
        "accessTuple": {
          "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project",
          "permission": "resourcemanager.projects.list",
          "principal": "my-user@example.com"
        },
        "diff": {
          "accessDiff": {
            "accessChange": "ACCESS_MAYBE_REVOKED",
            "baseline": {
              "accessState": "GRANTED"
            },
            "simulated": {
              "accessState": "UNKNOWN_INFO_DENIED",
              "errors": [
                {
                  "code": 7,
                  "details": [
                    {
                      "@type": "type.googleapis.com/google.rpc.ResourceInfo",
                      "description": "Missing permission to retrieve IAM policies above the resource in hierarchy."