Fehler bei IAM-Berechtigungen beheben

Mit der Richtlinien-Fehlerbehebung können Sie nachvollziehen, ob ein Hauptkonto auf eine Ressource zugreifen kann. Wenn Sie ein Hauptkonto, eine Ressource und eine Berechtigung angeben, prüft die Richtlinien-Fehlerbehebung die Zulassungs-, Ablehnungs- und PAB-Richtlinien (Principal Access Boundary), die sich auf den Zugriff des Hauptkontos auswirken. Anschließend wird angezeigt, ob das Hauptkonto gemäß diesen Richtlinien die angegebene Berechtigung für den Zugriff auf die Ressource verwenden kann. Außerdem werden die relevanten Richtlinien aufgeführt und erläutert, wie sie sich auf den Zugriff des Hauptkontos auswirken.

Sie können über die Google Cloud Console, die Google Cloud CLI oder die REST API auf die Richtlinien-Fehlerbehebung zugreifen. Bei einfachen Abfragen ist die Verwendung der Google Cloud Console normalerweise am schnellsten. Bei komplexeren Szenarien sollten Sie die gcloud CLI oder die REST API verwenden.

Vorbereitung

  • Enable the Policy Troubleshooter API.

    Enable the API

Erforderliche Berechtigungen

Zur vollständigen Behebung von Zugriffsproblemen für Hauptkonten benötigen Sie die folgenden Berechtigungen.

Berechtigungen zur Fehlerbehebung bei Zugriffen für einzelne Hauptberechtigte

Die Richtlinien-Fehlerbehebung analysiert den Zugriff eines Hauptkontos auf eine Ressource anhand der Zulassungs-, Ablehnungs-, Principal Access Boundary-Richtlinien und Rollen, zu deren Aufrufen Sie berechtigt sind. Wenn Sie keine Berechtigung zum Aufrufen einer Richtlinie haben, die für eine Ressource gilt, oder wenn Sie keine Berechtigung zum Aufrufen einer benutzerdefinierten Rolle haben, können Sie möglicherweise nicht feststellen, ob ein Hauptkonto Zugriff hat.

Berechtigungen zur Fehlerbehebung bei Zulassungs- und Ablehnungsrichtlinien

Wenn Sie Probleme mit Zulassungs- und Ablehnungsrichtlinien beheben möchten, benötigen Sie Berechtigungen für die Organisation, die die Ressource enthält, für die Sie die Fehlerbehebung durchführen möchten. Mit diesen Berechtigungen können Sie die Zulassungs- und Ablehnungsrichtlinien aufrufen, die den Zugriff auf die Ressource steuern.

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für die Organisation zuzuweisen, die die Ressource enthält, für die Sie die Zugriffsproblembehebung durchführen möchten, um die Berechtigungen zu erhalten, die Sie zur Fehlerbehebung für den Zugriff eines Hauptkontos benötigen:

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

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Wenn Sie nicht berechtigt sind, die Zulassungs- und Ablehnungsrichtlinien für eine Ressource aufzurufen, sind die Zugriffsergebnisse für diese Richtlinien Unknown.

Berechtigungen zur Fehlerbehebung bei Principal Access Boundary-Richtlinien

Für die Fehlerbehebung bei Principal Access Boundary-Richtlinien benötigen Sie Berechtigungen für die Organisation, deren Hauptkontosatz das Hauptkonto enthält. Wie Sie diese Organisation identifizieren, hängt vom Typ des Hauptkontos ab:

  • Google-Konten und Google-Gruppen: Die Organisation, die mit der Google Workspace-Domain verknüpft ist, die die Hauptperson enthält
  • Föderierte Identitäten (Identitäten in Workforce Identity-Pools oder Workload Identity-Pools): Die Organisation, die den Identitätspool mit dem Principal enthält
  • Dienstkonten: Die Organisation, die das Projekt enthält, in dem das Dienstkonto erstellt wurde

Mit diesen Berechtigungen können Sie die Principal Access Boundary-Richtlinien aufrufen, die festlegen, auf was das Hauptkonto zugreifen kann.

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für die entsprechende Organisation zuzuweisen, um die Berechtigungen zu erhalten, die Sie zur Fehlerbehebung für den Zugriff eines Hauptkontos benötigen:

  • Principal Access Boundary Policy Viewer (roles/iam.principalAccessBoundaryViewer)
  • Probleme mit Principal Access Boundary-Richtlinien beheben, die an den Hauptkontosatz eines Projekts, Ordners oder einer Organisation gebunden sind: Organization Administrator (roles/resourcemanager.organizationAdmin)
  • Probleme mit Principal Access Boundary-Richtlinien beheben, die an Google Workspace-Domains gebunden sind: Workspace Pool IAM Admin (roles/iam.workspacePoolAdmin)
  • Probleme mit Principal Access Boundary-Richtlinien beheben, die an Mitarbeiteridentitätspools gebunden sind: IAM-Mitarbeiterpool-Administrator (roles/iam.workforcePoolAdmin)
  • Probleme mit Principal Access Boundary-Richtlinien beheben, die an Workload Identity-Pools gebunden sind: IAM Workload Identity Pool Admin (roles/iam.workloadIdentityPoolAdmin)

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

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Wenn Sie nicht berechtigt sind, die Principal Access Boundary-Richtlinien aufzurufen, die für ein Hauptkonto gelten, sind die Zugriffsergebnisse für Principal Access Boundary-Richtlinien Unknown.

Berechtigungen zur Fehlerbehebung beim Zugriff für Gruppenmitglieder

Wenn Ihre Zulassungs- und Ausschlussrichtlinien Gruppen enthalten, benötigen Sie die Google Workspace Admin API-Berechtigung groups.read, um die Fehlerbehebung für den Zugriff auf einzelne Gruppenmitglieder auszuführen. Super Admins und Group Admins haben diese Berechtigung automatisch. Wenn Sie einem Nutzer, der kein Super Admin oder Group Admin ist, diese Berechtigung erteilen möchten, erstellen Sie eine benutzerdefinierte Google Workspace-Administrator-Administratorrolle, die die Berechtigung groups.read enthält (unter Admin API-Berechtigungen) und gewähren Sie sie dem Nutzer.

Wenn Sie diese Berechtigungen nicht haben, haben Rollenbindungen und Ablehnungsregeln, die Gruppen oder Domains enthalten, ein Zugriffsergebnis von Unbekannt, es sei denn, die Rollenbindung oder Ablehnungsregel schließt das Hauptkonto ausdrücklich ein.

Berechtigungen zur Fehlerbehebung beim Zugriff für Domainmitglieder

Wenn Ihre Zulassungs- und Ausschlussrichtlinien ein Google Workspace-Konto oder eine Cloud Identity-Domain enthalten, müssen Sie Domainadministrator sein, um die Zugriffsprobleme für einzelne Domainmitglieder zu beheben.

Wenn Sie diese Berechtigungen nicht haben, haben Rollenbindungen und Ablehnungsregeln, die Gruppen oder Domains enthalten, ein Zugriffsergebnis von Unbekannt, es sei denn, die Rollenbindung oder Ablehnungsregel schließt das Hauptkonto ausdrücklich ein.

Auf die Fehlerbehebung zugreifen

Zur Fehlerbehebung für den Zugriff benötigen Sie die folgenden Informationen:

  • Hauptkonto: Die zu überprüfende E-Mail-Adresse. Die E-Mail-Adresse muss sich auf einen Nutzer oder ein Dienstkonto beziehen. Andere Hauptkontentypen wie Gruppen, Domains, Mitarbeiteridentitäten und Arbeitslastidentitäten werden nicht unterstützt.
  • Ressource:Der vollständige Name der Ressource, für die Sie Fehler beheben möchten. Wenn Sie beispielsweise Probleme mit dem Zugriff auf das Projekt my-project beheben möchten, geben Sie //cloudresourcemanager.googleapis.com/projects/my-project ein. Weitere Ressourcentypen finden Sie in den Beispielen für vollständige Ressourcennamen.

  • Berechtigung: Die zu prüfende Berechtigung. Wenn Sie die Google Cloud Console verwenden, wird während der Eingabe eine Liste mit Vorschlägen angezeigt.

    Damit eine Berechtigung behoben werden kann, muss sie für die Ressource in der Anfrage gelten. Mit anderen Worten: Es muss möglich sein, mit dieser Berechtigung auf die Ressource zuzugreifen. Wenn die Berechtigung nicht für die Ressource gilt, schlägt die Anfrage fehl. Wenn Sie beispielsweise versuchen, Probleme mit der Berechtigung compute.instances.get für einen Google Kubernetes Engine-Cluster zu beheben, schlägt die Anfrage fehl, da die Berechtigung compute.instances.get nicht zum Zugriff auf Google Kubernetes Engine-Cluster verwendet werden kann.compute.instance.get

    Eine vollständige Liste der Berechtigungen finden Sie in der Berechtigungsreferenz.

Console

So beheben Sie Zugriffsprobleme:

  1. Rufen Sie in der Google Cloud Console die Seite Richtlinien-Fehlerbehebung auf.

    Zur Seite "Richtlinien-Fehlerbehebung"

  2. Geben Sie die E-Mail-Adresse des Hauptkontos ein, dessen Zugriff Sie prüfen möchten.

  3. Geben Sie den vollständigen Ressourcennamen der zu prüfenden Ressource ein.

    Wenn Sie den vollständigen Ressourcennamen nicht kennen, haben Sie folgende Möglichkeiten:

    • Wenn Sie Probleme mit dem Zugriff auf ein Projekt, einen Ordner oder eine Organisation beheben, beginnen Sie mit der Eingabe, um Vorschläge für die automatische Vervollständigung zu sehen.
    • Wenn Sie Probleme mit dem Zugriff für einen anderen Ressourcentyp beheben möchten, klicken Sie auf Suchen, um das Dialogfeld für die Ressourcensuche zu öffnen, und suchen Sie dann nach der Ressource:

      1. Wählen Sie im Feld Umfang auswählen ein Projekt, einen Ordner oder eine Organisation aus, in dem bzw. der Sie suchen möchten.
      2. Wählen Sie im Feld Ressourcentyp die Ressourcentypen aus, nach denen Sie suchen möchten.
      3. Geben Sie in das Feld Nach Ressourcen suchen einen Teil des Ressourcennamens ein.
      4. Wählen Sie im Bereich „Ergebnisse“ die Ressource aus, die Sie prüfen möchten.
      5. Klicken Sie auf Auswählen, um die Ressource auszuwählen und das Dialogfeld zu schließen.
  4. Geben Sie die zu prüfende Berechtigung ein.

    Wenn Sie den vollständigen Namen der Berechtigung nicht kennen, beginnen Sie mit der Eingabe, um Vorschläge für die automatische Vervollständigung zu sehen.

  5. Optional: Wählen Sie zum Hinzufügen mehrerer Ressourcen und Berechtigungen Weiteres Paar hinzufügen aus und wiederholen Sie den vorherigen Schritt.

  6. Klicken Sie auf Zugriff prüfen.

gcloud

Mit dem Befehl gcloud beta policy-troubleshoot iam können Sie herausfinden, warum ein Hauptkonto eine IAM-Berechtigung hat oder warum nicht.

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • VERSION: Optional. Die Version des Befehls, die verwendet werden soll. Wenn Sie nur Probleme mit dem Zugriff auf der Grundlage von Zulassungs- und Ablehnungsrichtlinien beheben möchten, geben Sie keine Version an. Verwenden Sie Version beta, um Probleme mit dem Zugriff auf der Grundlage von Zulassungs-, Ablehnungs- und Principal Access Boundary-Richtlinien zu beheben.
  • EMAIL: Die E-Mail-Adresse des Hauptkontos, für dessen Berechtigungen Sie eine Fehlerbehebung ausführen möchten.
  • RESOURCE: Die Ressource, für die die Berechtigung gewährt wird.
  • PERMISSION: Die Berechtigung, für die Sie eine Fehlerbehebung ausführen möchten.

Führen Sie den Befehl gcloud beta policy-troubleshoot iam aus:

Linux, macOS oder Cloud Shell

gcloud VERSION policy-intelligence troubleshoot-policy iam RESOURCE --principal-email=EMAIL \
    --permission=PERMISSION

Windows (PowerShell)

gcloud VERSION policy-intelligence troubleshoot-policy iam RESOURCE --principal-email=EMAIL `
    --permission=PERMISSION

Windows (cmd.exe)

gcloud VERSION policy-intelligence troubleshoot-policy iam RESOURCE --principal-email=EMAIL ^
    --permission=PERMISSION

Sie sollten eine Antwort ähnlich der folgenden erhalten:

Antwort

{
  "accessTuple": {
    "conditionContext": {
      "destination": {},
      "effectiveTags": [
        {
          "namespacedTagKey": "project-1/tag-key-1",
          "namespacedTagValue": "project-1/tag-key-1/tag-value-1",
          "tagKey": "tagKeys/123456789012",
          "tagKeyParentName": "projects/123456789012",
          "tagValue": "tagValues/123456789012"
        },
      ],
      "request": {},
      "resource": {}
    },
    "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/project-1",
    "permission": "bigtable.instances.create",
    "permissionFqdn": "bigtable.googleapis.com/instances.create",
    "principal": "service-account-3@project-1.iam.gserviceaccount.com"
  },
  "allowPolicyExplanation": {
    "allowAccessState": "ALLOW_ACCESS_STATE_NOT_GRANTED",
    "explainedPolicies": [
      {
        "allowAccessState": "ALLOW_ACCESS_STATE_NOT_GRANTED",
        "bindingExplanations": [
          {
            "allowAccessState": "ALLOW_ACCESS_STATE_NOT_GRANTED",
            "combinedMembership": {
              "membership": "MEMBERSHIP_NOT_MATCHED",
              "relevance": "HEURISTIC_RELEVANCE_NORMAL"
            },
            "condition": {
              "expression": "resource.type == \"cloudresourcemanager.googleapis.com/Project\"",
              "title": "Resource-based condition"
            },
            "conditionExplanation": {
              "evaluationStates": [
                {
                  "end": 62,
                  "value": false
                }
              ],
              "value": false
            },
            "memberships": {
              "serviceAccount:service-account-1@project-1.iam.gserviceaccount.com": {
                "membership": "MEMBERSHIP_NOT_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              }
            },
            "relevance": "HEURISTIC_RELEVANCE_NORMAL",
            "role": "roles/bigquery.admin",
            "rolePermission": "ROLE_PERMISSION_NOT_INCLUDED",
            "rolePermissionRelevance": "HEURISTIC_RELEVANCE_NORMAL"
          },
          {
            "allowAccessState": "ALLOW_ACCESS_STATE_NOT_GRANTED",
            "combinedMembership": {
              "membership": "MEMBERSHIP_NOT_MATCHED",
              "relevance": "HEURISTIC_RELEVANCE_NORMAL"
            },
            "condition": {
              "expression": "resource.matchTag(\"project-1/tag-key-1\", \"tag-value-1\")",
              "title": "Tag-based condition"
            },
            "conditionExplanation": {
              "evaluationStates": [
                {
                  "end": 73,
                  "value": true
                }
              ],
              "value": true
            },
            "memberships": {
              "serviceAccount:service-account-2@project-1.iam.gserviceaccount.com": {
                "membership": "MEMBERSHIP_NOT_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              }
            },
            "relevance": "HEURISTIC_RELEVANCE_NORMAL",
            "role": "roles/bigquery.admin",
            "rolePermission": "ROLE_PERMISSION_NOT_INCLUDED",
            "rolePermissionRelevance": "HEURISTIC_RELEVANCE_NORMAL"
          },
          {
            "allowAccessState": "ALLOW_ACCESS_STATE_NOT_GRANTED",
            "combinedMembership": {
              "membership": "MEMBERSHIP_NOT_MATCHED",
              "relevance": "HEURISTIC_RELEVANCE_NORMAL"
            },
            "memberships": {
              "user:user-2@example.com": {
                "membership": "MEMBERSHIP_NOT_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              }
            },
            "relevance": "HEURISTIC_RELEVANCE_NORMAL",
            "role": "roles/compute.admin",
            "rolePermission": "ROLE_PERMISSION_NOT_INCLUDED",
            "rolePermissionRelevance": "HEURISTIC_RELEVANCE_NORMAL"
          },
          {
            "allowAccessState": "ALLOW_ACCESS_STATE_NOT_GRANTED",
            "combinedMembership": {
              "membership": "MEMBERSHIP_NOT_MATCHED",
              "relevance": "HEURISTIC_RELEVANCE_NORMAL"
            },
            "memberships": {
              "user:user-1@example.com": {
                "membership": "MEMBERSHIP_NOT_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              },
              "user:user-3@example.com": {
                "membership": "MEMBERSHIP_NOT_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              }
            },
            "relevance": "HEURISTIC_RELEVANCE_NORMAL",
            "role": "roles/iam.serviceAccountTokenCreator",
            "rolePermission": "ROLE_PERMISSION_NOT_INCLUDED",
            "rolePermissionRelevance": "HEURISTIC_RELEVANCE_NORMAL"
          },
          {
            "allowAccessState": "ALLOW_ACCESS_STATE_NOT_GRANTED",
            "combinedMembership": {
              "membership": "MEMBERSHIP_NOT_MATCHED",
              "relevance": "HEURISTIC_RELEVANCE_NORMAL"
            },
            "memberships": {
              "user:user-2@example.com": {
                "membership": "MEMBERSHIP_NOT_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              },
              "user:user-1@example.com": {
                "membership": "MEMBERSHIP_NOT_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              }
            },
            "relevance": "HEURISTIC_RELEVANCE_HIGH",
            "role": "roles/owner",
            "rolePermission": "ROLE_PERMISSION_INCLUDED",
            "rolePermissionRelevance": "HEURISTIC_RELEVANCE_HIGH"
          },
          {
            "allowAccessState": "ALLOW_ACCESS_STATE_NOT_GRANTED",
            "combinedMembership": {
              "membership": "MEMBERSHIP_MATCHED",
              "relevance": "HEURISTIC_RELEVANCE_NORMAL"
            },
            "memberships": {
              "serviceAccount:service-account-3@project-1.iam.gserviceaccount.com": {
                "membership": "MEMBERSHIP_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              },
              "serviceAccount:service-account-4@project-1.iam.gserviceaccount.com": {
                "membership": "MEMBERSHIP_NOT_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              }
            },
            "relevance": "HEURISTIC_RELEVANCE_NORMAL",
            "role": "roles/resourcemanager.projectIamAdmin",
            "rolePermission": "ROLE_PERMISSION_NOT_INCLUDED",
            "rolePermissionRelevance": "HEURISTIC_RELEVANCE_NORMAL"
          },
          {
            "allowAccessState": "ALLOW_ACCESS_STATE_NOT_GRANTED",
            "combinedMembership": {
              "membership": "MEMBERSHIP_NOT_MATCHED",
              "relevance": "HEURISTIC_RELEVANCE_NORMAL"
            },
            "memberships": {
              "serviceAccount:service-account-4@project-1.iam.gserviceaccount.com": {
                "membership": "MEMBERSHIP_NOT_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              }
            },
            "relevance": "HEURISTIC_RELEVANCE_NORMAL",
            "role": "roles/resourcemanager.tagViewer",
            "rolePermission": "ROLE_PERMISSION_NOT_INCLUDED",
            "rolePermissionRelevance": "HEURISTIC_RELEVANCE_NORMAL"
          }
        ],
        "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/project-1",
        "policy": {
          "bindings": [
            {
              "condition": {
                "expression": "resource.type == \"cloudresourcemanager.googleapis.com/Project\"",
                "title": "Resource-based condition"
              },
              "members": [
                "serviceAccount:service-account-1@project-1.iam.gserviceaccount.com"
              ],
              "role": "roles/bigquery.admin"
            },
            {
              "condition": {
                "expression": "resource.matchTag(\"project-1/tag-key-1\", \"tag-value-1\")",
                "title": "Tag-based condition"
              },
              "members": [
                "serviceAccount:service-account-2@project-1.iam.gserviceaccount.com"
              ],
              "role": "roles/bigquery.admin"
            },
            {
              "members": [
                "user:user-2@example.com"
              ],
              "role": "roles/compute.admin"
            },
            {
              "members": [
                "user:user-1@example.com",
                "user:user-3@example.com"
              ],
              "role": "roles/iam.serviceAccountTokenCreator"
            },
            {
              "members": [
                "user:user-2@example.com",
                "user:user-1@example.com"
              ],
              "role": "roles/owner"
            },
            {
              "members": [
                "serviceAccount:service-account-3@project-1.iam.gserviceaccount.com",
                "serviceAccount:service-account-4@project-1.iam.gserviceaccount.com"
              ],
              "role": "roles/resourcemanager.projectIamAdmin"
            },
            {
              "members": [
                "serviceAccount:service-account-4@project-1.iam.gserviceaccount.com"
              ],
              "role": "roles/resourcemanager.tagViewer"
            }
          ],
          "etag": "BwYY6ttEMEY=",
          "version": 3
        },
        "relevance": "HEURISTIC_RELEVANCE_HIGH"
      },
    ],
    "relevance": "HEURISTIC_RELEVANCE_HIGH"
  },
  "denyPolicyExplanation": {
    "denyAccessState": "DENY_ACCESS_STATE_NOT_DENIED",
    "explainedResources": [
      {
        "denyAccessState": "DENY_ACCESS_STATE_NOT_DENIED",
        "explainedPolicies": [
          {
            "denyAccessState": "DENY_ACCESS_STATE_NOT_DENIED",
            "policy": {
              "createTime": "2024-04-09T23:28:24.103203Z",
              "displayName": "Troubleshooter v3 prober non-tag deny policy",
              "etag": "MTgyMzk3MDY4OTY4MDE0ODg4OTY=",
              "kind": "DenyPolicy",
              "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F546942305807/denypolicies/deny-policy-1",
              "rules": [
                {
                  "denyRule": {
                    "deniedPermissions": [
                      "bigquery.googleapis.com/datasets.create"
                    ],
                    "deniedPrincipals": [
                      "principal://iam.googleapis.com/projects/-/serviceAccounts/service-account-1@project-1.iam.gserviceaccount.com"
                    ]
                  }
                }
              ],
              "uid": "fab63b4d-ecfb-5f06-8a6d-602bf1be5062",
              "updateTime": "2024-05-20T23:29:38.428095Z"
            },
            "relevance": "HEURISTIC_RELEVANCE_HIGH",
            "ruleExplanations": [
              {
                "combinedDeniedPermission": {
                  "permissionMatchingState": "PERMISSION_PATTERN_NOT_MATCHED",
                  "relevance": "HEURISTIC_RELEVANCE_HIGH"
                },
                "combinedDeniedPrincipal": {
                  "membership": "MEMBERSHIP_NOT_MATCHED",
                  "relevance": "HEURISTIC_RELEVANCE_HIGH"
                },
                "combinedExceptionPermission": {
                  "permissionMatchingState": "PERMISSION_PATTERN_NOT_MATCHED",
                  "relevance": "HEURISTIC_RELEVANCE_NORMAL"
                },
                "combinedExceptionPrincipal": {
                  "membership": "MEMBERSHIP_NOT_MATCHED",
                  "relevance": "HEURISTIC_RELEVANCE_NORMAL"
                },
                "deniedPermissions": {
                  "bigquery.googleapis.com/datasets.create": {
                    "permissionMatchingState": "PERMISSION_PATTERN_NOT_MATCHED",
                    "relevance": "HEURISTIC_RELEVANCE_HIGH"
                  }
                },
                "deniedPrincipals": {
                  "principal://iam.googleapis.com/projects/-/serviceAccounts/service-account-1@project-1.iam.gserviceaccount.com": {
                    "membership": "MEMBERSHIP_NOT_MATCHED",
                    "relevance": "HEURISTIC_RELEVANCE_HIGH"
                  }
                },
                "denyAccessState": "DENY_ACCESS_STATE_NOT_DENIED",
                "relevance": "HEURISTIC_RELEVANCE_HIGH"
              }
            ]
          },
        ],
        "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/123456789012",
        "relevance": "HEURISTIC_RELEVANCE_HIGH"
      }
    ],
    "permissionDeniable": true,
    "relevance": "HEURISTIC_RELEVANCE_NORMAL"
  },
  "overallAccessState": "CANNOT_ACCESS",
  "pabPolicyExplanation": {
    "explainedBindingsAndPolicies": [
      {
        "bindingAndPolicyAccessState": "PAB_ACCESS_STATE_NOT_ENFORCED",
        "explainedPolicy": {
          "explainedRules": [
            {
              "combinedResourceInclusionState": "RESOURCE_INCLUSION_STATE_NOT_INCLUDED",
              "effect": "ALLOW",
              "explainedResources": [
                {
                  "relevance": "HEURISTIC_RELEVANCE_NORMAL",
                  "resource": "//cloudresourcemanager.googleapis.com/projects/project-2",
                  "resourceInclusionState": "RESOURCE_INCLUSION_STATE_NOT_INCLUDED"
                }
              ],
              "relevance": "HEURISTIC_RELEVANCE_NORMAL",
              "ruleAccessState": "PAB_ACCESS_STATE_NOT_ALLOWED"
            }
          ],
          "policy": {
            "createTime": "2024-04-09T17:40:51.627668Z",
            "details": {
              "enforcementVersion": "1",
              "rules": [
                {
                  "effect": "ALLOW",
                  "resources": [
                    "//cloudresourcemanager.googleapis.com/projects/project-2"
                  ]
                }
              ]
            },
            "displayName": "Troubleshooter v3 PAB Policy",
            "etag": "m64s4IgR80eDJDywuVA2DA==",
            "name": "organizations/123456789012/locations/global/principalAccessBoundaryPolicies/example-pab-policy",
            "uid": "puid_11875429267422576641",
            "updateTime": "2024-04-09T17:40:51.627668Z"
          },
          "policyAccessState": "PAB_ACCESS_STATE_NOT_ENFORCED",
          "policyVersion": {
            "enforcementState": "PAB_POLICY_ENFORCEMENT_STATE_NOT_ENFORCED",
            "version": 1
          },
          "relevance": "HEURISTIC_RELEVANCE_NORMAL"
        },
        "explainedPolicyBinding": {
          "conditionExplanation": {
            "evaluationStates": [
              {
                "end": 53,
                "value": true
              },
              {
                "end": 153,
                "start": 58,
                "value": false
              },
              {
                "end": 248,
                "start": 157,
                "value": false
              }
            ],
            "value": false
          },
          "policyBinding": {
            "condition": {
              "expression": "principal.type == 'iam.googleapis.com/ServiceAccount' && (principal.subject=='service-account-1@project-1.iam.gserviceaccount.com' || principal.subject=='service-account-2@project-1.iam.gserviceaccount.com')"
            },
            "createTime": "2024-04-09T17:51:13.504418Z",
            "displayName": "PAB Policy Binding on project-1 project",
            "etag": "W/\"hz9IKzHsIqvopqDRcVYDxQ==\"",
            "name": "projects/123456789012/locations/global/policyBindings/example-policy-binding",
            "policy": "organizations/123456789012/locations/global/principalAccessBoundaryPolicies/example-pab-policy",
            "policyKind": "PRINCIPAL_ACCESS_BOUNDARY",
            "policyUid": "puid_11875429267422576641",
            "target": {
              "principalSet": "//cloudresourcemanager.googleapis.com/projects/project-1"
            },
            "uid": "buid_1012746966204940289", 
            "updateTime": "2024-05-09T23:08:56.846355Z"
          },
          "policyBindingState": "POLICY_BINDING_STATE_NOT_ENFORCED",
          "relevance": "HEURISTIC_RELEVANCE_NORMAL"
        },
        "relevance": "HEURISTIC_RELEVANCE_NORMAL"
      }
    ],
    "principalAccessBoundaryAccessState": "PAB_ACCESS_STATE_NOT_ENFORCED",
    "relevance": "HEURISTIC_RELEVANCE_NORMAL"
  }
}

REST

Mit der Methode iam.troubleshoot der Policy Troubleshooter API können Sie herausfinden, warum ein Hauptkonto eine IAM-Berechtigung hat oder warum nicht.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • VERSION: Die API-Version, die für diese Anfrage verwendet werden soll. Verwenden Sie v3, um Probleme mit dem Zugriff zu beheben, der nur auf Zulassungs- und Ablehnungsrichtlinien basiert. Verwenden Sie v3beta, um Probleme mit dem Zugriff auf der Grundlage von Zulassungs-, Ablehnungs- und Principal Access Boundary-Richtlinien zu beheben.
  • EMAIL: Die E-Mail-Adresse des Hauptkontos, für dessen Berechtigungen Sie eine Fehlerbehebung ausführen möchten.
  • RESOURCE: Die Ressource, für die die Berechtigung gewährt wird.
  • PERMISSION: Die Berechtigung, für die Sie eine Fehlerbehebung ausführen möchten.
  • PROJECT_ID: Die ID des Projekts, mit dem Sie die Anfrage stellen möchten. Projekt-IDs sind alphanumerische Strings, wie my-project.

HTTP-Methode und URL:

POST https://policytroubleshooter.googleapis.com/VERSION/iam:troubleshoot

JSON-Text anfordern:

{
  "accessTuple": {
    "principal": "EMAIL",
    "fullResourceName": "RESOURCE",
    "permission": "PERMISSION"
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

Ergebnisse der Fehlerbehebung

Console

Die Ergebnisseite enthält die folgenden Informationen:

Bewertungsdetails

Der Abschnitt Bewertungsdetails enthält eine Zusammenfassung des Zugriffs, für den Sie die Fehlerbehebung durchführen, einschließlich des angegebenen Hauptkontos, der Ressource und der Berechtigung. Wenn Sie mehrere Ressourcenberechtigungspaare gleichzeitig beheben möchten, können Sie mit der Liste Zugriffsbewertung zwischen ihnen wechseln.

Richtliniendetails

Im Abschnitt Richtliniendetails finden Sie Details dazu, wie sich die relevanten Richtlinien für die Zulassung, Ablehnung und den Grenzwert für den Zugriff des Hauptkontos auf den Zugriff des Hauptkontos auswirken.

Zu den relevanten Principal Access Boundary-Richtlinien gehören alle Principal Access Boundary-Richtlinien, die an eine Hauptkontogruppe gebunden sind, die das Hauptkonto enthält.

Zu den relevanten Zulassungs- und Ablehnungsrichtlinien gehören:

  • Zulassungsrichtlinie der Ressource
  • Ablehnungsrichtlinien der Ressource, falls vorhanden
  • Die Zulassungsrichtlinien des übergeordneten Projekts, des Ordners und der Organisation der Ressource, sofern vorhanden
  • Ablehnungsrichtlinien des übergeordneten Projekts, des Ordners und der Organisation der Ressource, falls vorhanden

Die Richtlinien zum Zulassen oder Ablehnen von übergeordneten Projekten, Ordnern und Organisationen sind aufgrund der Richtlinienübernahme relevant. Wenn Sie eine Zulassung- oder Ablehnungsrichtlinie an ein Projekt, einen Ordner oder eine Organisation anhängen, gilt diese Richtlinie auch für alle Ressourcen innerhalb dieses Projekts, Ordners oder dieser Organisation.

Wenn eine Ablehnungsrichtlinie für eine Organisation beispielsweise besagt, dass ein Hauptkonto keine bestimmte Berechtigung verwenden kann, kann das Hauptkonto diese Berechtigung nicht für eine Ressource innerhalb der Organisation verwenden. Diese Regel gilt auch dann, wenn die Ordner und Projekte innerhalb dieser Organisation striktere Ablehnungsrichtlinien haben oder Richtlinien zulassen, die dem Hauptkonto die Berechtigung erteilen.

Wenn eine „allow”-Richtlinie für ein Projekt einem Hauptkonto eine bestimmte Berechtigung erteilt, hat das Hauptkonto diese Berechtigung für jede Ressource innerhalb des Projekts, sofern ihm diese Berechtigung nicht verweigert wird.

Der Abschnitt Richtliniendetails enthält die folgenden Abschnitte:

Zugriffsstatus

Im Abschnitt Zugriffsstatus werden die Ergebnisse für jeden Richtlinientyp (Richtlinien zur Begrenzung des Hauptkontozugriffs, Ablehnungsrichtlinien und Zulassungsrichtlinien) zusammengefasst und das Gesamtergebnis angegeben. Das Ergebnis gibt an, ob das Hauptkonto gemäß den relevanten Richtlinien die Berechtigung zum Zugriff auf die Ressource verwenden kann.

Damit ein Nutzer die Berechtigung zum Zugriff auf die Ressource verwenden kann, muss der Zugriff für alle Richtlinientypen zulässig sein. Weitere Informationen finden Sie unter Richtlinienbewertung.

Principal Access Boundary-Richtlinie

Im Abschnitt Principal Access Boundary-Richtlinie sehen Sie alle Principal Access Boundary-Richtlinien, denen das Hauptkonto unterliegt, und die Richtlinienbindungen, die diese Richtlinien an das Hauptkonto binden.

Im Bereich Richtlinien sind alle Richtlinien aufgeführt, die an eine Hauptkontogruppe gebunden sind, die das Hauptkonto enthält. Neben jeder Richtlinie wird ein Symbol angezeigt, das angibt, wie sich diese Richtlinie auf den Zugriff des Hauptkontos auswirkt.

Principal Access Boundary-Richtlinien können sich auf den Zugriff eines Hauptkontos auf folgende Weisen auswirken:

  • Hauptkonto darf auf die Ressource zugreifen: Die Principal Access Boundary-Richtlinie gilt für das Hauptkonto und eine ihrer Regeln enthält die abgefragte Ressource.
  • Hauptkonto darf nicht auf die Ressource zugreifen: Die Principal Access Boundary-Richtlinie gilt für das Hauptkonto, die abgefragte Ressource ist jedoch nicht in den Regeln dieser Richtlinie enthalten.
  • Nicht erzwungen: Principal Access Boundary-Richtlinien werden in den folgenden Fällen nicht erzwungen:

    • IAM erzwingt die angegebene Berechtigung nicht in der Erzwingungsversion der Principal Access Boundary-Richtlinie. Daher kann die Principal Access Boundary-Richtlinie den Zugriff nicht blockieren.
    • Aufgrund einer Bedingung in der Richtlinienbindung gilt die Principal Access Boundary-Richtlinie oder -Bindung nicht für das Hauptkonto.
    • Eine Principal Access Boundary-Richtlinie hat keine Regeln.

    Wenn eine Principal Access Boundary-Richtlinie nicht erzwungen wird, kann sie nicht beeinflussen, ob das Hauptkonto auf die Ressource zugreifen kann.

Klicken Sie auf den Namen der Richtlinie, um die zugehörigen Regeln und Bindungen aufzurufen. Im Bereich neben dem Bereich Richtlinien werden die Details der Richtlinie angezeigt.

Klicken Sie auf den Tab Grenzregeln, um die Regeln in der Richtlinie aufzurufen. Auf diesem Tab wird eine Tabelle mit den relevanten Regeln der Principal Access Boundary-Richtlinie angezeigt.

Eine Regel für die Begrenzung des Hauptkontozugriffs ist relevant, wenn sie sich auf das Gesamtergebnis der Richtlinien-Fehlerbehebungsabfrage auswirkt. Daher variieren die relevanten Regeln je nach den Ergebnissen der Richtlinien-Fehlerbehebung. Betrachten Sie beispielsweise die folgenden Situationen:

  • Die Richtlinien-Fehlerbehebung gibt an, dass das Hauptkonto auf die Ressource zugreifen kann. Daher sind die relevanten Regeln diejenigen, die dem Hauptkonto den Zugriff auf die Ressource ermöglichen.
  • Die Richtlinien-Fehlerbehebung gibt an, dass das Hauptkonto nicht auf die Ressource zugreifen kann. Gemäß den relevanten Principal Access Boundary-Richtlinien ist das Hauptkonto jedoch berechtigt, auf die Ressource zuzugreifen. Daher sind keine Regeln relevant, da die Principal Access Boundary-Richtlinien nicht der Grund dafür sind, dass das Hauptkonto nicht auf die Ressource zugreifen kann.
  • Die Richtlinien-Fehlerbehebung gibt an, dass das Hauptkonto nicht auf die Ressource zugreifen kann. Außerdem darf das Hauptkonto gemäß den relevanten Principal Access Boundary-Richtlinien nicht auf die Ressource zugreifen. Daher sind die relevanten Regeln diejenigen, die dem Hauptkonto keinen Zugriff auf die Ressource gewähren.

Wenn Sie alle Regeln für die Begrenzung des Hauptkontozugriffs in einer Richtlinie sehen möchten, entfernen Sie das Häkchen neben Nur relevante Regeln und Bindungen anzeigen.

In der Spalte Ergebnisse in der Tabelle mit den Begrenzungsregeln wird angegeben, ob die Regel für die Zugriffsgrenze für Hauptkonten die abgefragte Ressource enthält. Wenn Sie weitere Informationen zur Regel aufrufen möchten, klicken Sie auf Regeldetails ansehen.

Klicken Sie auf den Tab Bindungen, um die Richtlinienbindungen für die Richtlinie aufzurufen. Auf diesem Tab wird eine Tabelle mit den relevanten Richtlinienbindungen für die ausgewählte Principal Access Boundary-Richtlinie angezeigt.

Eine Richtlinienbindung ist relevant, wenn die Principal Access Boundary-Richtlinie effektiv auf das abgefragte Hauptkonto angewendet wird. Damit eine Richtlinienbindung eine Principal Access Boundary-Richtlinie auf ein Hauptkonto anwenden kann, müssen folgende Bedingungen erfüllt sein:

  • Das in der Richtlinienbindung festgelegte Hauptkonto muss das abgefragte Hauptkonto enthalten.
  • Alle Bedingungen in der Richtlinienbindung müssen für den abgefragten Nutzer true ergeben.

Wenn Sie alle Richtlinienbindungen mit Hauptkontosätzen sehen möchten, die das abgefragte Hauptkonto enthalten, unabhängig davon, ob das abgefragte Hauptkonto die Bedingung in der Bindung erfüllt, entfernen Sie das Häkchen neben Nur relevante Regeln und Bindungen anzeigen.

In der Spalte Ergebnisse in der Bindungstabelle wird angegeben, ob die Bindung für das abgefragte Hauptkonto erzwungen wird. Wenn Sie weitere Informationen zur Richtlinienbindung sehen möchten, klicken Sie auf Bindungsdetails ansehen.

Ablehnungsrichtlinie

Im Bereich Ablehnungsrichtlinie können Sie alle relevanten Ablehnungsrichtlinien aufrufen, Ablehnungsregeln identifizieren, die dem Hauptkonto den Zugriff verweigern, und nachvollziehen, warum eine Ablehnungsregel dem Hauptkonto die Berechtigung verweigert oder nicht.

Im Bereich Ressourcen mit Ablehnungsrichtlinien sind alle relevanten Ablehnungsrichtlinien aufgelistet, sortiert nach den Ressourcen, mit denen sie verknüpft sind. Neben jeder Ablehnungsrichtlinie befindet sich eine Zugriffsbewertung. Diese Bewertung gilt nur für diese Ablehnungsrichtlinie. Sie berücksichtigt keinen Zugriff über übernommene Richtlinien. Wenn Sie nicht berechtigt sind, die Ablehnungsrichtlinie einer Ressource aufzurufen, ist diese Ressource oder ihre Ablehnungsrichtlinien nicht in der Ressourcenliste enthalten.

Klicken Sie auf eine Ablehnungsrichtlinie, um die entsprechenden Ablehnungsregeln aufzurufen. Wenn Sie alle Ablehnungsregeln in den Ablehnungsrichtlinien einer Ressource aufrufen möchten, klicken Sie auf eine Ressource. Die Deaktivierungsregeln werden im Bereich Ausschlussregeln angezeigt. Dieser Bereich enthält eine Tabelle mit allen Regeleinträgen vom Typ „Deny“ (Abgelehnt) mit dem abgefragten Hauptkonto oder der abgefragten Berechtigung für die ausgewählte Ressource oder Richtlinie vom Typ „Deny“ (Abgelehnt).

In der Spalte Zugriff wird angegeben, ob dem Hauptkonto durch die Regel „Ablehnen“ die Berechtigung verweigert wird. Wenn Sie weitere Details zur Regel sehen möchten, klicken Sie in der Zeile der Regel auf Ablehnungsregel ansehen.

Zulassungsrichtlinie

Im Abschnitt Zulassungsrichtlinie können Sie alle relevanten Zulassungsrichtlinien aufrufen, Rollenbindungen identifizieren, die dem Hauptkonto Zugriff gewähren, und nachvollziehen, warum eine Rollenbindung dem Hauptkonto die Berechtigung gewährt oder nicht.

Im Bereich Ressourcen sind die angegebene Ressource und ihre übergeordneten Elemente aufgeführt. Neben jeder Ressource ist eine Zugriffsbewertung zu sehen. Diese Bewertung gilt nur für die Zulassungsrichtlinie dieser Ressource. Sie berücksichtigt keinen Zugriff über übernommene Richtlinien. Wenn Sie nicht berechtigt sind, die Zulassungsrichtlinie einer Ressource aufzurufen, ist diese Ressource nicht in der Ressourcenliste enthalten.

Wenn Sie die relevanten Rollenbindungen in der Zulassungsrichtlinie einer Ressource aufrufen und sehen möchten, ob sie dem Hauptkonto die Berechtigung gewähren oder nicht, klicken Sie auf die Ressource. Die Rollenbindungen der Zulassungsrichtlinie werden im Bereich Rollenbindungen angezeigt.

Der Bereich Rollenbindungen enthält eine Tabelle mit Rollenbindungen in der Zulassungsrichtlinie der ausgewählten Ressource. Standardmäßig enthält die Tabelle nur Rollenbindungen, die eine Rolle mit der angegebenen Berechtigung enthalten. Wenn das Hauptkonto keinen Zugriff hat, werden in der Tabelle auch Rollenbindungen mit bearbeitbaren benutzerdefinierten Rollen angezeigt. Wenn Sie alle Rollenbindungen sehen möchten, entfernen Sie das Häkchen aus dem Kästchen Nur relevante Bindungen einblenden.

In der Spalte Zugriff wird angegeben, ob die Rollenbindung dem Hauptkonto die Berechtigung gewährt. Wenn Sie weitere Details zur Rollenbindung sehen möchten, klicken Sie in der Zeile der Rollenbindung auf Bindungsdetails ansehen.

gcloud

Die Antwort enthält vier Hauptabschnitte: eine Beschreibung des Zugriffs-Tupels in der Anfrage, die Ergebnisse der Auswertung der Zulassungsrichtlinie, die Ergebnisse der Auswertung der Ablehnungsrichtlinie und den Gesamtzugriffsstatus.

  • accessTuple: Eine Beschreibung des Zugriffs-Tupels in der Anfrage, einschließlich aller von Ihnen angegebenen Bedingungskontexte. Dieser Abschnitt enthält auch eine Zusammenfassung der Tags, die für die Ressource gelten.
  • allowPolicyExplanation: Eine Zusammenfassung, ob das Hauptkonto durch die relevanten Zulassungsrichtlinien die Berechtigung erhält, gefolgt von einer Liste der Zulassungsrichtlinien und ihrer Rollenbindungen.

    Für jede Zulassungsrichtlinie werden in der Antwort alle Rollenbindungen in der Richtlinie aufgeführt und anhand der folgenden Kriterien bewertet:

    • Ob die Rollenbindung die Berechtigung enthält.
    • Gibt an, ob die Rollenbindung das Hauptkonto enthält.
    • Ob die Bedingungen in der Rollenbindung erfüllt sind.

    Anschließend wird in der Antwort der vollständige JSON-Text der Zulassungsrichtlinie ausgegeben.

  • denyPolicyExplanation: Eine Zusammenfassung, ob das Hauptkonto durch die entsprechenden Ablehnungsrichtlinien die Berechtigung verweigert wird, gefolgt von einer Liste der Ressourcen mit Ablehnungsrichtlinien. Für jede Ressource werden in der Antwort alle Ablehnungsrichtlinien aufgeführt, die mit der Ressource verknüpft sind.

    Für jede Ablehnungsrichtlinie werden in der Antwort die Metadaten der Richtlinie ausgegeben, die Ablehnungsregeln in der Richtlinie aufgelistet und dann jede Regel anhand der folgenden Kriterien ausgewertet:

    • Gibt an, ob die Ablehnungsregel die Berechtigung enthält.
    • Gibt an, ob die Berechtigung in der Regel zum Ablehnen als Ausnahme aufgeführt ist.
    • Gibt an, ob die Ablehnungsregel das Hauptkonto enthält.
    • Gibt an, ob das Hauptkonto in der Regel zum Ablehnen als Ausnahme aufgeführt ist.
    • Ob die Bedingungen in der Regel zum Ablehnen erfüllt sind, falls vorhanden.
  • overallAccessState: Ob das Hauptkonto die angegebene Berechtigung verwenden kann, um auf die angegebene Ressource zuzugreifen, basierend auf den relevanten Zulassungs-, Ablehnungs- und Principal Access Boundary-Richtlinien.

    Zu den relevanten Principal Access Boundary-Richtlinien gehören alle Principal Access Boundary-Richtlinien, die an eine Hauptkontogruppe gebunden sind, die das Hauptkonto enthält.

    Zu den relevanten Zulassungs- und Ablehnungsrichtlinien gehören:

    • Zulassungsrichtlinie der Ressource
    • Ablehnungsrichtlinien der Ressource, falls vorhanden
    • Die Zulassungsrichtlinien des übergeordneten Projekts, des Ordners und der Organisation der Ressource, sofern vorhanden
    • Ablehnungsrichtlinien des übergeordneten Projekts, des Ordners und der Organisation der Ressource, falls vorhanden

    Die Richtlinien zum Zulassen oder Ablehnen von übergeordneten Projekten, Ordnern und Organisationen sind aufgrund der Richtlinienübernahme relevant. Wenn Sie eine Zulassung- oder Ablehnungsrichtlinie an ein Projekt, einen Ordner oder eine Organisation anhängen, gilt diese Richtlinie auch für alle Ressourcen innerhalb dieses Projekts, Ordners oder dieser Organisation.

    Wenn eine Ablehnungsrichtlinie für eine Organisation beispielsweise besagt, dass ein Hauptkonto keine bestimmte Berechtigung verwenden kann, kann das Hauptkonto diese Berechtigung nicht für eine Ressource innerhalb der Organisation verwenden. Diese Regel gilt auch dann, wenn die Ordner und Projekte innerhalb dieser Organisation striktere Ablehnungsrichtlinien haben oder Richtlinien zulassen, die dem Hauptkonto die Berechtigung erteilen.

    Wenn eine „allow”-Richtlinie für ein Projekt einem Hauptkonto eine bestimmte Berechtigung erteilt, hat das Hauptkonto diese Berechtigung für jede Ressource innerhalb des Projekts, sofern ihm diese Berechtigung nicht verweigert wird.

    Damit ein Nutzer die Berechtigung zum Zugriff auf die Ressource verwenden kann, muss der Zugriff für alle Richtlinientypen zulässig sein. Weitere Informationen finden Sie unter Richtlinienauswertung.

  • pabPolicyExplanation: Eine Zusammenfassung, ob das Hauptkonto gemäß den relevanten Principal Access Boundary-Richtlinien auf die Ressource zugreifen darf, gefolgt von den entsprechenden Richtlinienbindungen und Principal Access Boundary-Richtlinien.

    Principal Access Boundary-Richtlinien können den Zugriff entweder zulassen, nicht zulassen oder nicht erzwungen werden. In den folgenden Fällen werden Principal Access Boundary-Richtlinien nicht erzwungen:

    • IAM erzwingt die angegebene Berechtigung nicht in der Erzwingungsversion der Principal Access Boundary-Richtlinie. Daher kann die Principal Access Boundary-Richtlinie den Zugriff nicht blockieren.
    • Aufgrund einer Bedingung in der Richtlinienbindung gilt die Principal Access Boundary-Richtlinie oder -Bindung nicht für das Hauptkonto.
    • Eine Principal Access Boundary-Richtlinie hat keine Regeln.

    Wenn eine Principal Access Boundary-Richtlinie nicht erzwungen wird, kann sie nicht beeinflussen, ob das Hauptkonto auf die Ressource zugreifen kann.

    Die Antwort enthält außerdem alle Richtlinienbindungen, die das Hauptkonto enthalten, und die Details der Principal Access Boundary-Richtlinie in jeder dieser Richtlinienbindungen:

    • Für jede Richtlinienbindung für die Begrenzung des Hauptkontozugriffs wird in der Antwort ausgegeben, ob die Richtlinienbindung für das Hauptkonto erzwungen wird. Anschließend wird der Text der Richtlinienbindung ausgegeben. Eine Richtlinienbindung wird erzwungen, wenn der in der Bindung festgelegte Hauptkontosatz das abgefragte Hauptkonto enthält und die Bedingung in der Richtlinienbindung für das abgefragte Hauptkonto zu true ausgewertet wird. Wenn die Richtlinienbindung nicht erzwungen wird, kann die Richtlinie nicht beeinflussen, ob das Hauptkonto auf die Ressource zugreifen kann.
    • Für jede Principal Access Boundary-Richtlinie wird in der Antwort Folgendes ausgegeben:

      • Gibt an, ob die Richtlinie den Zugriff zulässt, nicht zulässt oder nicht erzwungen wird.
      • Die Version der Richtlinie, die erzwungen wird. Anhand dieser Versionsnummer wird festgelegt, ob IAM diese Principal Access Boundary-Richtlinie für die abgefragte Berechtigung erzwingt. Wenn die Berechtigung nicht erzwungen wird, kann die Richtlinie nicht beeinflussen, ob das Hauptkonto auf die Ressource zugreifen kann.
      • Die Regeln in der Principal Access Boundary-Richtlinie und ob jede Regel den Zugriff zulässt. Für jede Regel wird in der Antwort angegeben, ob die abgefragte Ressource in der Regel enthalten ist.

        Eine Ressource ist in einer Regel enthalten, wenn eine der folgenden Bedingungen zutrifft:

        • Die Ressource ist in der Regel aufgeführt. Nur Resource Manager-Ressourcen (Projekte, Ordner und Organisationen) können direkt in Principal Access Boundary-Regeln aufgeführt werden.
        • Einer der übergeordneten Elemente der Ressource (d. h. ein Projekt, ein Ordner oder eine Organisation über der Ressource in der Ressourcenhierarchie) ist in der Regel aufgeführt.

Viele Objekte in der Antwort haben auch ein relevance-Feld. Der Wert in diesem Feld gibt an, inwiefern dieses Objekt zum Gesamtzugriffsstatus beiträgt. Das Feld relevance kann die folgenden Werte haben:

  • HEURISTIC_RELEVANCE_HIGH: Das Objekt hat einen starken Einfluss auf das Ergebnis. Wenn Sie das Objekt entfernen, ändert sich also wahrscheinlich der Zugriffsstatus insgesamt. Dieser Relevanzwert wird beispielsweise für eine Rollenbindung verwendet, die dem Hauptkonto die angegebene Berechtigung gewährt.

  • HEURISTIC_RELEVANCE_NORMAL: Gibt an, dass das Objekt nur einen geringen Einfluss auf das Ergebnis hat. Das Entfernen des Objekts ändert also wahrscheinlich nicht den Gesamtzugriffsstatus. Dieser Relevanzwert wird beispielsweise für eine Ablehnungsregel verwendet, die die Berechtigung oder das Hauptkonto nicht enthält.

REST

Die Antwort enthält vier Hauptabschnitte: den Gesamtzugriffsstatus, eine Beschreibung des Zugriffstupels in der Anfrage, die Ergebnisse der Auswertung der Zulassungsrichtlinie und die Ergebnisse der Auswertung der Ablehnungsrichtlinie.

  • overallAccessState: Ob das Hauptkonto die angegebene Berechtigung verwenden kann, um auf die angegebene Ressource zuzugreifen, basierend auf den relevanten Zulassungs-, Ablehnungs- und Principal Access Boundary-Richtlinien.

    Zu den relevanten Principal Access Boundary-Richtlinien gehören alle Principal Access Boundary-Richtlinien, die an eine Hauptkontogruppe gebunden sind, die das Hauptkonto enthält.

    Zu den relevanten Zulassungs- und Ablehnungsrichtlinien gehören:

    • Zulassungsrichtlinie der Ressource
    • Ablehnungsrichtlinien der Ressource, falls vorhanden
    • Die Zulassungsrichtlinien des übergeordneten Projekts, des Ordners und der Organisation der Ressource, sofern vorhanden
    • Ablehnungsrichtlinien des übergeordneten Projekts, des Ordners und der Organisation der Ressource, falls vorhanden

    Die Richtlinien zum Zulassen oder Ablehnen von übergeordneten Projekten, Ordnern und Organisationen sind aufgrund der Richtlinienübernahme relevant. Wenn Sie eine Zulassung- oder Ablehnungsrichtlinie an ein Projekt, einen Ordner oder eine Organisation anhängen, gilt diese Richtlinie auch für alle Ressourcen innerhalb dieses Projekts, Ordners oder dieser Organisation.

    Wenn eine Ablehnungsrichtlinie für eine Organisation beispielsweise besagt, dass ein Hauptkonto keine bestimmte Berechtigung verwenden kann, kann das Hauptkonto diese Berechtigung nicht für eine Ressource innerhalb der Organisation verwenden. Diese Regel gilt auch dann, wenn die Ordner und Projekte innerhalb dieser Organisation striktere Ablehnungsrichtlinien haben oder Richtlinien zulassen, die dem Hauptkonto die Berechtigung erteilen.

    Wenn eine „allow”-Richtlinie für ein Projekt einem Hauptkonto eine bestimmte Berechtigung erteilt, hat das Hauptkonto diese Berechtigung für jede Ressource innerhalb des Projekts, sofern ihm diese Berechtigung nicht verweigert wird.

    Damit ein Nutzer die Berechtigung zum Zugriff auf die Ressource verwenden kann, muss der Zugriff für alle Richtlinientypen zulässig sein. Weitere Informationen finden Sie unter Richtlinienauswertung.

  • accessTuple: Eine Beschreibung des Zugriffs-Tupels in der Anfrage, einschließlich aller von Ihnen angegebenen Bedingungskontexte. Dieser Abschnitt enthält auch eine Zusammenfassung der Tags, die für die Ressource gelten.
  • allowPolicyExplanation: Eine Zusammenfassung, ob das Hauptkonto durch die relevanten Zulassungsrichtlinien die Berechtigung erhält, gefolgt von einer Liste der Zulassungsrichtlinien und ihrer Rollenbindungen.

    Für jede Zulassungsrichtlinie werden in der Antwort alle Rollenbindungen in der Richtlinie aufgeführt und anhand der folgenden Kriterien bewertet:

    • Ob die Rollenbindung die Berechtigung enthält.
    • Gibt an, ob die Rollenbindung das Hauptkonto enthält.
    • Ob die Bedingungen in der Rollenbindung erfüllt sind.

    Anschließend wird in der Antwort der vollständige JSON-Text der Zulassungsrichtlinie ausgegeben.

  • denyPolicyExplanation: Eine Zusammenfassung, ob das Hauptkonto durch die entsprechenden Ablehnungsrichtlinien die Berechtigung verweigert wird, gefolgt von einer Liste der Ressourcen mit Ablehnungsrichtlinien. Für jede Ressource werden in der Antwort alle Ablehnungsrichtlinien aufgeführt, die mit der Ressource verknüpft sind.

    Für jede Ablehnungsrichtlinie werden in der Antwort die Metadaten der Richtlinie ausgegeben, die Ablehnungsregeln in der Richtlinie aufgelistet und dann jede Regel anhand der folgenden Kriterien ausgewertet:

    • Gibt an, ob die Ablehnungsregel die Berechtigung enthält.
    • Gibt an, ob die Berechtigung in der Regel zum Ablehnen als Ausnahme aufgeführt ist.
    • Gibt an, ob die Ablehnungsregel das Hauptkonto enthält.
    • Gibt an, ob das Hauptkonto in der Regel zum Ablehnen als Ausnahme aufgeführt ist.
    • Ob die Bedingungen in der Regel zum Ablehnen erfüllt sind, falls vorhanden.
  • pabPolicyExplanation: Eine Zusammenfassung, ob das Hauptkonto gemäß den relevanten Principal Access Boundary-Richtlinien auf die Ressource zugreifen darf, gefolgt von den entsprechenden Richtlinienbindungen und Principal Access Boundary-Richtlinien.

    Principal Access Boundary-Richtlinien können den Zugriff entweder zulassen, nicht zulassen oder nicht erzwungen werden. In den folgenden Fällen werden Principal Access Boundary-Richtlinien nicht erzwungen:

    • IAM erzwingt die angegebene Berechtigung nicht in der Erzwingungsversion der Principal Access Boundary-Richtlinie. Daher kann die Principal Access Boundary-Richtlinie den Zugriff nicht blockieren.
    • Aufgrund einer Bedingung in der Richtlinienbindung gilt die Principal Access Boundary-Richtlinie oder -Bindung nicht für das Hauptkonto.
    • Eine Principal Access Boundary-Richtlinie hat keine Regeln.

    Wenn eine Principal Access Boundary-Richtlinie nicht erzwungen wird, kann sie nicht beeinflussen, ob das Hauptkonto auf die Ressource zugreifen kann.

    Die Antwort enthält außerdem alle Richtlinienbindungen, die das Hauptkonto enthalten, und die Details der Principal Access Boundary-Richtlinie in jeder dieser Richtlinienbindungen:

    • Für jede Richtlinienbindung für die Begrenzung des Hauptkontozugriffs wird in der Antwort ausgegeben, ob die Richtlinienbindung für das Hauptkonto erzwungen wird. Anschließend wird der Text der Richtlinienbindung ausgegeben. Eine Richtlinienbindung wird erzwungen, wenn der in der Bindung festgelegte Hauptkontosatz das abgefragte Hauptkonto enthält und die Bedingung in der Richtlinienbindung für das abgefragte Hauptkonto zu true ausgewertet wird. Wenn die Richtlinienbindung nicht erzwungen wird, kann die Richtlinie nicht beeinflussen, ob das Hauptkonto auf die Ressource zugreifen kann.
    • Für jede Principal Access Boundary-Richtlinie wird in der Antwort Folgendes ausgegeben:

      • Gibt an, ob die Richtlinie den Zugriff zulässt, nicht zulässt oder nicht erzwungen wird.
      • Die Version der Richtlinie, die erzwungen wird. Anhand dieser Versionsnummer wird festgelegt, ob IAM diese Principal Access Boundary-Richtlinie für die abgefragte Berechtigung erzwingt. Wenn die Berechtigung nicht erzwungen wird, kann die Richtlinie nicht beeinflussen, ob das Hauptkonto auf die Ressource zugreifen kann.
      • Die Regeln in der Principal Access Boundary-Richtlinie und ob jede Regel den Zugriff zulässt. Für jede Regel wird in der Antwort angegeben, ob die abgefragte Ressource in der Regel enthalten ist.

        Eine Ressource ist in einer Regel enthalten, wenn eine der folgenden Bedingungen zutrifft:

        • Die Ressource ist in der Regel aufgeführt. Nur Resource Manager-Ressourcen (Projekte, Ordner und Organisationen) können direkt in Principal Access Boundary-Regeln aufgeführt werden.
        • Einer der übergeordneten Elemente der Ressource (d. h. ein Projekt, ein Ordner oder eine Organisation über der Ressource in der Ressourcenhierarchie) ist in der Regel aufgeführt.

Viele Objekte in der Antwort haben auch ein relevance-Feld. Der Wert in diesem Feld gibt an, inwiefern dieses Objekt zum Gesamtzugriffsstatus beiträgt. Das Feld relevance kann die folgenden Werte haben:

  • HEURISTIC_RELEVANCE_HIGH: Das Objekt hat einen starken Einfluss auf das Ergebnis. Wenn Sie das Objekt entfernen, ändert sich also wahrscheinlich der Zugriffsstatus insgesamt. Dieser Relevanzwert wird beispielsweise für eine Rollenbindung verwendet, die dem Hauptkonto die angegebene Berechtigung gewährt.

  • HEURISTIC_RELEVANCE_NORMAL: Gibt an, dass das Objekt nur einen geringen Einfluss auf das Ergebnis hat. Das Entfernen des Objekts ändert also wahrscheinlich nicht den Gesamtzugriffsstatus. Dieser Relevanzwert wird beispielsweise für eine Ablehnungsregel verwendet, die die Berechtigung oder das Hauptkonto nicht enthält.

Fehlerbehebung bei bedingten Rollenbindungen

Mit der Richtlinien-Fehlerbehebung können Sie automatisch Probleme mit bedingten Rollenbindungen und Ablehnungsregeln auf Grundlage von Tags beheben. Außerdem werden automatisch Probleme mit Bindungen für Principal Access Boundary-Richtlinien mit Bedingungen behoben, die auf Hauptkonten basieren.

Zur Behebung anderer Arten von bedingten Rollenbindungen oder bedingten Ablehnungsregeln benötigt die Richtlinien-Fehlerbehebung weiteren Kontext zu der Anfrage. Wenn beispielsweise Fehler aufgrund von Datums-/Uhrzeitattributen behoben werden sollen, benötigt die Richtlinien-Fehlerbehebung die Zeit der Anfrage.

In der gcloud CLI und der REST API geben Sie diesen zusätzlichen Kontext manuell an.

In der Google Cloud Console können Sie diesen zusätzlichen Kontext angeben, indem Sie direkt in einem Audit-Log für Administratoraktivitäten oder in einem Audit-Log zum Datenzugriff Fehler beheben. Jeder Audit-Logeintrag entspricht einer Anfrage an eineGoogle Cloud API oder einer Aktion, die Google Cloud für Sie ausgeführt wird. Bei der Fehlerbehebung aus einem Audit-Log erhält die Richtlinien-Fehlerbehebung automatisch zusätzliche Informationen zu der Anfrage (z. B. Datum und Uhrzeit). So kann die Richtlinien-Fehlerbehebung bedingte Bindungen und Regeln für die Ablehnung analysieren.

Console

So beheben Sie Fehler bei bedingten Rollenbindungen und Regelausschlüssen:

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

  2. Wenn der Titel Legacy-Loganzeige lautet, klicken Sie auf die Drop-down-Liste Upgrade und wählen Sie Upgrade auf den neuen Log-Explorer aus.

  3. Wenn Sie nur Audit-Logs für Administratoraktivitäten und Datenzugriff ansehen möchten, geben Sie im Query Builder die folgende Abfrage ein und klicken Sie dann auf Abfrage ausführen:

    logName=("RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity" OR "RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Fdata_access")
    

    Ersetzen Sie die folgenden Werte:

    • RESOURCE_TYPE: Der Ressourcentyp, für den Sie Audit-Logs auflisten möchten. Verwenden Sie projects, folders oder organizations.
    • RESOURCE_ID: Die ID Ihrer Ressource.
  4. Suchen Sie den Audit-Logeintrag, der der Anfrage entspricht, die Sie beheben möchten. Informationen zum Suchen bestimmter Logeinträge mit dem Log-Explorer finden Sie unter Log-Explorer verwenden.

  5. Klicken Sie in der Spalte Zusammenfassung des Logeintrags auf IAM und dann auf Zugriffsproblem beheben.

    Die Richtlinien-Fehlerbehebung verwendet die Informationen im Logeintrag, um den Zugriff zu beheben, und zeigt dann die Ergebnisse an. Der zusätzliche Kontext ist in den Bewertungsdetails unter Zustand – Kontext aufgeführt. Klicken Sie auf Kontext der Bedingung ansehen, um die Kontextdetails aufzurufen. Weitere Informationen zu den Ergebnissen der Richtlinien-Fehlerbehebung finden Sie auf dieser Seite unter Ergebnisse der Fehlerbehebung verstehen.

  6. Optional: Kehren Sie zur Seite „Log-Explorer“ zurück und wiederholen Sie die vorherigen Schritte, um Probleme bei einer weiteren Anfrage mit bedingten Rollenbindungen und Regelausschlüssen zu beheben.

gcloud

Verwenden Sie den Befehl gcloud policy-troubleshoot iam, um Probleme mit bedingten Rollenbindungen und Regelablehnungen zu beheben.

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • EMAIL: Die E-Mail-Adresse des Hauptkontos, für dessen Berechtigungen Sie eine Fehlerbehebung ausführen möchten.
  • RESOURCE: Die Ressource, für die die Berechtigung gewährt wird.
  • PERMISSION: Die Berechtigung, für die Sie eine Fehlerbehebung ausführen möchten.
  • DESTINATION_IP: Optional. Die IP-Zieladresse der Anfrage, die bei der Überprüfung bedingter Rollenbindungen verwendet werden soll. Beispiel: 198.1.1.1.
  • DESTINATION_PORT: Optional. Der Port für den Anfrageempfänger, der bei der Überprüfung bedingter Rollenbindungen verwendet werden soll. Beispiel: 8080.
  • REQUEST_TIME: Optional. Der Zeitstempel der Anfrage, der bei der Überprüfung bedingter Rollenbindungen verwendet werden soll. Verwenden Sie einen Zeitstempel im RFC 3339-Format, z. B. 2099-02-01T00:00:00Z.
  • RESOURCE_NAME: Optional. Der Wert für den Ressourcennamen, der bei der Überprüfung bedingter Rollenbindungen verwendet werden soll. Eine Liste der zulässigen Formate für Ressourcennamen finden Sie unter Format der Ressourcennamen.
  • RESOURCE_SERVICE: Optional. Der Wert für den Ressourcendienst, der bei der Überprüfung bedingter Rollenbindungen verwendet werden soll. Eine Liste der zulässigen Dienstnamen finden Sie unter Werte für Ressourcendienste.
  • RESOURCE_TYPE: Optional. Eine Liste der zulässigen Ressourcentypen finden Sie unter Werte für Ressourcentypen.

Führen Sie den Befehl gcloud policy-troubleshoot iam aus:

Linux, macOS oder Cloud Shell

gcloud policy-intelligence troubleshoot-policy iam RESOURCE --principal-email=EMAIL \
    --permission=PERMISSION --destination-ip=DESTINATION_IP \
    --destination-port=DESTINATION_PORT --request-time=REQUEST_TIME \
    --resource-name=RESOURCE_NAME --resource-service=RESOURCE_SERVICE \
    --resource-type=RESOURCE_TYPE

Windows (PowerShell)

gcloud policy-intelligence troubleshoot-policy iam RESOURCE --principal-email=EMAIL `
    --permission=PERMISSION --destination-ip=DESTINATION_IP `
    --destination-port=DESTINATION_PORT --request-time=REQUEST_TIME `
    --resource-name=RESOURCE_NAME --resource-service=RESOURCE_SERVICE `
    --resource-type=RESOURCE_TYPE

Windows (cmd.exe)

gcloud policy-intelligence troubleshoot-policy iam RESOURCE --principal-email=EMAIL ^
    --permission=PERMISSION --destination-ip=DESTINATION_IP ^
    --destination-port=DESTINATION_PORT --request-time=REQUEST_TIME ^
    --resource-name=RESOURCE_NAME --resource-service=RESOURCE_SERVICE ^
    --resource-type=RESOURCE_TYPE

Die Antwort enthält eine Erläuterung des Zugriffs des Hauptkontos. Für jede Rollenbindung und jede Regel vom Typ „deny“ mit einer Bedingung enthält die Antwort ein conditionExplanation-Feld, das angibt, ob die Bedingung basierend auf dem von Ihnen angegebenen Bedingungskontext „wahr“ oder „falsch“ ergibt.

Im folgenden Beispiel wird beispielsweise eine Rollenbindung mit einer Bedingung bewertet, in der der Ressourcentyp und der Ressourcendienst angegeben sind:

Antwort

...
{
  "allowAccessState": "ALLOW_ACCESS_STATE_GRANTED",
  "combinedMembership": {
    "membership": "MEMBERSHIP_MATCHED",
    "relevance": "HEURISTIC_RELEVANCE_HIGH"
  },
  "condition": {
    "expression": " resource.type \u003d\u003d \"compute.googleapis.com/Instance\" \u0026\u0026 resource.service \u003d\u003d \"compute.googleapis.com\"",
    "title": "Compute instances only",
    "description": "Condition that limits permissions to only Compute instances"
  },
  "conditionExplanation": {
    "evaluationStates": [{
      "end": 51,
      "start": 1,
      "value": true
    }, {
      "end": 99,
      "start": 55,
      "value": true
    }],
    "value": true,
  },
  "memberships": {
    "user:my-user@example.com": {
      "membership": "MEMBERSHIP_MATCHED",
      "relevance": "HEURISTIC_RELEVANCE_HIGH"
    }
  },
  "relevance": "HEURISTIC_RELEVANCE_HIGH",
  "role": "roles/compute.viewer",
  "rolePermission": "ROLE_PERMISSION_INCLUDED",
  "rolePermissionRelevance": "HEURISTIC_RELEVANCE_HIGH"
}
...

REST

Verwenden Sie die Methode iam.troubleshoot der API zur Richtlinien-Fehlerbehebung, um Probleme mit bedingten Rollenbindungen und Ablehnungsregeln zu beheben.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • EMAIL: Die E-Mail-Adresse des Hauptkontos, für dessen Berechtigungen Sie eine Fehlerbehebung ausführen möchten.
  • RESOURCE: Die Ressource, für die die Berechtigung gewährt wird.
  • PERMISSION: Die Berechtigung, für die Sie eine Fehlerbehebung ausführen möchten.
  • DESTINATION_IP: Optional. Die IP-Zieladresse der Anfrage, die bei der Überprüfung bedingter Rollenbindungen verwendet werden soll. Beispiel: 198.1.1.1.
  • DESTINATION_PORT: Optional. Der Port für den Anfrageempfänger, der bei der Überprüfung bedingter Rollenbindungen verwendet werden soll. Beispiel: 8080.
  • REQUEST_TIME: Optional. Der Zeitstempel der Anfrage, der bei der Überprüfung bedingter Rollenbindungen verwendet werden soll. Verwenden Sie einen Zeitstempel im RFC 3339-Format, z. B. 2099-02-01T00:00:00Z.
  • RESOURCE_NAME: Optional. Der Wert für den Ressourcennamen, der bei der Überprüfung bedingter Rollenbindungen verwendet werden soll. Eine Liste der zulässigen Formate für Ressourcennamen finden Sie unter Format der Ressourcennamen.
  • RESOURCE_SERVICE: Optional. Der Wert für den Ressourcendienst, der bei der Überprüfung bedingter Rollenbindungen verwendet werden soll. Eine Liste der zulässigen Dienstnamen finden Sie unter Werte für Ressourcendienste.
  • RESOURCE_TYPE: Optional. Eine Liste der zulässigen Ressourcentypen finden Sie unter Werte für Ressourcentypen.

HTTP-Methode und URL:

POST https://policytroubleshooter.googleapis.com/v3/iam:troubleshoot

JSON-Text anfordern:

{
  "accessTuple": {
    "principal": "EMAIL",
    "fullResourceName": "RESOURCE",
    "permission": "PERMISSION",
    "conditionContext": {
      "destination": {
        "ip": DESTINATION_IP,
        "port": DESTINATION_PORT
      },
      "request": {
        "receiveTime": REQUEST_TIME
      },
      "resource": {
        "name": RESOURCE_NAME,
        "service": RESOURCE_SERVICE,
        "type": RESOURCE_TYPE
      }
    }
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Die Antwort enthält eine Erläuterung des Zugriffs des Hauptkontos. Für jede Rollenbindung und jede Regel vom Typ „deny“ mit einer Bedingung enthält die Antwort ein conditionExplanation-Feld, das angibt, ob die Bedingung basierend auf dem von Ihnen angegebenen Bedingungskontext „wahr“ oder „falsch“ ergibt.

Im folgenden Beispiel wird beispielsweise eine Rollenbindung mit einer Bedingung bewertet, in der der Ressourcentyp und der Ressourcendienst angegeben sind:

...
{
  "allowAccessState": "ALLOW_ACCESS_STATE_GRANTED",
  "role": "roles/compute.viewer",
  "rolePermission": "ROLE_PERMISSION_INCLUDED",
  "rolePermissionRelevance": "HEURISTIC_RELEVANCE_HIGH",
  "combinedMembership": {
    "membership": "MEMBERSHIP_MATCHED",
    "relevance": "HEURISTIC_RELEVANCE_HIGH"
  },
  "memberships": {
    "user:my-user@example.com": {
      "membership": "MEMBERSHIP_MATCHED",
      "relevance": "HEURISTIC_RELEVANCE_HIGH"
    }
  },
  "relevance": "HEURISTIC_RELEVANCE_HIGH",
  "condition": {
    "expression": " resource.type \u003d\u003d \"compute.googleapis.com/Instance\" \u0026\u0026 resource.service \u003d\u003d \"compute.googleapis.com\"",
    "title": "Compute instances only",
    "description": "Condition that limits permissions to only Compute instances"
  },
  "conditionExplanation": {
    "value": true,
    "evaluationStates": [{
      "start": 1,
      "end": 51,
      "value": true
    }, {
      "start": 55,
      "end": 99,
      "value": true
    }]
  }
}
...

Nächste Schritte