Fehler bei IAM-Berechtigungen beheben

Mit der Richtlinien-Fehlerbehebung können Sie nachvollziehen, ob ein Hauptkonto Zugriff auf eine Ressource hat. Mit einem Hauptkonto, einer Ressource und einer Berechtigung Policy Troubleshooter untersucht Zulassungsrichtlinien, Ablehnungsrichtlinien und Principal Access Boundary-Richtlinien (Principal Access Boundary-Richtlinie, PAB), die sich auf den Zugriff des Hauptkontos auswirken. Anschließend wird angezeigt, ob das Hauptkonto anhand dieser 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 der Google Cloud Console, der Google Cloud CLI oder der REST API. Für einfache Am schnellsten geht das mit der Google Cloud Console. 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 basierend auf den Zulassungsrichtlinien, Ablehnungsrichtlinien, Principal Access Boundary-Richtlinien und Rollen, zu deren Ansicht Sie berechtigt sind. Wenn Sie nicht berechtigt sind, ein die für eine Ressource gilt, oder für den Fall, dass Sie nicht berechtigt sind, benutzerdefinierte 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. Diese Mit Berechtigungen können Sie die Zulassungs- und Ablehnungsrichtlinien aufrufen, die den Zugriff auf die .

Um die Berechtigungen zu erhalten, die Sie zur Fehlerbehebung beim Zugriff eines Hauptkontos benötigen, bitten Sie Ihren Administrator, Ihnen folgenden IAM-Rollen für die Organisation, die die Ressource enthält, für die Sie Zugriffsfehler beheben möchten:

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

Zur Fehlerbehebung bei Principal Access Boundary-Richtlinien benötigen Sie Berechtigungen für die Organisation, deren Hauptkontogruppe das Hauptkonto enthält. Die Art und Weise, wie Sie Diese Organisation hängt vom Hauptkontotyp 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 Mitarbeiteridentitätspools oder Arbeitslasten) Identitätspools): Die Organisation, die den Identitätspool enthält, der enthält das Hauptkonto
  • Dienstkonten: Die Organisation, die das Projekt enthält, in dem der Dienstkonto wurde erstellt

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:

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. Bis einem Nutzer, der kein Super- oder Gruppenadministrator ist, diese Berechtigung erteilen, ein benutzerdefiniertes Google Workspace-Administrator Rolle, die den Berechtigung groups.read (unter Berechtigungen für Admin APIs) und gewähren Sie sie Nutzenden.

Wenn Sie diese Berechtigungen nicht haben, erstellen Sie Rollenbindungen und Ablehnungsregeln, die Folgendes enthalten: Das Zugriffsergebnis für Gruppen oder Domains lautet Unbekannt, es sei denn, die Rollenbindung ist das Hauptkonto explizit einschließt.

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 Arten von Hauptkonten, einschließlich Gruppen, Domains, Mitarbeiteridentitäten und Arbeitslastidentitäten werden nicht unterstützt.
  • Ressource: Den vollständigen Namen der Ressource. Wenn Sie beispielsweise das Projekt my-project prüfen möchten, geben Sie Folgendes ein: //cloudresourcemanager.googleapis.com/projects/my-project. 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. Anders ausgedrückt: Es muss möglich sein, um auf die Ressource zuzugreifen. Wenn die Berechtigung nicht gilt, schlägt die Anfrage fehl. Wenn Sie zum Beispiel um Probleme mit der Berechtigung compute.instances.get für eine Google Kubernetes Engine-Cluster enthält, schlägt die Anfrage fehl, Berechtigung „compute.instance.get“ kann nicht für den Zugriff verwendet werden Google Kubernetes Engine-Cluster

    Eine vollständige Liste der Berechtigungen finden Sie in den Berechtigungen Referenz.

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 Klicken Sie auf Durchsuchen, um das Dialogfeld für die Ressourcensuche zu öffnen, und suchen Sie nach dem 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 Ergebnisbereich 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 Berechtigungsnamen nicht kennen, beginnen Sie mit der Eingabe, um die automatische Vervollständigung zu sehen Optionen.

  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

Wenn Sie herausfinden möchten, warum ein Hauptkonto eine IAM-Berechtigung hat oder nicht hat, verwenden Sie die gcloud beta policy-troubleshoot iam .

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

  • VERSION: Optional. Die Version des zu verwendenden Befehls. Zur Fehlerbehebung basierend auf Zulassungs- und Ablehnungsrichtlinien. Geben Sie keine Version an. Zugriffsfehler beheben verwenden Sie die Version beta.
  • 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": "[email protected]"
  },
  "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:[email protected]": {
                "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:[email protected]": {
                "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:[email protected]": {
                "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:[email protected]": {
                "membership": "MEMBERSHIP_NOT_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              },
              "user:[email protected]": {
                "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:[email protected]": {
                "membership": "MEMBERSHIP_NOT_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              },
              "user:[email protected]": {
                "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:[email protected]": {
                "membership": "MEMBERSHIP_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              },
              "serviceAccount:[email protected]": {
                "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:[email protected]": {
                "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:[email protected]"
              ],
              "role": "roles/bigquery.admin"
            },
            {
              "condition": {
                "expression": "resource.matchTag(\"project-1/tag-key-1\", \"tag-value-1\")",
                "title": "Tag-based condition"
              },
              "members": [
                "serviceAccount:[email protected]"
              ],
              "role": "roles/bigquery.admin"
            },
            {
              "members": [
                "user:[email protected]"
              ],
              "role": "roles/compute.admin"
            },
            {
              "members": [
                "user:[email protected]",
                "user:[email protected]"
              ],
              "role": "roles/iam.serviceAccountTokenCreator"
            },
            {
              "members": [
                "user:[email protected]",
                "user:[email protected]"
              ],
              "role": "roles/owner"
            },
            {
              "members": [
                "serviceAccount:[email protected]",
                "serviceAccount:[email protected]"
              ],
              "role": "roles/resourcemanager.projectIamAdmin"
            },
            {
              "members": [
                "serviceAccount:[email protected]"
              ],
              "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/[email protected]"
                    ]
                  }
                }
              ],
              "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/[email protected]": {
                    "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=='[email protected]' || principal.subject=='[email protected]')"
            },
            "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. Zur Fehlerbehebung Zugriff nur auf Grundlage von Zulassungs- und Ablehnungsrichtlinien, verwenden Sie v3. Fehlerbehebung für zugriffsbasierte Verwenden Sie für Zulassungs-, Ablehnungs- und Principal Access Boundary-Richtlinien v3beta.
  • 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:

Details zur Bewertung

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 Fehler bei mehreren Ressourcenberechtigungspaaren beheben möchten, können Sie die Methode Zugriffsbewertung, um zwischen ihnen zu wechseln.

Richtliniendetails

Im Abschnitt Richtliniendetails finden Sie Informationen dazu, wie die entsprechenden Zulassungs-, deny- und Principal Access Boundary-Richtlinien den Zugriff des Hauptkontos beeinflussen.

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

Zulassungs- und Ablehnungsrichtlinien von übergeordneten Projekten, Ordnern und Organisationen relevant sind Richtlinienübernahme. 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 Bereich Richtliniendetails enthält die folgenden Abschnitte:

Zugriffsstatus

Im Abschnitt Zugriffsstatus werden die Ergebnisse für jeden Richtlinientyp zusammengefasst. (Principal Access Boundary-Richtlinien, Ablehnungsrichtlinien und Zulassungsrichtlinien) und gibt die für ein gutes Gesamtergebnis. 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 Richtlinie zur Begrenzung des Hauptkontozugriffs sehen Sie alle Richtlinien zur Begrenzung des Hauptkontozugriffs, 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 befindet sich ein Symbol, das angibt, auf den Zugriff des Hauptkontos auswirkt.

Principal Access Boundary-Richtlinien können den Zugriff eines Hauptkontos in der auf folgende Arten:

  • 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 hat keinen Zugriff Die Ressource: Die Principal Access Boundary-Richtlinie gilt für das Hauptkonto, aber Die abgefragte Ressource ist 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 Richtlinie oder Bindung zur Begrenzung des Hauptkontozugriffs nicht für das Hauptkonto.
    • Eine Principal Access Boundary-Richtlinie hat keine Regeln.

    Wenn eine Principal Access Boundary-Richtlinie nicht erzwungen wird, kann sie keinen Einfluss darauf haben, kann das Hauptkonto auf die Ressource zugreifen.

Um die Regeln und Bindungen anzuzeigen, die einer Principal Access Boundary-Richtlinie zugeordnet sind, auf den Namen der Richtlinie. Im Bereich neben dem Bereich Policies (Richtlinien) werden die in den Details der Richtlinie.

Klicken Sie zum Ansehen der Regeln in der Richtlinie auf den Tab Begrenzungsregeln. 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 Abfrage der Richtlinien-Fehlerbehebung auswirkt. Daher werden die relevanten Regeln variieren je nach den Ergebnissen der Richtlinien-Fehlerbehebung. Beispiel: stellen Sie sich folgende Situationen vor:

  • Die Richtlinien-Fehlerbehebung gibt an, dass das Hauptkonto auf die Ressource zugreifen kann. Daher sind die relevanten Regeln diejenigen, die Hauptkonto, das auf die Ressource zugreifen darf.
  • Die Richtlinien-Fehlerbehebung gibt an, dass das Hauptkonto nicht auf die Ressource zugreifen kann. Gemäß den entsprechenden 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 ist es entsprechend der relevanten Begrenzung des Hauptkontozugriffs erforderlich. ist das Hauptkonto nicht berechtigt, auf die Ressource zuzugreifen. Daher sind die relevanten Regeln diejenigen, die dem Hauptkonto keinen Zugriff auf die Ressource gewähren.

Wenn Sie alle Regeln zur Begrenzung des Hauptkontozugriffs in einer Richtlinie sehen möchten, entfernen Sie das Häkchen aus dem Kästchen 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 zum Aufrufen der Richtlinienbindungen für die Richtlinie auf den Tab Bindungen. 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 sie die Begrenzung des Hauptkontozugriffs effektiv anwendet. Richtlinie an das abgefragte Hauptkonto. Damit eine Richtlinienbindung eine Principal Access Boundary-Richtlinie auf ein Hauptkonto anwenden kann, müssen folgende Bedingungen erfüllt sein:

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

Zum Aufrufen aller Richtlinienbindungen mit Hauptkontogruppen, die die abgefragten Daten enthalten Hauptkonto unabhängig davon, ob das abgefragte Hauptkonto die Bedingung in Entfernen Sie das Häkchen aus dem Kästchen 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 Abschnitt Ablehnungsrichtlinie sind alle relevanten Ablehnungsrichtlinien aufgeführt. Deny-Regeln identifizieren, die den Zugriff auf das Hauptkonto verweigern, und nachvollziehen, warum eine Ablehnung vorliegt 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. Bis Wenn Sie alle Ablehnungsregeln in den Ablehnungsrichtlinien einer Ressource ansehen möchten, klicken Sie auf eine Ressource. Die Deaktivierungsregeln werden im Bereich Ausschlussregeln angezeigt. Dieser Bereich enthält eine Tabelle mit allen Ablehnungen Regeln mit dem abgefragten Hauptkonto oder der abgefragten Berechtigung für die Ressource oder Ablehnungsrichtlinie die Sie ausgewählt haben.

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

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 werden die angegebene Ressource und ihre Ancestors aufgelistet. Neben jeder Ressource befindet sich eine Zugriffsbewertung. Diese Bewertung gilt nur für die Zulassungsrichtlinie dieser Ressource. Sie berücksichtigt keinen Zugriff über übernommene Richtlinien. Wenn Sie nicht berechtigt sind, die zulassen, enthält die Ressourcenliste diese Ressource nicht.

Um die relevanten Rollenbindungen in der Zulassungsrichtlinie einer Ressource anzuzeigen, und wie sie dem Hauptkonto die Berechtigung erteilen oder nicht, klicken Sie auf das . Die Rollenbindungen der Zulassungsrichtlinie werden in den 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 Rolle Bindungen, die eine Rolle mit der angegebenen Berechtigung enthalten. Wenn das Hauptkonto keinen Zugriff hat, enthält die Tabelle auch Rollenbindungen mit bearbeitbaren benutzerdefinierten Rollen. Um alle Rollenbindungen zu sehen, deaktivieren Sie die Option Nur relevante Bindungen an.

In der Spalte Zugriff ist angegeben, ob dem Hauptkonto durch die Rollenbindung Berechtigung. Wenn Sie weitere Details zur Rollenbindung sehen möchten, klicken Sie auf Bindung ansehen Details in der Zeile dieser Rollenbindung.

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:

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

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

  • denyPolicyExplanation: Eine Zusammenfassung dazu, ob die relevante Ablehnung vorliegt Richtlinien verweigern dem Hauptkonto die Berechtigung, gefolgt von einer Liste von Ressourcen mit Ablehnungsrichtlinien. Für jede Ressource listet die Antwort alle Ablehnungsrichtlinien auf an die Ressource angehängt 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 Ablehnungsregel als Ausnahme aufgeführt ist.
    • Gibt an, ob die Bedingungen in der Ablehnungsregel erfüllt sind, sofern vorhanden.
  • overallAccessState: Ob das Hauptkonto die angegebene Berechtigung verwenden kann, um auf die angegebene Ressource zuzugreifen, basierend auf den relevanten Zulassungs-, Ablehnungs- und Richtlinien zur Begrenzung des Hauptkontozugriffs.

    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 Richtlinien für das Zulassen und Ablehnen gehören die folgenden:

    • 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

    Zulassungs- und Ablehnungsrichtlinien von übergeordneten Projekten, Ordnern und Organisationen relevant sind Richtlinienübernahme. 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 für den Zugriff auf die Ressource verwenden kann, Richtlinientypen den Zugriff erlauben müssen. Weitere Informationen finden Sie unter Richtlinienauswertung.

  • pabPolicyExplanation: Eine Zusammenfassung, ob das Hauptkonto gemäß den relevanten Richtlinien zur Begrenzung des Hauptkontozugriffs auf die Ressource zugreifen darf, gefolgt von den relevanten Bindungen und Richtlinien zur Begrenzung des Hauptkontozugriffs.

    Principal Access Boundary-Richtlinien können entweder den Zugriff erlauben, durchgesetzt werden. Principal Access Boundary-Richtlinien werden nicht in der folgenden Situationen:

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

    Wenn eine Principal Access Boundary-Richtlinie nicht erzwungen wird, kann sie keinen Einfluss darauf haben, kann das Hauptkonto auf die Ressource zugreifen.

    Die Antwort enthält außerdem alle Richtlinienbindungen, die das Hauptkonto enthalten, und die Details der Richtlinie zur Begrenzung des Hauptkontozugriffs in jeder dieser Richtlinienbindungen:

    • Für jede Bindung einer Richtlinie zur 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 das in der Bindung festgelegte Hauptkonto das abgefragte Hauptkonto enthält und die Bedingung in der Richtlinienbindung für das abgefragte Hauptkonto true ergibt. 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 gibt die Antwort Folgendes aus:

      • Gibt an, ob die Richtlinie den Zugriff erlaubt, nicht erlaubt oder nicht durchgesetzt wird.
      • Die Erzwingungsversion der Richtlinie. Diese Versionsnummer legt fest, ob IAM dies erzwingt Principal Access Boundary-Richtlinie für die abgefragte Berechtigung. Wenn die nicht erzwungen wird, hat die Richtlinie keinen Einfluss darauf, Hauptkonto kann auf die Ressource zugreifen.
      • Die Regeln in der Principal Access Boundary-Richtlinie und ob jede Regel den Zugriff zulässt. Die Antwort gibt für jede Regel an, ob die Die abgefragte Ressource ist in der Regel enthalten.

        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: Gibt an, dass das Objekt einen starken Einfluss auf für das Ergebnis. Wenn Sie das Objekt entfernen, ändert sich also wahrscheinlich der Zugriffsstatus insgesamt. Eine Rollenbindung, die dem Hauptkonto die für die angegebene Berechtigung diesen Relevanzwert haben.

  • HEURISTIC_RELEVANCE_NORMAL: Gibt an, dass das Objekt eine eingeschränkte Auswirkung hat für das Ergebnis. Mit anderen Worten ist es unwahrscheinlich, dass das Entfernen des Objekts die Gesamtzugriffsstatus angezeigt. Eine "deny"-Regel, die den Parameter Berechtigung oder das Hauptkonto hat diesen Relevanzwert.

REST

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

  • overallAccessState: Ob das Hauptkonto die angegebene Berechtigung verwenden kann, um auf die angegebene Ressource zuzugreifen, basierend auf den relevanten Zulassungs-, Ablehnungs- und Richtlinien zur Begrenzung des Hauptkontozugriffs.

    Relevante Principal Access Boundary-Richtlinien umfassen alle Principal Access Boundary-Richtlinien die gebundene in eine Hauptkontogruppe ein, die das Hauptkonto enthält.

    Zu den relevanten Richtlinien für das Zulassen und Ablehnen gehören die folgenden:

    • 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 für den Zugriff auf die Ressource verwenden kann, Richtlinientypen den Zugriff erlauben müssen. Weitere Informationen finden Sie unter Richtlinienauswertung.

  • accessTuple: Eine Beschreibung des Zugriffs-Tupels in der Anfrage, einschließlich aller von Ihnen angegebenen Bedingungskontexte. Dieser Abschnitt umfasst auch eine Zusammenfassung der Tags, die auf die Ressource anwenden.
  • allowPolicyExplanation: Eine Zusammenfassung, ob die relevanten Zulassungen Richtlinien gewähren dem Hauptkonto die Berechtigung, gefolgt von einer Liste mit Zulassungen Richtlinien und deren Rollenbindungen.

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

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

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

  • denyPolicyExplanation: Eine Zusammenfassung dazu, ob die relevante Ablehnung vorliegt Richtlinien verweigern dem Hauptkonto die Berechtigung, gefolgt von einer Liste von Ressourcen mit Ablehnungsrichtlinien. Für jede Ressource listet die Antwort alle Ablehnungsrichtlinien auf an die Ressource angehängt 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 Ablehnungsregel 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 Richtlinien zur Begrenzung des Hauptkontozugriffs auf die Ressource zugreifen darf, gefolgt von den relevanten Bindungen und Richtlinien zur Begrenzung des Hauptkontozugriffs.

    Principal Access Boundary-Richtlinien können den Zugriff entweder zulassen, nicht zulassen oder nicht erzwungen werden. Principal Access Boundary-Richtlinien werden nicht in der folgenden Situationen:

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

    Wenn eine Principal Access Boundary-Richtlinie nicht erzwungen wird, kann sie keinen Einfluss darauf haben, kann das Hauptkonto auf die Ressource zugreifen.

    Die Antwort enthält außerdem alle Richtlinienbindungen, die das Hauptkonto enthalten, und die Details der Richtlinie zur Begrenzung des Hauptkontozugriffs in jeder dieser Richtlinienbindungen:

    • Für jede Bindung einer Richtlinie zur 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 das in der Bindung festgelegte Hauptkonto das abgefragte Hauptkonto enthält und die Bedingung in der Richtlinienbindung für das abgefragte Hauptkonto true ergibt. 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 gibt die Antwort Folgendes aus:

      • Gibt an, ob die Richtlinie den Zugriff erlaubt, nicht erlaubt oder nicht durchgesetzt wird.
      • Die Erzwingungsversion der Richtlinie. Diese Versionsnummer legt fest, ob IAM dies erzwingt Principal Access Boundary-Richtlinie für die abgefragte Berechtigung. Wenn die nicht erzwungen wird, hat die Richtlinie keinen Einfluss darauf, Hauptkonto kann auf die Ressource zugreifen.
      • Die Regeln in der Principal Access Boundary-Richtlinie und ob jede Regel den Zugriff zulässt. Die Antwort gibt für jede Regel an, ob die Die abgefragte Ressource ist in der Regel enthalten.

        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 dieser gibt an, wie viel dieses Objekt zum Gesamtzugriffsstatus beiträgt. Das Feld relevance kann die folgenden Werte haben:

  • HEURISTIC_RELEVANCE_HIGH: Gibt an, dass das Objekt einen starken Einfluss auf für das Ergebnis. Wenn Sie das Objekt entfernen, ändert sich also wahrscheinlich der Zugriffsstatus insgesamt. Eine Rollenbindung, die dem Hauptkonto die für die angegebene Berechtigung diesen Relevanzwert haben.

  • HEURISTIC_RELEVANCE_NORMAL: Gibt an, dass das Objekt nur einen geringen Einfluss auf das Ergebnis hat. Mit anderen Worten ist es unwahrscheinlich, dass das Entfernen des Objekts die Gesamtzugriffsstatus angezeigt. Eine "deny"-Regel, die den Parameter Berechtigung oder das Hauptkonto hat diesen Relevanzwert.

Fehlerbehebung bei bedingten Rollenbindungen

Richtlinien-Fehlerbehebung automatisch behebt bedingte Probleme Rollenbindungen und Ablehnungsregeln basierend auf Tags. Außerdem Automatische Fehlerbehebung für Principal Access Boundary-Richtlinienbindungen mit Bedingungen basierend auf Hauptkonten.

Um Fehler bei anderen Arten von bedingten Rollenbindungen zu beheben oder bedingte Ablehnungsregeln, für die Richtlinien-Fehlerbehebung sind zusätzliche Kontext für die Anfrage. Um z. B. Probleme zu beheben, die auf Datum/Uhrzeit-Attributen angeben, muss in der Richtlinien-Fehlerbehebung die Uhrzeit

In der gcloud CLI und REST API stellen Sie diesen zusätzlichen Kontext bereit manuell.

In der Google Cloud Console können Sie diesen zusätzlichen Kontext bereitstellen, indem Sie Fehlerbehebung direkt in einem beliebigen Audit-Log für Administratoraktivitäten oder Audit-Log zum Datenzugriff Jeder Audit-Logeintrag entspricht einer Anfrage an eine Google Cloud API oder einer Aktion, die Google Cloud für Sie ausführt. 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 Ablehnungsregeln analysieren.

Console

So beheben Sie Fehler bei bedingten Rollenbindungen und Ablehnungsregeln:

  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 Kontext der Bedingung aufgeführt. So rufen Sie die Klicken Sie auf Bedingungskontext ansehen. Weitere Informationen zu den Ergebnissen der Richtlinien-Fehlerbehebung finden Sie auf dieser Seite unter Ergebnisse der Fehlerbehebung verstehen.

  6. Optional: Fehler bei einer anderen Anfrage beheben, die eine bedingte Rolle umfasst Bindungen und Ablehnungsregeln erstellen, kehren Sie zur Seite "Log-Explorer" zurück und wiederholen Sie vorherigen Schritten.

gcloud

Um Fehler bei bedingten Rollenbindungen und Ablehnungsregeln zu beheben, verwenden Sie die Methode gcloud policy-troubleshoot iam .

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

  • EMAIL: Die E-Mail-Adresse des Hauptkontos, dessen mit denen Sie eine Fehlerbehebung durchführen möchten.
  • RESOURCE: Die Ressource, für die die Berechtigung gewährt wird.
  • PERMISSION: Berechtigung, die Sie ausführen möchten Fehlerbehebung.
  • DESTINATION_IP: Optional. Die Ziel-IP-Adresse der Anfrage Adresse, die beim Prüfen bedingter Rollenbindungen verwendet werden soll. Beispiel: 198.1.1.1.
  • DESTINATION_PORT: Optional. Das Anfrageziel Port, der beim Prüfen bedingter Rollenbindungen verwendet werden soll. Beispiel: „8080“.
  • REQUEST_TIME: Optional. Der zu verwendende Zeitstempel der Anfrage wenn Sie bedingte Rollenbindungen prüfen. Verwenden Sie einen Zeitstempel im RFC 3339-Format, z. B. 2099-02-01T00:00:00Z.
  • RESOURCE_NAME: Optional. Der Wert des Ressourcennamens für beim Prüfen bedingter Rollenbindungen. Für eine Liste der akzeptierten Ressourcen Namensformate, siehe Ressourcenname Format.
  • 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 akzeptierten Weitere Informationen zu Ressourcentypen finden Sie unter Ressourcentyp Werte.

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

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 Erklärung 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 finden Sie beispielsweise eine Bewertung einer Rollenbindung mit einer Bedingung, die die Ressourcentyp und Ressourcendienst:

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:[email protected]": {
      "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: Berechtigung, die Sie ausführen möchten Fehlerbehebung.
  • DESTINATION_IP: Optional. Die Ziel-IP-Adresse der Anfrage Adresse, die beim Prüfen bedingter Rollenbindungen verwendet werden soll. Beispiel: 198.1.1.1.
  • DESTINATION_PORT: Optional. Das Anfrageziel Port, der beim Prüfen 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. Für eine Liste der akzeptierten Ressourcen Namensformate, siehe Ressourcenname Format.
  • RESOURCE_SERVICE: Optional. Ressourcendienst Wert zum Prüfen bedingter Rollenbindungen. Eine Liste der zulässigen Dienstnamen finden Sie unter Werte für Ressourcendienste.
  • RESOURCE_TYPE: Optional. Eine Liste der akzeptierten Weitere Informationen zu Ressourcentypen finden Sie unter Ressourcentyp Werte.

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 der Zugriffsrechte des Hauptkontos. Für jede Rolle Bindungs- und Ablehnungsregel mit einer Bedingung enthält, enthält die Antwort eine Das Feld conditionExplanation gibt an, ob die Bedingung wird je nach Bedingungskontext, den Sie angegeben haben, als wahr oder falsch ausgewertet.

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:[email protected]": {
      "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