Auf dieser Seite wird beschrieben, wie Sie eine Änderung an einer Zulassungsrichtlinie mit dem Policy Simulator für Zulassungsrichtlinien von Identity and Access Management (IAM) simulieren. Außerdem werden die Ergebnisse der Simulation und die Anwendung der simulierten Zulassungsrichtlinie auf Anfrage erläutert.
Hinweise
-
Enable the Policy Simulator and Resource Manager APIs.
- Optional: Weitere Informationen finden Sie unter Funktionsweise des Richtliniensimulators.
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:
-
Cloud-Asset-Betrachter (
roles/cloudasset.viewer
) -
Simulator-Administrator (
roles/policysimulator.admin
) -
Sicherheitsprüfer (
roles/iam.securityReviewer
)
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. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Ausführen einer Simulation erforderlich:
-
cloudasset.assets.searchAllResources
-
policysimulator.replays.run
-
service.resource.getIamPolicy
, wobeiresource
der Ressourcentyp der Zielressource undservice
der Name des Google Cloud-Dienstes ist, zu dem diese 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. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen 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.
Empfohlene Berechtigungen
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.
Empfohlene IAM-Berechtigungen
Wir empfehlen für das Ausführen einer Simulation die Rolle des Sicherheitsprüfers (roles/iam.securityReviewer
) für Ihre Organisation.
Wenn Sie bereits die Rolle "Sicherheitsadministrator" haben (roles/iam.securityAdmin
), benötigen Sie keine zusätzlichen Rollen.
Mit diesen Rollen erhalten Sie die folgenden Berechtigungen für maximal mögliche Ergebnisse der Simulation:
iam.roles.get
undiam.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
, wobeiresource
der Name eines Ressourcentyps ist, der eine Zulassungsrichtlinie haben kann, undservice
der Name des Google 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 Berechtigungresourcemanager.folders.getIamPolicy
für diesen Ordner.
Empfohlene Google Workspace-Berechtigungen
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:
Öffnen Sie in der Google Cloud Console die Seite IAM.
Erstellen Sie eine vorgeschlagene Änderung an der Zulassungsrichtlinie, indem Sie die Berechtigungen eines vorhandenen Hauptkontos bearbeiten:
- Ermitteln Sie das Hauptkonto, dessen Zugriff Sie ändern möchten, und klicken Sie rechts auf die Schaltfläche Bearbeiten .
- Bearbeiten Sie den Zugriff des Hauptkontos und fügen Sie eine neue Rolle hinzu oder ändern bzw. widerrufen Sie eine vorhandene Rolle.
Klicken Sie auf Änderungen testen, um die vorgeschlagene Änderung zu simulieren.
Nach einigen Minuten zeigt die Google Cloud Console 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.
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 Wertjson
oderyaml
.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
Ä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.
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
, wobeiproject-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:json
oderyaml
.
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, hatmy-user@example.com
potenziell nicht mehr die Berechtigungenresourcemanager.projects.list
undresourcemanager.projects.get
für das Projektmy-project
und auf keinen Fall die Berechtigungresourcemanager.projects.update
für das Projektmy-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.", "resourceName": "//cloudresourcemanager.googleapis.com/projects/my-project", "resourceType": "cloudresourcemanager.googleapis.com/projects" } ], "message": "Missing permission to get relevant IAM policies." } ], "policies": [ { "access": "UNKNOWN_INFO_DENIED", "policy": {} } ] } } }, "lastSeenDate": { "day": 12, "month": 1, "year": 2021 } }, { "accessTuple": { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project", "permission": "resourcemanager.projects.get", "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 view group membership.", "resourceName": "group:everyone@example.com", "resourceType": "Google group" } ], "message": "Missing permission to view group membership." }, { "code": 7, "details": [ { "@type": "type.googleapis.com/google.rpc.ResourceInfo", "description": "Missing permission to retrieve IAM policies above the resource in hierarchy.", "resourceName": "//cloudresourcemanager.googleapis.com/projects/my-project", "resourceType": "cloudresourcemanager.googleapis.com/projects" } ], "message": "Missing permission to get relevant IAM policies." } ], "policies": [ { "access": "UNKNOWN_INFO_DENIED", "bindingExplanations": [ { "access": "UNKNOWN_INFO_DENIED", "memberships": { "group:everyone@example.com": { "membership": "MEMBERSHIP_UNKNOWN_INFO_DENIED" } }, "role": "roles/owner" } ], "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project", "policy": { "bindings": [ { "members": [ "group:everyone@example.com" ], "role": "roles/owner" } ], "etag": "BwWgJSIInYA=", "version": 3 } }, { "access": "UNKNOWN_INFO_DENIED", "policy": {} } ] } } }, "lastSeenDate": { "day": 10, "month": 1, "year": 2021 } }, { "accessTuple": { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project", "permission": "resourcemanager.projects.update", "principal": "my-user@example.com" }, "diff": { "accessDiff": { "accessChange": "ACCESS_REVOKED", "baseline": { "accessState": "GRANTED" }, "simulated": { "accessState": "NOT_GRANTED" } } }, "lastSeenDate": { "day": 15, "month": 1, "year": 2021 } }, { "accessTuple": {}, "error": { "code": 12, "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.create" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.setIamPolicy" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.delete" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.update" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "pubsub.topics.publish" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.list" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.getIamPolicy" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.get" }, "reason": "UNSUPPORTED_RESOURCE" } ], "message": "Simulator does not yet support all resource types for 8 removed permissions." } } ]
Wenn der Zugriff in der vorhandenen Zulassungsrichtlinie durch die simulierte Zulassungsrichtlinie nicht geändert wurde, gibt der Befehl
No access changes found in the replay
aus.
REST
Zum Simulieren einer Änderung an einer Zulassungsrichtlinie folgen Sie dem read-modify-write-Muster. Statt jedoch die Zulassungsrichtlinie zu schreiben, erstellen und führen Sie eine Simulation aus.
Zulassungsrichtlinie für die Ressource lesen
Die Zulassungsrichtlinie eines Projekts erhalten Sie mit der Methode
projects.getIamPolicy
der Resource Manager API.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.POLICY_VERSION
: Die Richtlinienversion, die zurückgegeben werden soll. Anfragen sollten die neueste Richtlinienversion angeben. Diese ist Richtlinienversion 3. Weitere Informationen finden Sie unter Richtlinienversion beim Abrufen einer Richtlinie festlegen.
HTTP-Methode und URL:
POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
JSON-Text anfordern:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/owner", "members": [ "user:project-owner@example.com" ] }, { "role": "roles/iam.securityReviewer", "members": [ "user:fatima@example.com" ] } ] }
Ändern Sie die zurückgegebene Zulassungsrichtlinie, um die Änderungen festzulegen, 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.
Erstellen Sie eine Simulation oder eine Wiederholung mit der geänderten Zulassungsrichtlinie.
Verwenden Sie die Methode
replays.create
der Policy Simulator API, um eine Wiederholung für ein Projekt, einen Ordner oder eine Organisation zu erstellen.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
-
HOST_RESOURCE_TYPE
: Der Ressourcentyp, der die Wiederholung hostet. Dieser Wert mussprojects
,folders
oderorganizations
sein. HOST_RESOURCE_ID
: Die ID der Hostressource, z. B.my-project
.-
TARGET_FULL_RESOURCE_NAME
: Der vollständige Name der Ressource, deren Richtlinie Sie simulieren möchten. Diese Ressource kann eine beliebige Ressource sein, die IAM-Richtlinien akzeptiert, und muss in keiner Weise der Hostressource zugeordnet sein.Der vollständige Ressourcenname ist ein URI, der aus dem Dienstnamen und dem Pfad zur Ressource besteht. Wenn Sie beispielsweise eine Richtlinie für ein Projekt simulieren, verwenden Sie
//cloudresourcemanager.googleapis.com/projects/PROJECT_ID
, wobeiPROJECT_ID
die ID des Projekts ist, dessen Richtlinie Sie simulieren möchten.Eine vollständige Liste der Formate für Ressourcennamen finden Sie unter Vollständige Ressourcennamen.
-
POLICY
: Die Richtlinie, die Sie simulieren möchten. Ein Beispiel für eine Richtlinie finden Sie in der Richtlinienreferenz.Wenn Sie mehrere Richtlinien simulieren möchten, fügen Sie mehrere Paare von
"OBJECT_FULL_RESOURCE_NAME" : POLICY
in den Anfragetext ein. PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.
HTTP-Methode und URL:
POST https://policysimulator.googleapis.com/v1/HOST_RESOURCE_TYPE/HOST_RESOURCE_ID/locations/global/replays
JSON-Text anfordern:
{ "config": { "policyOverlay": { "TARGET_FULL_RESOURCE_NAME" : POLICY } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Die Antwort enthält den Namen eines Vorgangs, der Ihre Wiederholung darstellt:
{ "name": "operations/6de23e63-f61a-4b8c-b502-34d717d2d7f8", "metadata": { "type_url": "type.googleapis.com/google.cloud.policysimulator.v1.ReplayOperationMetadata" } }
-
Fragen Sie die Methode
operations.get
ab, bis die Wiederholung abgeschlossen ist.Für die Abfrage eines Vorgangs empfehlen wir, die Methode
operations.get
wiederholt aufzurufen, bis die Antwort das Feld"done": true
und das Feldname
mit dem Namen der abgeschlossenen Wiederholung enthält. Verwenden Sie den abgeschnittenen exponentiellen Backoff, um zwischen jeder Anfrage eine Verzögerung einzuführen.Verwenden Sie die Methode
operations.get
der Policy Simulator API, um den Status einer Wiederholung abzurufen.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
OPERATION_NAME
: Der Name eines Wiederholungvorgangs, einschließlich des Präfixesoperations
. Kopieren Sie diesen Wert aus dem Feldname
einerreplays.create
-Antwort. Beispiel:operations/6de23e63-f61a-4b8c-b502-34d717d2d7f8
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.
HTTP-Methode und URL:
GET https://policysimulator.googleapis.com/v1/OPERATION_NAME
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Laufende Vorgänge geben eine Antwort wie die folgende zurück:
{ "name": "operations/42083b6b-3788-41b9-ae39-e97d7615a22d", "metadata": { "@type": "type.googleapis.com/google.cloud.policysimulator.v1.ReplayOperationMetadata", "startTime": "2021-01-15T05:34:14.732Z" } }
Abgeschlossene Vorgänge geben eine Antwort wie die folgende zurück:
{ "name": "operations/89ab4892-9605-4c84-aedb-4fce4fc5195b", "metadata": { "@type": "type.googleapis.com/google.cloud.policysimulator.v1.ReplayOperationMetadata", "startTime": "2021-01-15T05:40:15.922Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.policysimulator.v1.Replay", "replay": { "name": "projects/my-project/locations/global/replays/89ab4892-9605-4c84-aedb-4fce4fc5195b", "state": SUCCEEDED, "config": {}, "resultsSummary": { "logCount": 1319, "unchangedCount": 1169, "differenceCount": 149, "errorCount": 1, "oldestDate": { "year": 2020, "month": 10, "day": 15 }, "newestDate": { "year": 2021, "month": 1, "day": 12 } } } } }
Rufen Sie die Ergebnisse der Wiederholung ab.
Die Ergebnisse einer Wiederholung können Sie mit der Methode
replays.results.list
der Policy Simulator API abrufen.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
-
REPLAY_NAME
: Der Name der Wiederholung, für die Sie Ergebnisse abrufen möchten. Kopieren Sie diesen Wert aus dem Feldresponse.replay.name
eineroperations.get
-Antwort. Geben Sie alle Ressourcentypen und Standortpräfixe an. Beispiel:"projects/my-project/locations/global/replays/89ab4892-9605-4c84-aedb-4fce4fc5195b"
. -
PAGE_SIZE
: Optional. Die maximale Anzahl an Ergebnissen, die von dieser Anfrage zurückgegeben werden sollen. Wenn nicht angegeben, bestimmt der Server die Anzahl der zurückzugebenden Ergebnisse. Wenn die Anzahl der Ergebnisse die Seitengröße überschreitet, enthält die Antwort ein Paginierungstoken, mit dem Sie die nächste Ergebnisseite abrufen können. PAGE_TOKEN
: Optional. Das Paginierungstoken, das in einer früheren Antwort von dieser Methode zurückgegeben wurde. Wenn dieser Wert angegeben wird, beginnt die Liste der Ergebnisse dort, wo die vorherige Anfrage endet.PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.
HTTP-Methode und URL:
GET https://policysimulator.googleapis.com/v1/REPLAY_NAME/results?pageSize=page-size&pageToken=PAGE_TOKEN
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Die Antwort enthält eine Liste mit Ergebnissen, die erläutern, wie sich der Zugriff des Hauptkontos bei Anwendung der vorgeschlagenen Richtlinie ändert. In diesen Ergebnissen finden Sie auch alle Fehler, die während der Simulation aufgetreten sind. Dazu zählen insbesondere alle 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.
Das folgende Beispiel zeigt eine Antwort für eine Richtliniensimulation für den Nutzer
my-user@example.com
. Wenn in diesem Fall die vorgeschlagene Änderung angewendet wird, hatmy-user@example.com
potenziell nicht mehr die Berechtigungenresourcemanager.projects.list
undresourcemanager.projects.get
für das Projektmy-project
und auf keinen Fall die Berechtigungresourcemanager.projects.update
für das Projektmy-project
:{ "replayResults": [ { "accessTuple": { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project", "permission": "resourcemanager.projects.list", "principal": "my-user@example.com" }, "lastSeenDate": { "day": 27, "month": 3, "year": 2020 }, "diff": { "accessDiff": { "accessChange": "ACCESS_MAYBE_REVOKED", "baseline": { "accessState": "GRANTED" }, "simulated": { "accessState": "UNKNOWN_INFO_DENIED", "errors": [ { "code": 7, "message": "Missing permission to get relevant IAM policies.", "details": [ { "@type": "type.googleapis.com/google.rpc.ResourceInfo", "description": "Missing permission to retrieve IAM policies above the resource in hierarchy.", "resourceName": "//cloudresourcemanager.googleapis.com/projects/my-project", "resourceType": "cloudresourcemanager.googleapis.com/projects" } ] } ], "policies": [ { "access": "UNKNOWN_INFO_DENIED", "policy": {} } ] } } } }, { "accessTuple": { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project", "permission": "resourcemanager.projects.get", "principal": "my-user@example.com" }, "lastSeenDate": { "day": 27, "month": 3, "year": 2020 }, "diff": { "accessDiff": { "accessChange": "ACCESS_MAYBE_REVOKED", "baseline": { "accessState": "GRANTED" }, "simulated": { "accessState": "UNKNOWN_INFO_DENIED", "errors": [ { "code": 7, "message": "Missing permission to view group membership.", "details": [ { "@type": "type.googleapis.com/google.rpc.ResourceInfo", "description": "Missing permission to view group membership.", "resourceName": "group:everyone@example.com", "resourceType": "Google group" } ] }, { "code": 7, "message": "Missing permission to get relevant IAM policies.", "details": [ { "@type": "type.googleapis.com/google.rpc.ResourceInfo", "description": "Missing permission to retrieve IAM policies above the resource in hierarchy.", "resourceName": "//cloudresourcemanager.googleapis.com/projects/my-project", "resourceType": "cloudresourcemanager.googleapis.com/projects" } ] } ], "policies": [ { "access": "UNKNOWN_INFO_DENIED", "bindingExplanations": [ { "access": "UNKNOWN_INFO_DENIED", "memberships": { "group:everyone@example.com": { "membership": "MEMBERSHIP_UNKNOWN_INFO_DENIED" } }, "role": "roles/owner" } ], "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project", "policy": { "bindings": [ { "members": [ "group:everyone@example.com" ], "role": "roles/owner" } ], "etag": "BwWgJSIInYA=", "version": 3 } }, { "access": "UNKNOWN_INFO_DENIED", "policy": {} } ] } } } }, { "accessTuple": { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project", "permission": "resourcemanager.projects.update", "principal": "my-user@example.com" }, "lastSeenDate": { "day": 27, "month": 3, "year": 2020 }, "diff": { "accessDiff": { "accessChange": "ACCESS_REVOKED", "baseline": { "accessState": "GRANTED" }, "simulated": { "accessState": "NOT_GRANTED" } } } }, { "accessTuple": {}, "error": { "code": 12, "message": "Simulator does not yet support all resource types for 8 removed permissions.", "details": [ { "@type": "type.googleapis.com/google.rpc.Status", "code": 12, "message": "Simulator does not yet support all resource types for 8 removed permissions.", "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.create" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.setIamPolicy" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.delete" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.update" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "pubsub.topics.publish" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.list" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.getIamPolicy" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.get" }, "reason": "UNSUPPORTED_RESOURCE" } ] } ] } } ], "nextPageToken": "AWukk3zjv80La+chWx6WNt7X8czGPLtP792gRpkNVEV/URZ/VdWzxmuJKr" }
Wenn der Zugriff in der vorhandenen Zulassungsrichtlinie durch die simulierte Zulassungsrichtlinie nicht geändert wurde, gibt die Anfrage eine leere Liste (
{}
) zurück.-
Ergebnisse des Richtliniensimulators
Der Richtliniensimulator meldet die Auswirkungen einer vorgeschlagenen Änderung an einer Zulassungsrichtlinie als Liste der Zugriffsänderungen. Jede Zugriffsänderung stellt einen Zugriffsversuch der letzten 90 Tage dar, der gemäß der vorgeschlagenen Zulassungsrichtlinie ein anderes Ergebnis als die aktuelle Zulassungsrichtlinie hat.
Im Richtliniensimulator werden auch Fehler aufgeführt, die während der Simulation aufgetreten sind. So können Sie potenzielle Lücken in der Simulation identifizieren.
Die Darstellung dieser Änderungen und Fehler hängt von der verwendeten Plattform ab.
Console
Auf der Ergebnisseite von Policy Simulator werden die Ergebnisse der Simulation in verschiedenen Abschnitten dargestellt:
Richtlinienänderungen: In diesem Abschnitt werden die Ressource aufgelistet, für deren Zulassungsrichtlinie Sie Änderungen vorschlagen, sowie die Rollen, die Sie zum Entfernen und Hinzufügen vorschlagen.
Dieser Abschnitt enthält auch die Schaltfläche Richtlinienänderung ansehen. Wenn Sie auf diese Schaltfläche klicken, können Sie die Zulassungsrichtlinie der Ressource vor und nach den vorgeschlagenen Änderungen sehen.
Berechtigungsänderungen: Dieser Abschnitt enthält die Anzahl der entfernten und hinzugefügten Berechtigungen, die beschreiben, wie sich die Berechtigungen des Hauptkontos ändern, wenn Sie die vorgeschlagenen Änderungen anwenden. Zum Ermitteln der Berechtigungsanzahl werden die Berechtigungen in den aktuellen Rollen des Hauptkontos mit den Berechtigungen in den vorgeschlagenen Rollen des Hauptkontos verglichen, wobei übernommene Rollen ignoriert werden.
Dieser Abschnitt enthält auch die Schaltfläche Berechtigungsänderung ansehen. Wenn Sie auf diese Schaltfläche klicken, können Sie die Berechtigungen in den aktuellen und vorgeschlagenen Rollen des Hauptkontos direkt vergleichen.
Zugriffsänderungen in den letzten 90 Tagen: In diesem Abschnitt wird dargestellt, welche Zugriffsversuche innerhalb der letzten 90 Tage zu unterschiedlichen Ergebnissen bei vorgeschlagener und aktueller Zulassungsrichtlinie führten. Dieser Abschnitt enthält sowohl eine Zusammenfassung der Zugriffsänderungen als auch eine Tabelle mit detaillierten Ergebnissen.
Die Zusammenfassung der Zugriffsänderungen listet die Anzahl der einzelnen Arten von Zugriffsänderungen, die Anzahl der Fehler und unbekannten Ergebnisse sowie die Anzahl der Zugriffsversuche auf, die dasselbe Ergebnis gemäß der vorgeschlagenen Zulassungsrichtlinie und der aktuellen Zulassungsrichtlinie haben. In der Zusammenfassung wird auch angezeigt, wie viele Berechtigungen nicht simuliert werden konnten. Weitere Informationen finden Sie auf dieser Seite unter Fehler.
Dieser Abschnitt enthält auch eine Tabelle mit Zugriffsänderungen. In dieser Tabelle ist jeder Zugriffsversuch der letzten 90 Tage aufgeführt, der unter der vorgeschlagenen Zulassungsrichtlinie und unter der aktuellen Zulassungsrichtlinie ein anderes Ergebnis hat. Jeder Eintrag enthält die Ressource, auf die das Hauptkonto zugreifen wollte, das Datum der Anfrage, das Hauptkonto, das die Anfrage stellt, die Berechtigung in der Anfrage sowie den Zugriffsstatus unter der vorgeschlagenen Zulassungsrichtlinie im Vergleich zum Zugriffsstatus unter der aktuellen Zulassungsrichtlinie.
Es gibt verschiedene Arten von Zugriffsänderungen:
Zugriffsänderung Details Zugriff entzogen Das Hauptkonto hatte gemäß der aktuellen Zulassungsrichtlinie Zugriff, hat aber nach der vorgeschlagenen Änderung keinen Zugriff mehr. Zugriff möglicherweise entzogen Das Problem kann folgende Ursachen haben:
- Das Hauptkonto hatte Zugriff unter der aktuellen Zulassungsrichtlinie, aber der Zugriff gemäß der vorgeschlagenen Richtlinie zum Zulassen ist unbekannt.
- Der Zugriff des Hauptkontos war gemäß der aktuellen Zulassungsrichtlinie unbekannt, aber nach der vorgeschlagenen Änderung hat das Hauptkonto keinen Zugriff.
Zugriff erhalten Das Hauptkonto hatte gemäß der aktuellen Zulassungsrichtlinie keinen Zugriff, hat aber nach der vorgeschlagenen Änderung Zugriff. Zugriff möglicherweise erhalten Das Problem kann folgende Ursachen haben:
Zugriffsstatus unbekannt Der Zugriff des Hauptkontos sowohl gemäß der aktuellen Zulassungsrichtlinie als auch der vorgeschlagenen Zulassungsrichtlinie ist unbekannt und die vorgeschlagenen Änderungen können sich auf den Zugriff des Hauptkontos auswirken. Fehler Bei der Simulation ist ein Fehler aufgetreten. Klicken Sie auf die Zugriffsänderung, um weitere Details dazu aufzurufen. Daraufhin wird das Fenster Änderungsdetails ansehen geöffnet, in dem zusätzliche Informationen zur Zugriffsänderung angezeigt werden, einschließlich des vorhandenen Zugriffs des Hauptkontos, des vorgeschlagenen Zugriffs des Hauptkontos und weiterer Details zur Zugriffsänderung.
gcloud
Wenn Sie den Befehl replay-recent-access
verwenden, enthält die Antwort der gcloud CLI eine Liste von replayResults
.
Jedes Wiederholungsergebnis beschreibt einen Zugriffsversuch, dessen Ergebnis anders wäre, wenn die vorgeschlagene Zulassungsrichtlinie zum Zeitpunkt des Versuchs gültig gewesen wäre. Das folgende Wiederholungsergebnis zeigt beispielsweise, dass my-user@example.com
in der Vergangenheit die Berechtigung resourcemanager.projects.update
verwendet hat, um eine Aktion im Projekt my-project
auszuführen. Mit der vorgeschlagenen Zulassungsrichtlinie wird der Zugriff verweigert.
{ "accessTuple": { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project", "permission": "resourcemanager.projects.update", "principal": "my-user@example.com" }, "lastSeenDate": { "day": 15, "month": 1, "year": 2021 }, "diff": { "accessDiff": { "baseline": { "accessState": "GRANTED" }, "simulated": { "accessState": "NOT_GRANTED" }, "accessChange": "ACCESS_REVOKED" } } }
Jedes Wiederholungsergebnis enthält die folgenden Felder:
accessTuple
: Der Zugriffsversuch, auf den sich das Ergebnis bezieht. Dieses Feld enthält die Ressource, die Berechtigung und das Hauptkonto, die am Zugriffsversuch beteiligt waren.lastSeenDate
: Das Datum, an dem der Zugriffsversuch zuletzt erfolgt ist.diff.accessDiff
odererror
: Wenn die Wiederholung eines Zugriffsversuchs erfolgreich ist, enthält das Ergebnis ein Felddiff.accessDiff
, das den Unterschied zwischen den Ergebnissen des Zugriffsversuchs gemäß der aktuellen Zulassungsrichtlinie und der vorgeschlagenen Zulassungsrichtlinie darstellt. Wenn der Wiederholungsversuch nicht erfolgreich ist, enthält das Wiederholungsergebnis das Felderror
mit einer Fehlerbeschreibung. Weitere Informationen zu Simulationsfehlern finden Sie auf dieser Seite unter Fehler.
Jeder dargestellte unterschiedliche Zugriff besteht aus folgenden Komponenten:
baseline
: Das Zugriffsergebnis, wenn die aktuelle Zulassungsrichtlinie verwendet wird. Dies wird mit einem der folgenden Werte dargestellt:GRANTED
,NOT_GRANTED
,UNKNOWN_CONDITIONAL
oderUNKNOWN_INFO_DENIED
. Wenn das ErgebnisUNKNOWN_CONDITIONAL
oderUNKNOWN_INFO_DENIED
ist, werden in der Antwort auch alle Fehler aufgelistet, die mit den unbekannten Informationen verknüpft sind, sowie die Zulassungsrichtlinien, die von diesem Fehler betroffen sind. Weitere Informationen zuUNKNOWN
-Werten finden Sie auf dieser Seite unter Unbekannte Ergebnisse.simulated
: Das Zugriffsergebnis, wenn die vorgeschlagene Zulassungsrichtlinie verwendet wird. Dies wird mit einem der folgenden Werte dargestellt:GRANTED
,NOT_GRANTED
,UNKNOWN_CONDITIONAL
oderUNKNOWN_INFO_DENIED
. Wenn das ErgebnisUNKNOWN_CONDITIONAL
oderUNKNOWN_INFO_DENIED
ist, werden in der Antwort auch alle Fehler aufgelistet, die mit den unbekannten Informationen verknüpft sind, sowie die Zulassungsrichtlinien, die von diesem Fehler betroffen sind. Weitere Informationen zuUNKNOWN
-Werten finden Sie auf dieser Seite unter Unbekannte Ergebnisse.accessChange
: Die Änderung zwischen dem aktuellen Zugriffsstatus und dem simulierten Zugriffsstatus. In der folgenden Tabelle sind mögliche Werte aufgeführt:Zugriffsänderung Details ACCESS_REVOKED
Das Hauptkonto hatte gemäß der aktuellen Zulassungsrichtlinie Zugriff, hat aber nach der vorgeschlagenen Änderung keinen Zugriff mehr. ACCESS_MAYBE_REVOKED
Das Problem kann folgende Ursachen haben:
- Das Hauptkonto hatte Zugriff unter der aktuellen Zulassungsrichtlinie, aber der Zugriff gemäß der vorgeschlagenen Richtlinie zum Zulassen ist unbekannt.
- Der Zugriff des Hauptkontos war gemäß der aktuellen Zulassungsrichtlinie unbekannt, aber nach der vorgeschlagenen Änderung hat das Hauptkonto keinen Zugriff.
ACCESS_GAINED
Das Hauptkonto hatte gemäß der aktuellen Zulassungsrichtlinie keinen Zugriff, hat aber nach der vorgeschlagenen Änderung Zugriff. ACCESS_MAYBE_GAINED
Das Problem kann folgende Ursachen haben:
UNKNOWN_CHANGE
Der Zugriff des Hauptkontos sowohl gemäß der aktuellen Zulassungsrichtlinie als auch der vorgeschlagenen Zulassungsrichtlinie ist unbekannt und die vorgeschlagenen Änderungen können sich auf den Zugriff des Hauptkontos auswirken.
REST
Wenn Sie die Methode replays.results.list
aufrufen, enthält die Antwort eine Liste von replayResults
.
Jedes Wiederholungsergebnis beschreibt einen Zugriffsversuch, dessen Ergebnis anders wäre, wenn die vorgeschlagene Zulassungsrichtlinie zum Zeitpunkt des Versuchs gültig gewesen wäre. Das folgende Wiederholungsergebnis zeigt beispielsweise, dass my-user@example.com
in der Vergangenheit die Berechtigung resourcemanager.projects.update
verwendet hat, um eine Aktion im Projekt my-project
auszuführen. Mit der vorgeschlagenen Zulassungsrichtlinie wird der Zugriff verweigert.
{ "accessTuple": { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project", "permission": "resourcemanager.projects.update", "principal": "my-user@example.com" }, "lastSeenDate": { "day": 15, "month": 1, "year": 2021 }, "diff": { "accessDiff": { "baseline": { "accessState": "GRANTED" }, "simulated": { "accessState": "NOT_GRANTED" }, "accessChange": "ACCESS_REVOKED" } } }
Jedes Wiederholungsergebnis enthält die folgenden Felder:
accessTuple
: Der Zugriffsversuch, auf den sich das Ergebnis bezieht. Dieses Feld enthält die Ressource, die Berechtigung und das Hauptkonto, die am Zugriffsversuch beteiligt waren.lastSeenDate
: Das Datum, an dem der Zugriffsversuch zuletzt erfolgt ist.diff.accessDiff
odererror
: Wenn die Wiederholung eines Zugriffsversuchs erfolgreich ist, enthält das Ergebnis ein Felddiff.accessDiff
, das den Unterschied zwischen den Ergebnissen des Zugriffsversuchs gemäß der aktuellen Zulassungsrichtlinie und der vorgeschlagenen Zulassungsrichtlinie darstellt. Wenn der Wiederholungsversuch nicht erfolgreich ist, enthält das Wiederholungsergebnis das Felderror
mit einer Fehlerbeschreibung. Weitere Informationen zu Simulationsfehlern finden Sie auf dieser Seite unter Fehler.
Jeder dargestellte unterschiedliche Zugriff besteht aus folgenden Komponenten:
baseline
: Das Zugriffsergebnis, wenn die aktuelle Zulassungsrichtlinie verwendet wird. Dies wird mit einem der folgenden Werte dargestellt:GRANTED
,NOT_GRANTED
,UNKNOWN_CONDITIONAL
oderUNKNOWN_INFO_DENIED
. Wenn das ErgebnisUNKNOWN_CONDITIONAL
oderUNKNOWN_INFO_DENIED
ist, werden in der Antwort auch alle Fehler aufgelistet, die mit den unbekannten Informationen verknüpft sind, sowie die Zulassungsrichtlinien, die von diesem Fehler betroffen sind. Weitere Informationen zuUNKNOWN
-Werten finden Sie auf dieser Seite unter Unbekannte Ergebnisse.simulated
: Das Zugriffsergebnis, wenn die vorgeschlagene Zulassungsrichtlinie verwendet wird. Dies wird mit einem der folgenden Werte dargestellt:GRANTED
,NOT_GRANTED
,UNKNOWN_CONDITIONAL
oderUNKNOWN_INFO_DENIED
. Wenn das ErgebnisUNKNOWN_CONDITIONAL
oderUNKNOWN_INFO_DENIED
ist, werden in der Antwort auch alle Fehler aufgelistet, die mit den unbekannten Informationen verknüpft sind, sowie die Zulassungsrichtlinien, die von diesem Fehler betroffen sind. Weitere Informationen zuUNKNOWN
-Werten finden Sie auf dieser Seite unter Unbekannte Ergebnisse.accessChange
: Die Änderung zwischen dem aktuellen Zugriffsstatus und dem simulierten Zugriffsstatus. In der folgenden Tabelle sind mögliche Werte aufgeführt:Zugriffsänderung Details ACCESS_REVOKED
Das Hauptkonto hatte gemäß der aktuellen Zulassungsrichtlinie Zugriff, hat aber nach der vorgeschlagenen Änderung keinen Zugriff mehr. ACCESS_MAYBE_REVOKED
Das Problem kann folgende Ursachen haben:
- Das Hauptkonto hatte Zugriff unter der aktuellen Zulassungsrichtlinie, aber der Zugriff gemäß der vorgeschlagenen Richtlinie zum Zulassen ist unbekannt.
- Der Zugriff des Hauptkontos war gemäß der aktuellen Zulassungsrichtlinie unbekannt, aber nach der vorgeschlagenen Änderung hat das Hauptkonto keinen Zugriff.
ACCESS_GAINED
Das Hauptkonto hatte gemäß der aktuellen Zulassungsrichtlinie keinen Zugriff, hat aber nach der vorgeschlagenen Änderung Zugriff. ACCESS_MAYBE_GAINED
Das Problem kann folgende Ursachen haben:
UNKNOWN_CHANGE
Der Zugriff des Hauptkontos sowohl gemäß der aktuellen Zulassungsrichtlinie als auch der vorgeschlagenen Zulassungsrichtlinie ist unbekannt und die vorgeschlagenen Änderungen können sich auf den Zugriff des Hauptkontos auswirken.
Unbekannte Ergebnisse
Wenn ein Zugriffsergebnis unbekannt ist, bedeutet dies, dass im Richtliniensimulator nicht genügend Informationen vorhanden sind, um den Zugriffsversuch vollständig zu evaluieren.
Console
Wenn ein Zugriffsergebnis unbekannt ist, wird im Detailbereich der Zugriffsänderung der Grund dafür angegeben. Außerdem werden die spezifischen Rollen, Zulassungsrichtlinien, Gruppenmitgliedschaften und Bedingungen aufgelistet, auf die nicht zugegriffen werden konnte oder die nicht evaluiert werden konnten.
Es gibt verschiedene Gründe, warum ein Ergebnis unbekannt sein kann:
- Rolleninformationen verweigert: Das Hauptkonto, das die Simulation ausführt, ist nicht berechtigt, die Rollendetails einer oder mehrerer simulierter Rollen zu sehen.
- Kein Zugriff auf Richtlinie: Das Hauptkonto, das die Simulation ausführt, war nicht berechtigt, die Zulassungsrichtlinie für eine oder mehrere an der Simulation beteiligten Ressourcen abzurufen.
- Informationen zur Mitgliedschaft abgelehnt: Das Hauptkonto, das die Simulation ausführt, hatte keine Berechtigung, die Mitglieder einer oder mehrerer der in der vorgeschlagenen Zulassungsrichtlinie enthaltenen Gruppen anzuzeigen.
- Nicht unterstützte Bedingung: In der Zulassungsrichtlinie, die getestet wird, gibt es eine bedingte Rollenbindung. Bedingungen werden vom Richtliniensimulator nicht unterstützt, sodass die Bindung nicht ausgewertet werden konnte.
gcloud
In der gcloud CLI wird in den Simulationsergebnissen der Grund dafür aufgeführt, warum das Ergebnis in Bezug auf die Zugriffsunterschiede unbekannt ist.
Wenn das Zugriffsergebnis unbekannt ist, liegt einer der folgenden Gründe vor:
UNKNOWN_INFO_DENIED
: Der Nutzer ist nicht berechtigt, auf Informationen zuzugreifen, die zur Evaluierung des Zugriffsstatus erforderlich sind. Dies kann folgende Gründe haben:- Der Nutzer ist nicht berechtigt, die Zulassungsrichtlinie, die simuliert werden soll, abzurufen, oder Zulassungsrichtlinien für Ressourcen in den Zugriffslogs abzurufen.
- Der Nutzer ist nicht berechtigt, eine Gruppenmitgliedschaft einzusehen.
- Der Nutzer kann die erforderlichen Rolleninformationen nicht abrufen.
Welche Informationen fehlen, entnehmen Sie den Fehlerinformationen nach dem angegebenen Zugriffsstatus.
UNKNOWN_CONDITIONAL
: In der getesteten Zulassungsrichtlinie gibt es eine bedingte Rollenbindung. Bedingungen werden vom Richtliniensimulator nicht unterstützt, sodass die Bindung nicht ausgewertet werden konnte.
Wenn das Ergebnis unbekannt ist, enthält das Feld der Zulassungsrichtlinie (baseline
oder simulated
) das Feld errors
, das angibt, warum die Informationen unbekannt sind, und das Feld policies
, in dem die mit den Fehlern verbundenen Zulassungsrichtlinien aufgeführt sind. Weitere Informationen zu Fehlern finden Sie unter Fehler auf dieser Seite.
REST
In der REST API enthalten die Simulationsergebnisse den Grund dafür, warum das Ergebnis in der Zugriffsdifferenz unbekannt ist.
Wenn das Zugriffsergebnis unbekannt ist, liegt einer der folgenden Gründe vor:
UNKNOWN_INFO_DENIED
: Der Nutzer ist nicht berechtigt, auf Informationen zuzugreifen, die zur Evaluierung des Zugriffsstatus erforderlich sind. Dies kann folgende Gründe haben:- Der Nutzer ist nicht berechtigt, die Zulassungsrichtlinie, die simuliert werden soll, abzurufen, oder Zulassungsrichtlinien für Ressourcen in den Zugriffslogs abzurufen.
- Der Nutzer ist nicht berechtigt, eine Gruppenmitgliedschaft einzusehen.
- Der Nutzer kann die erforderlichen Rolleninformationen nicht abrufen.
Welche Informationen fehlen, entnehmen Sie den Fehlerinformationen nach dem angegebenen Zugriffsstatus.
UNKNOWN_CONDITIONAL
: In der getesteten Zulassungsrichtlinie gibt es eine bedingte Rollenbindung. Bedingungen werden vom Richtliniensimulator nicht unterstützt, sodass die Bindung nicht ausgewertet werden konnte.
Wenn das Ergebnis unbekannt ist, enthält das Feld der Zulassungsrichtlinie (baseline
oder simulated
) das Feld errors
, das angibt, warum die Informationen unbekannt sind, und das Feld policies
, in dem die mit den Fehlern verbundenen Zulassungsrichtlinien aufgeführt sind. Weitere Informationen zu Fehlern finden Sie unter Fehler auf dieser Seite.
Fehler
Policy Simulator ermittelt auch Fehler, die während der Simulation aufgetreten sind. Es ist wichtig, diese Fehler zu überprüfen, damit Sie die potenziellen Lücken in der Simulation verstehen.
Console
Policy Simulator kann verschiedene Arten von Fehlern ermitteln:
Vorgangsfehler: Die Simulation konnte nicht ausgeführt werden. Policy Simulator zeigt Vorgangsfehler oben auf der Suchergebnisseite an.
Wenn die Fehlermeldung angibt, dass die Simulation nicht ausgeführt werden konnte, weil in Ihrem Projekt oder Ihrer Organisation zu viele Logs vorhanden sind, können Sie für die Ressource keine Simulation ausführen.
Wenn dieser Fehler aus einem anderen Grund auftritt, führen Sie die Simulation nochmal aus. Wenn Sie die Simulation immer noch nicht ausführen können, wenden Sie sich an policy-simulator-feedback@google.com.
Wiederholungsfehler: Die erneute Ausführung eines einzelnen Zugriffsversuchs war nicht erfolgreich. Daher konnte der Richtliniensimulator nicht ermitteln, ob sich das Ergebnis des Zugriffsversuchs gemäß der vorgeschlagenen Zulassungsrichtlinie ändern würde.
In der Google Cloud Console werden Fehler bei der Wiederholung in der Tabelle Zugriffsänderungen in den letzten 90 Tagen aufgeführt. Der Bereich Änderungsdetails ansehen für jeden Fehler enthält eine Fehlermeldung, die hilft, das Problem zu nachzuvollziehen, sowie die Ressource und die Berechtigung, die beim Auftreten des Fehlers simuliert wurden.
Fehler bei nicht unterstützten Ressourcentypen: Die vorgeschlagene Zulassungsrichtlinie wirkt sich auf Berechtigungen im Zusammenhang mit einem nicht unterstützten Ressourcentyp aus, den der Richtliniensimulator nicht simulieren kann.
Der Richtliniensimulator listet diese Berechtigungen in den Simulationsergebnissen auf, damit Sie wissen, welche Berechtigungen nicht simuliert werden konnten.
gcloud
In den Simulationsergebnissen der gcloud CLI können Fehler an zwei Stellen dargestellt werden:
- Feld
replayResult.error
: Wenn die Wiederholung nicht erfolgreich war, gibt Policy Simulator den Fehler im FeldreplayResult.error
aus. Wenn ein Wiederholungsergebnis dieses Feld enthält, ist das Felddiff
nicht vorhanden. - Das Feld
replayResult.diff.accessDiff.policy-type.errors
, wobei policy-typebaseline
odersimulated
sein kann. Wenn der Wiederholungsversuch erfolgreich war, das Ergebnis jedochUNKNOWN_INFO_DENIED
oderUNKNOWN_CONDITIONAL
ist, gibt Policy Simulator den Grund zurück, warum das Ergebnis in diesem Feld unbekannt ist.
Policy Simulator generiert die folgenden Fehlertypen:
Fehler | Fehlercode | Details |
---|---|---|
GENERIC_INTERNAL_ERROR |
13 | Die Simulation ist aufgrund eines internen Fehlers fehlgeschlagen. Um das Problem zu beheben, führen Sie die Simulation noch einmal aus. Wenn die Simulation weiterhin fehlschlägt, wenden Sie sich an policy-simulator-feedback@google.com. |
INVALID_ACCESS_TUPLE |
3 | Policy Simulator konnte den Zugriffsversuch nicht wiederholen, da er eine ungültige Berechtigung, einen ungültigen Ressourcennamen oder ein ungültiges Hauptkonto enthält. |
OUT_OF_RANGE_GROUP_TOO_LARGE |
11 | Policy Simulator konnte die Mitgliedschaft des Hauptkontos in der Gruppe nicht evaluieren, da die Gruppe zu viele Untergruppen enthält. Dieser Fehler ist mit UNKNOWN_INFO_DENIED -Zugriffsänderungen verbunden. |
PERMISSION_DENIED_ON_GROUP_MEMBERSHIP |
7 | Policy Simulator konnte den Zugriff eines Nutzers nicht evaluieren, da der Aufrufer keine Berechtigung zur Anzeige der Gruppenmitgliedschaft hat. Dieser Fehler ist mit UNKNOWN_INFO_DENIED -Zugriffsänderungen verbunden. |
PERMISSION_DENIED_ON_IAM_POLICY |
7 | Policy Simulator konnte den Zugriff eines Nutzers nicht evaluieren, da der Aufrufer keine Berechtigung hat, eine Zulassungsrichtlinie abzurufen. Dieser Fehlertyp ist mit UNKNOWN_INFO_DENIED -Zugriffsänderungen verbunden. |
PERMISSION_DENIED_ON_IAM_ROLE |
7 | Policy Simulator konnte den Zugriff eines Nutzers nicht evaluieren, da der Aufrufer keine Berechtigung hat, die Berechtigungen in einer IAM-Rolle abzurufen. Dieser Fehlertyp ist mit UNKNOWN_INFO_DENIED -Zugriffsänderungen verbunden. |
PERMISSION_DENIED_ON_PARENT_IAM_POLICY |
7 | Policy Simulator konnte den Zugriff eines Nutzers nicht evaluieren, da der Aufrufer keine Berechtigung hat, die Zulassungsrichtlinie einer Ancestor-Ressource abzurufen. Dieser Fehlertyp ist mit UNKNOWN_INFO_DENIED -Zugriffsänderungen verbunden. |
UNIMPLEMENTED_MEMBER_TYPE |
12 | Das Zugriffs-Tupel enthält einen Hauptkontotyp, der von Policy Simulator nicht unterstützt wird. |
UNIMPLEMENTED_MEMBER |
12 | Das Zugriffs-Tupel enthält ein Hauptkonto, das von Policy Simulator nicht unterstützt wird. |
UNIMPLEMENTED_CONDITION |
12 | Das Zugriffs-Tupel enthält eine Bedingung, die von Policy Simulator nicht unterstützt wird. Dieser Fehlertyp ist mit UNKNOWN_CONDITIONAL -Zugriffsänderungen verbunden. |
LOG_SIZE_TOO_LARGE |
8 | Die Ressource ist mit zu vielen Zugriffslogs verknüpft. Daher kann Policy Simulator die Simulation nicht ausführen. Weitere Informationen finden Sie auf der Seite mit den Policy Simulator-Konzepten unter Maximale Loggröße für die Wiederholung. |
UNSUPPORTED_RESOURCE |
12 |
Die vorgeschlagene Zulassungsrichtlinie ändert Berechtigungen, die mit nicht unterstützten Ressourcentypen verknüpft sind. Dieser Fehler wird im Feld "error": { "code": 12, "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.create" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.setIamPolicy" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.get" }, "reason": "UNSUPPORTED_RESOURCE" } ], "message": "unsupported-permissions-error-message" } Weitere Informationen zu nicht unterstützten Ressourcentypen finden Sie auf der Policy Simulator-Konzeptseite unter Supportstufen für Ressourcentypen. |
REST
In REST API-Simulationsergebnissen können Fehler an zwei Stellen enthalten sein:
- Feld
replayResult.error
: Wenn die Wiederholung nicht erfolgreich war, gibt Policy Simulator den Fehler im FeldreplayResult.error
aus. Wenn ein Wiederholungsergebnis dieses Feld enthält, ist das Felddiff
nicht vorhanden. - Das Feld
replayResult.diff.accessDiff.policy-type.errors
, wobei policy-typebaseline
odersimulated
sein kann. Wenn der Wiederholungsversuch erfolgreich war, das Ergebnis jedochUNKNOWN_INFO_DENIED
oderUNKNOWN_CONDITIONAL
ist, gibt Policy Simulator den Grund zurück, warum das Ergebnis in diesem Feld unbekannt ist.
Policy Simulator generiert die folgenden Fehlertypen:
Fehler | Fehlercode | Details |
---|---|---|
GENERIC_INTERNAL_ERROR |
13 | Die Simulation ist aufgrund eines internen Fehlers fehlgeschlagen. Um das Problem zu beheben, führen Sie die Simulation noch einmal aus. Wenn die Simulation weiterhin fehlschlägt, wenden Sie sich an policy-simulator-feedback@google.com. |
INVALID_ACCESS_TUPLE |
3 | Policy Simulator konnte den Zugriffsversuch nicht wiederholen, da er eine ungültige Berechtigung, einen ungültigen Ressourcennamen oder ein ungültiges Hauptkonto enthält. |
OUT_OF_RANGE_GROUP_TOO_LARGE |
11 | Policy Simulator konnte die Mitgliedschaft des Hauptkontos in der Gruppe nicht evaluieren, da die Gruppe zu viele Untergruppen enthält. Dieser Fehler ist mit UNKNOWN_INFO_DENIED -Zugriffsänderungen verbunden. |
PERMISSION_DENIED_ON_GROUP_MEMBERSHIP |
7 | Policy Simulator konnte den Zugriff eines Nutzers nicht evaluieren, da der Aufrufer keine Berechtigung zur Anzeige der Gruppenmitgliedschaft hat. Dieser Fehler ist mit UNKNOWN_INFO_DENIED -Zugriffsänderungen verbunden. |
PERMISSION_DENIED_ON_IAM_POLICY |
7 | Policy Simulator konnte den Zugriff eines Nutzers nicht evaluieren, da der Aufrufer keine Berechtigung hat, eine Zulassungsrichtlinie abzurufen. Dieser Fehlertyp ist mit UNKNOWN_INFO_DENIED -Zugriffsänderungen verbunden. |
PERMISSION_DENIED_ON_IAM_ROLE |
7 | Policy Simulator konnte den Zugriff eines Nutzers nicht evaluieren, da der Aufrufer keine Berechtigung hat, die Berechtigungen in einer IAM-Rolle abzurufen. Dieser Fehlertyp ist mit UNKNOWN_INFO_DENIED -Zugriffsänderungen verbunden. |
PERMISSION_DENIED_ON_PARENT_IAM_POLICY |
7 | Policy Simulator konnte den Zugriff eines Nutzers nicht evaluieren, da der Aufrufer keine Berechtigung hat, die Zulassungsrichtlinie einer Ancestor-Ressource abzurufen. Dieser Fehlertyp ist mit UNKNOWN_INFO_DENIED -Zugriffsänderungen verbunden. |
UNIMPLEMENTED_MEMBER_TYPE |
12 | Das Zugriffs-Tupel enthält einen Hauptkontotyp, der von Policy Simulator nicht unterstützt wird. |
UNIMPLEMENTED_MEMBER |
12 | Das Zugriffs-Tupel enthält ein Hauptkonto, das von Policy Simulator nicht unterstützt wird. |
UNIMPLEMENTED_CONDITION |
12 | Das Zugriffs-Tupel enthält eine Bedingung, die von Policy Simulator nicht unterstützt wird. Dieser Fehlertyp ist mit UNKNOWN_CONDITIONAL -Zugriffsänderungen verbunden. |
LOG_SIZE_TOO_LARGE |
8 | Die Ressource ist mit zu vielen Zugriffslogs verknüpft. Daher kann Policy Simulator die Simulation nicht ausführen. Weitere Informationen finden Sie auf der Seite mit den Policy Simulator-Konzepten unter Maximale Loggröße für die Wiederholung. |
UNSUPPORTED_RESOURCE |
12 |
Die vorgeschlagene Zulassungsrichtlinie ändert Berechtigungen, die mit nicht unterstützten Ressourcentypen verknüpft sind. Dieser Fehler wird im Feld "error": { "code": 12, "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.create" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.setIamPolicy" }, "reason": "UNSUPPORTED_RESOURCE" }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "policysimulator.googleapis.com", "metadata": { "permission": "storage.objects.get" }, "reason": "UNSUPPORTED_RESOURCE" } ], "message": "unsupported-permissions-error-message" } Weitere Informationen zu nicht unterstützten Ressourcentypen finden Sie auf der Policy Simulator-Konzeptseite unter Supportstufen für Ressourcentypen. |
Simulierte Richtlinienänderung anwenden
So wenden Sie eine simulierte Änderung auf eine Zulassungsrichtlinie an:
Console
Klicken Sie auf Vorgeschlagene Änderungen übernehmen.
Klicken Sie im Bestätigungsdialogfeld auf Anwenden, um die Änderung zu bestätigen.
gcloud
Verwenden Sie den Befehl set-iam-policy
und geben Sie den Pfad zur JSON-Datei an, die die simulierte Zulassungsrichtlinie enthält, die Sie anwenden möchten:
gcloud resource-type set-iam-policy resource-id filepath
Geben Sie folgende Werte an:
resource-type
: Der Ressourcentyp, dessen Zulassungsrichtlinie Sie aktualisieren möchten. Beispiel:projects
.resource-id
: Die ID der Ressource, deren Zulassungsrichtlinie Sie aktualisieren möchten. Beispiel:my-project
.filepath
: Der Pfad zu einer Datei, die die aktualisierte Zulassungsrichtlinie enthält.
Die Antwort enthält die aktualisierte Zulassungsrichtlinie: Wenn Sie IAM-Zulassungsrichtlinien als Code verwenden und in einem Versionsverwaltungssystem ablegen, sollten Sie die von der gcloud CLI zurückgegebene Zulassungsrichtlinie speichern und nicht die JSON-Datei, die die simulierte Zulassungsrichtlinie enthält.
REST
Legen Sie die vorgeschlagene Zulassungsrichtlinie als neue Zulassungsrichtlinie der Ressource fest.
Verwenden Sie die Methode projects.setIamPolicy
der Resource Manager API, um die Zulassungsrichtlinie in der Anfrage als neue Zulassungsrichtlinie des Projekts festzulegen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.POLICY
: Eine JSON-Darstellung der Richtlinie, die Sie festlegen möchten. Weitere Informationen zum Format einer Richtlinie finden Sie in der Richtlinienreferenz.
HTTP-Methode und URL:
POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
JSON-Text anfordern:
{ "policy": { POLICY } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Die Antwort enthält die aktualisierte Zulassungsrichtlinie:
Simulationsergebnisse speichern
Wenn Sie die gcloud CLI verwenden, können Sie die Policy Simulator-Ergebnisse als JSON-, YAML- oder CSV-Datei speichern.
Als JSON oder YAML speichern
Um die Ergebnisse einer Simulation als JSON- oder YAML-Datei zu speichern, fügen Sie dem Befehl replay-recent-access
beim Ausführen der Simulation das folgende Flag hinzu:
--output=output-format > filename
Ersetzen Sie dabei die folgenden Werte:
output-format
: Die Sprache der exportierten Datei, entwederjson
oderyaml
.filename
: Der Name für die exportierte Datei.
Als CSV speichern
Um die Ergebnisse einer Simulation als CSV-Datei zu speichern, fügen Sie beim Ausführen der Simulation zum Befehl replay-recent-access
das folgende Flag hinzu:
--flatten="diffs[]" --format=csv(output-fields) > filename
Ersetzen Sie dabei die folgenden Werte:
output-fields
: Eine durch Kommas getrennte Liste der Felder, die Sie in die exportierten Ergebnisse aufnehmen möchten. Beispiel:diffs.accessTuple.principal, diffs.accessTuple.permission
filename
: Der Name für die exportierte Datei.
Optional können Sie dem Flag --flatten
zusätzliche Felder hinzufügen, z. B. errors[]
. Wenn Sie dem Flag --flatten
Felder hinzufügen, haben Sie die Möglichkeit, die Elemente in diesen Feldern in separaten Zeilen der CSV-Datei anzugeben.
Das folgende Beispiel zeigt einen replay-recent-access
-Befehl, mit dem die wichtigsten Felder der Simulationsergebnisse als CSV-Datei simulation-results.csv
gespeichert werden:
gcloud iam simulator replay-recent-access --flatten="diffs[]" \ --format="csv(diffs.accessTuple.principal, diffs.accessTuple.permission, \ diffs.accessTuple.fullResourceName, diffs.diff.accessDiff.accessChange, \ diffs.diff.accessDiff.baseline.accessState, \ diffs.diff.accessDiff.simulated.accessState)" \ //cloudresourcemanager.googleapis.com/projects/my-project \ proposed-policy.json > simulation-results.csv
In diesem Beispiel wird proposed-policy.json
für das Projekt my-project
simuliert und die Ergebnisse werden als simulation-results.csv
gespeichert. Diese CSV-Datei enthält die folgenden Felder: Hauptkonto, Berechtigung, Ressource, Zugriffsänderung, aktueller Zugriffsstatus und simulierter Zugriffsstatus.
Weitere Informationen zur Formatierung mit der gcloud CLI finden Sie unter Formate.
Nächste Schritte
- Fehler bei Zugriff für vorhandene Hauptkonten beheben
- Weitere Informationen finden Sie unter Geringste Berechtigung mit Rollenempfehlungen erzwingen.