Fehler bei IAM-Berechtigungen beheben

Die Richtlinien-Fehlerbehebung für IAM hilft Ihnen zu verstehen, warum ein Nutzer Zugriff auf eine Ressource oder keine Berechtigung zum Aufrufen einer API hat. Mit der Angabe einer E-Mail-Adresse, Ressource und Berechtigung wertet die Richtlinien-Fehlerbehebung alle Zulassungs- und -Ablehnungsrichtlinien aus, die auf die Ressource angewendet werden. Anschließend wird anhand dieser Richtlinien ermittelt, ob das Hauptkonto die Berechtigung hat. Außerdem werden die Rollenbindungen und Ablehnungsregeln in den Richtlinien aufgelistet 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 geht es in der Regel am schnellsten über die Google Cloud Console. Für komplexere Szenarien sollten Sie die gcloud CLI oder die REST API verwenden.

Hinweise

  • Policy Troubleshooter API aktivieren.

    Aktivieren Sie die API

Erforderliche Berechtigungen

Sie benötigen die folgenden Berechtigungen, um Fehler beim Zugriff Ihrer Hauptkonten vollständig zu beheben.

Berechtigungen zur Fehlerbehebung beim Zugriff auf einzelne Hauptkonten

Die Richtlinien-Fehlerbehebung analysiert den Zugriff eines Hauptkontos auf eine Ressource anhand der Zulassungsrichtlinien, Ablehnungsrichtlinien und Rollen, zu deren Ansicht Sie berechtigt sind. Wenn Sie nicht berechtigt sind, eine Richtlinie aufzurufen, die für eine Ressource gilt, oder wenn Sie nicht berechtigt sind, eine benutzerdefinierte Rolle aufzurufen, können Sie möglicherweise nicht feststellen, ob ein Hauptkonto Zugriff hat.

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für die Organisation zu gewähren, um die Berechtigungen zu erhalten, die Sie für die Fehlerbehebung beim Zugriff eines Hauptkontos benötigen:

  • Sicherheitsprüfer (roles/iam.securityReviewer)
  • Fehlerbehebung bei Ablehnungsrichtlinien: Deny Reviewer (roles/iam.denyReviewer)
  • Verwenden Sie die Google Cloud CLI, um Fehler in folgenden Fällen zu beheben: Service Usage-Nutzer (roles/serviceusage.serviceUsageConsumer)

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

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

Berechtigungen zur Fehlerbehebung für Gruppenmitglieder

Wenn Ihre Zulassungs- und Ablehnungsrichtlinien Gruppen enthalten, benötigen Sie die Google Workspace Admin API-Berechtigung groups.read, um Probleme mit dem Zugriff für einzelne Gruppenmitglieder zu beheben. Super Admins und Gruppenadministratoren haben diese Berechtigung automatisch. Wenn Sie einem Nutzer, der kein Super- oder Gruppenadministrator ist, diese Berechtigung erteilen möchten, erstellen Sie eine benutzerdefinierte Google Workspace-Administrator-Administratorrolle mit der Berechtigung groups.read (unter Berechtigungen für Admin APIs) und gewähren Sie sie dem Nutzer.

Wenn Sie diese Berechtigungen nicht haben, haben Rollenbindungen und Ablehnungsregeln, die Gruppen oder Domains enthalten, das Zugriffsergebnis Unbekannt, es sei denn, die Rollenbindungs- oder Ablehnungsregel enthält das Hauptkonto explizit.

Berechtigungen zur Fehlerbehebung für Domainmitglieder

Wenn Ihre Zulassungs- und Ablehnungsrichtlinien ein Google Workspace-Konto oder eine Cloud Identity-Domain umfassen, müssen Sie ein Domainadministrator sein, um Probleme beim Zugriff auf einzelne Domainmitglieder beheben zu können.

Wenn Sie diese Berechtigungen nicht haben, haben Rollenbindungen und Ablehnungsregeln, die Gruppen oder Domains enthalten, das Zugriffsergebnis Unbekannt, es sei denn, die Rollenbindungs- oder Ablehnungsregel enthält das Hauptkonto explizit.

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 wie Gruppen, Domains, Mitarbeiteridentitäten und Arbeitslastidentitäten werden nicht unterstützt.
  • Ressource: Den vollständigen Namen der Ressource. Um beispielsweise das Projekt my-project zu prüfen, 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. 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, führen Sie einen der folgenden Schritte aus:

    • Wenn Sie Probleme mit dem Zugriff auf ein Projekt, einen Ordner oder eine Organisation beheben müssen, beginnen Sie mit der Eingabe, um die Optionen für die automatische Vervollständigung zu sehen.
    • Wenn Sie Fehler beim Zugriff auf einen anderen Ressourcentyp beheben möchten, klicken Sie auf Browse (Durchsuchen), um das Dialogfeld für die Ressourcensuche zu öffnen. Suchen Sie dann nach der Ressource:

      1. Wählen Sie im Feld Bereich auswählen ein Projekt, einen Ordner oder eine Organisation für die Suche aus.
      2. Wählen Sie im Feld Ressourcentyp die Ressourcentypen aus, nach denen Sie suchen möchten.
      3. Geben Sie einen Teil des Ressourcennamens in das Feld Nach Ressourcen suchen 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 schließen Sie das Dialogfeld.
  4. Geben Sie die zu prüfende Berechtigung ein.

    Wenn Sie den vollständigen Berechtigungsnamen nicht kennen, beginnen Sie mit der Eingabe, um Optionen 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

Verwenden Sie den Befehl gcloud policy-troubleshoot iam, um herauszufinden, warum ein Hauptkonto eine IAM-Berechtigung hat oder nicht.

Bevor Sie die folgenden Befehlsdaten verwenden, ersetzen Sie die folgenden Werte:

  • 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 policy-troubleshoot iam aus:

Linux, macOS oder Cloud Shell

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

Windows (PowerShell)

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

Windows (cmd.exe)

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

Sie sollten eine Antwort ähnlich der folgenden erhalten:

{
  "accessTuple": {
    "conditionContext": {
      "destination": {},
      "effectiveTags": [
        {
          "tagValue": "tagValues/281481941428044",
          "namespacedTagValue": "803434038361/env/dev",
          "tagKey": "tagKeys/281475994198094",
          "namespacedTagKey": "803434038361/env",
          "tagKeyParentName": "organizations/803434038361"
        }
      ],
      "request": {},
      "resource": {}
    },
    "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project",
    "permission": "compute.instances.get",
    "permissionFqdn": "compute.googleapis.com/instances.get",
    "principal": "user1@example.com"
  },
  "allowPolicyExplanation": {
    "allowAccessState": "ALLOW_ACCESS_STATE_GRANTED",
    "explainedPolicies": [
      {
        "allowAccessState": "ALLOW_ACCESS_STATE_GRANTED",
        "bindingExplanations": [
          {
            "allowAccessState": "ALLOW_ACCESS_STATE_GRANTED",
            "combinedMembership": {
              "membership": "MEMBERSHIP_MATCHED",
              "relevance": "HEURISTIC_RELEVANCE_HIGH"
            },
            "memberships": {
              "user:user1@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"
          },
          {
            "allowAccessState": "ALLOW_ACCESS_STATE_NOT_GRANTED",
            "combinedMembership": {
              "membership": "MEMBERSHIP_NOT_MATCHED",
              "relevance": "HEURISTIC_RELEVANCE_NORMAL"
            },
            "memberships": {
              "user:user2@example.com": {
                "membership": "MEMBERSHIP_NOT_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              }
            },
            "relevance": "HEURISTIC_RELEVANCE_NORMAL",
            "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": {
              "user:user1@example.com": {
                "membership": "MEMBERSHIP_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              }
            },
            "relevance": "HEURISTIC_RELEVANCE_NORMAL",
            "role": "roles/resourcemanager.organizationAdmin",
            "rolePermission": "ROLE_PERMISSION_NOT_INCLUDED",
            "rolePermissionRelevance": "HEURISTIC_RELEVANCE_NORMAL"
          }
        ],
        "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project",
        "policy": {
          "bindings": [
            {
              "members": [
                "user:user1@example.com"
              ],
              "role": "roles/compute.viewer"
            },
            {
              "members": [
                "user:user2@example.com"
              ],
              "role": "roles/owner"
            },
            {
              "members": [
                "user:user1@example.com"
              ],
              "role": "roles/resourcemanager.organizationAdmin"
            },
          ],
          "etag": "BwX5/L9Vbg4=",
          "version": 3
        },
        "relevance": "HEURISTIC_RELEVANCE_HIGH"
      }
    ],
    "relevance": "HEURISTIC_RELEVANCE_NORMAL"
  },
  "denyPolicyExplanation": {
    "denyAccessState": "DENY_ACCESS_STATE_DENIED",
    "explainedResources": [
      {
        "denyAccessState": "DENY_ACCESS_STATE_DENIED",
        "explainedPolicies": [
          {
            "denyAccessState": "DENY_ACCESS_STATE_DENIED",
            "policy": {
              "createTime": "2023-04-18T07:15:47.702191Z",
              "displayName": "Deny compute instance get",
              "etag": "MTc3MDA1ODIyNjExNTMzMDg2NzI=",
              "kind": "DenyPolicy",
              "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F123456789012/denypolicies/deny-compute-get",
              "rules": [
                {
                  "denyRule": {
                    "deniedPrincipals": [
                      "principal://iam.googleapis.com/projects/-/serviceAccounts/user1@example.com"
                    ],
                    "deniedPermissions": [
                      "compute.googleapis.com/instances.get"
                    ]
                  }
                }
              ],
              "uid": "77e93c80-b383-0027-268e-a52a608aa13d",
              "updateTime": "2023-04-18T07:15:47.702191Z",
            },
            "relevance": "HEURISTIC_RELEVANCE_HIGH",
            "ruleExplanations": [
              {
                "combinedDeniedPermission": {
                  "permissionMatchingState": "PERMISSION_PATTERN_MATCHED",
                  "relevance": "HEURISTIC_RELEVANCE_NORMAL"
                },
                "combinedDeniedPrincipal": {
                  "membership": "MEMBERSHIP_MATCHED",
                  "relevance": "HEURISTIC_RELEVANCE_NORMAL"
                },
                "combinedExceptionPermission": {
                  "permissionMatchingState": "PERMISSION_PATTERN_NOT_MATCHED",
                  "relevance": "HEURISTIC_RELEVANCE_NORMAL"
                },
                "combinedExceptionPrincipal": {
                  "membership": "MEMBERSHIP_NOT_MATCHED",
                  "relevance": "HEURISTIC_RELEVANCE_NORMAL"
                },
                "deniedPermissions": {
                  "compute.googleapis.com/instances.get": {
                    "permissionMatchingState": "PERMISSION_PATTERN_MATCHED",
                    "relevance": "HEURISTIC_RELEVANCE_NORMAL"
                  }
                },
                "deniedPrincipals": {
                  "principal://iam.googleapis.com/projects/-/serviceAccounts/user1@example.com": {
                    "membership": "MEMBERSHIP_MATCHED",
                    "relevance": "HEURISTIC_RELEVANCE_NORMAL"
                  }
                },
                "denyAccessState": "DENY_ACCESS_STATE_DENIED",
                "relevance": "HEURISTIC_RELEVANCE_HIGH"
              }
            ]
          }
        ],
        "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/123456789012",
        "relevance": "HEURISTIC_RELEVANCE_HIGH"
      }
    ],
    "permissionDeniable": true,
    "relevance": "HEURISTIC_RELEVANCE_HIGH"
  },
  "overallAccessState": "CANNOT_ACCESS"
}

REST

Verwenden Sie die Methode iam.troubleshoot der Policy Troubleshooter API, um herauszufinden, warum ein Hauptkonto eine IAM-Berechtigung hat oder nicht.

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • 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, das Sie für die Anfrage verwenden möchten. Projekt-IDs sind alphanumerische Strings, wie my-project.

HTTP-Methode und URL:

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

JSON-Text der Anfrage:

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

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "overallAccessState": "CANNOT_ACCESS",
  "accessTuple": {
    "principal": "user1@example.com",
    "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project",
    "permission": "compute.instances.get",
    "permissionFqdn": "compute.googleapis.com/instances.get",
    "conditionContext": {
      "effectiveTags": [
        {
          "tagValue": "tagValues/281481941428044",
          "namespacedTagValue": "803434038361/env/dev",
          "tagKey": "tagKeys/281475994198094",
          "namespacedTagKey": "803434038361/env",
          "tagKeyParentName": "organizations/803434038361"
        }
      ]
    }
  },
  "allowPolicyExplanation": {
    "allowAccessState": "ALLOW_ACCESS_STATE_GRANTED",
    "explainedPolicies": [
      {
        "allowAccessState": "ALLOW_ACCESS_STATE_GRANTED",
        "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project",
        "bindingExplanations": [
          {
            "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:user1@example.com": {
                "membership": "MEMBERSHIP_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_HIGH"
              }
            },
            "relevance": "HEURISTIC_RELEVANCE_HIGH"
          },
          {
            "allowAccessState": "ALLOW_ACCESS_STATE_NOT_GRANTED",
            "role": "roles/owner",
            "rolePermission": "ROLE_PERMISSION_INCLUDED",
            "rolePermissionRelevance": "HEURISTIC_RELEVANCE_HIGH",
            "combinedMembership": {
              "membership": "MEMBERSHIP_NOT_MATCHED",
              "relevance": "HEURISTIC_RELEVANCE_NORMAL"
            },
            "memberships": {
              "user:user2@example.com": {
                "membership": "MEMBERSHIP_NOT_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              }
            },
            "relevance": "HEURISTIC_RELEVANCE_NORMAL"
          },
          {
            "allowAccessState": "ALLOW_ACCESS_STATE_NOT_GRANTED",
            "role": "roles/resourcemanager.organizationAdmin",
            "rolePermission": "ROLE_PERMISSION_NOT_INCLUDED",
            "rolePermissionRelevance": "HEURISTIC_RELEVANCE_NORMAL",
            "combinedMembership": {
              "membership": "MEMBERSHIP_MATCHED",
              "relevance": "HEURISTIC_RELEVANCE_NORMAL"
            },
            "memberships": {
              "user:user1@example.com": {
                "membership": "MEMBERSHIP_MATCHED",
                "relevance": "HEURISTIC_RELEVANCE_NORMAL"
              }
            },
            "relevance": "HEURISTIC_RELEVANCE_NORMAL"
          }
        ],
        "relevance": "HEURISTIC_RELEVANCE_HIGH",
        "policy": {
          "version": 3,
          "etag": "BwX5/L9Vbg4=",
          "bindings": [
            {
              "role": "roles/compute.viewer",
              "members": [
                "user:user1@example.com"
              ]
            },
            {
              "role": "roles/owner",
              "members": [
                "user:user2@example.com"
              ]
            },
            {
              "role": "roles/resourcemanager.organizationAdmin",
              "members": [
                "user:user1@example.com"
              ]
            },
          ]
        }
      }
    ],
    "relevance": "HEURISTIC_RELEVANCE_NORMAL"
  },
  "denyPolicyExplanation": {
    "denyAccessState": "DENY_ACCESS_STATE_DENIED",
    "explainedResources": [
      {
        "denyAccessState": "DENY_ACCESS_STATE_DENIED",
        "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/123456789012",
        "explainedPolicies": [
          {
            "denyAccessState": "DENY_ACCESS_STATE_DENIED",
            "policy": {
              "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F123456789012/denypolicies/deny-compute-get",
              "uid": "77e93c80-b383-0027-268e-a52a608aa13d",
              "kind": "DenyPolicy",
              "displayName": "Deny compute instance get",
              "etag": "MTc3MDA1ODIyNjExNTMzMDg2NzI=",
              "createTime": "2023-04-18T07:15:47.702191Z",
              "updateTime": "2023-04-18T07:15:47.702191Z",
              "rules": [
                {
                  "denyRule": {
                    "deniedPrincipals": [
                      "principal://iam.googleapis.com/projects/-/serviceAccounts/user1@example.com"
                    ],
                    "deniedPermissions": [
                      "compute.googleapis.com/instances.get"
                    ]
                  }
                }
              ]
            },
            "ruleExplanations": [
              {
                "denyAccessState": "DENY_ACCESS_STATE_DENIED",
                "combinedDeniedPermission": {
                  "permissionMatchingState": "PERMISSION_PATTERN_MATCHED",
                  "relevance": "HEURISTIC_RELEVANCE_NORMAL"
                },
                "deniedPermissions": {
                  "compute.googleapis.com/instances.get": {
                    "permissionMatchingState": "PERMISSION_PATTERN_MATCHED",
                    "relevance": "HEURISTIC_RELEVANCE_NORMAL"
                  }
                },
                "combinedExceptionPermission": {
                  "permissionMatchingState": "PERMISSION_PATTERN_NOT_MATCHED",
                  "relevance": "HEURISTIC_RELEVANCE_NORMAL"
                },
                "combinedDeniedPrincipal": {
                  "membership": "MEMBERSHIP_MATCHED",
                  "relevance": "HEURISTIC_RELEVANCE_NORMAL"
                },
                "deniedPrincipals": {
                  "principal://iam.googleapis.com/projects/-/serviceAccounts/user1@example.com": {
                    "membership": "MEMBERSHIP_MATCHED",
                    "relevance": "HEURISTIC_RELEVANCE_NORMAL"
                  }
                },
                "combinedExceptionPrincipal": {
                  "membership": "MEMBERSHIP_NOT_MATCHED",
                  "relevance": "HEURISTIC_RELEVANCE_NORMAL"
                },
                "relevance": "HEURISTIC_RELEVANCE_HIGH"
              }
            ],
            "relevance": "HEURISTIC_RELEVANCE_HIGH"
          }
        ],
        "relevance": "HEURISTIC_RELEVANCE_HIGH"
      }
    ],
    "relevance": "HEURISTIC_RELEVANCE_HIGH",
    "permissionDeniable": true
  }
}

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 Fehler beheben, einschließlich des angegebenen Hauptkontos, der angegebenen Ressource und der Berechtigung. Wenn Sie Probleme mit mehreren Ressourcenberechtigungspaaren beheben, können Sie mithilfe der Liste Zugriffsauswertung zwischen ihnen wechseln.

Richtliniendetails

Der Abschnitt Richtliniendetails enthält Details dazu, wie sich die entsprechenden Zulassungs- und Ablehnungsrichtlinien auf den Zugriff des Hauptkontos auswirken.

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 Zulassungs- und Ablehnungsrichtlinien 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

Der Abschnitt Zugriffsstatus enthält eine kurze Zusammenfassung des Zugriffs des Hauptkontos basierend auf den relevanten IAM-Zulassungs- und Ablehnungsrichtlinien. Diese Zusammenfassung enthält die Auswirkungen von Ablehnungsrichtlinien, die Auswirkungen von Zulassungsrichtlinien und das endgültige Zugriffsergebnis basierend auf den entsprechenden Ablehnungs- und Zulassungsrichtlinien.

Ablehnungsrichtlinie

Im Abschnitt Ablehnungsrichtlinie können Sie alle relevanten Ablehnungsrichtlinien ansehen, Ablehnungsregeln ermitteln, die den Zugriff auf das Hauptkonto ablehnen, und nachvollziehen, warum eine Ablehnungsregel dem Hauptkonto die Berechtigung verweigert oder nicht ablehnt.

Im Bereich Ressourcen mit Ablehnungsrichtlinien werden alle relevanten Ablehnungsrichtlinien aufgelistet, sortiert nach den Ressourcen, an die sie angehängt sind. Neben jeder Ablehnungsrichtlinie befindet sich eine Zugriffsauswertung. Diese Bewertung gilt nur für diese Ablehnungsrichtlinie – sie spiegelt keinen Zugriff von übernommenen Richtlinien wider. Wenn Sie nicht berechtigt sind, die Ablehnungsrichtlinie einer Ressource aufzurufen, enthält die Ressourcenliste diese Ressource oder ihre Ablehnungsrichtlinien nicht.

Klicken Sie auf eine Ablehnungsrichtlinie, um die entsprechenden Ablehnungsregeln in diesen Ablehnungsrichtlinien anzusehen. Klicken Sie auf eine Ressource, um alle Ablehnungsregeln in den Ablehnungsrichtlinien einer Ressource anzusehen. Die Ablehnungsregeln werden im Bereich Ablehnungsregeln angezeigt. Dieser Bereich enthält eine Tabelle aller Ablehnungsregeln mit dem abgefragten Hauptkonto oder der abgefragten Berechtigung für die ausgewählte Ressource oder Ablehnungsrichtlinie.

In der Spalte Zugriff wird angegeben, ob dem Hauptkonto die Berechtigung durch die Ablehnungsregel verweigert wird. Um weitere Details zur Ablehnungsregel aufzurufen, klicken Sie in der Zeile der entsprechenden Regel auf Ablehnungsregel ansehen.

Zulassungsrichtlinie

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

Im Bereich Ressourcen werden die angegebene Ressource und ihre Ancestors aufgelistet. Neben jeder Ressource wird eine Zugriffsbewertung angezeigt. Diese Bewertung gilt nur für die Zulassungsrichtlinie der Ressource. Zugriffsberechtigungen von übernommenen Richtlinien werden nicht berücksichtigt. Wenn Sie nicht berechtigt sind, die Zulassungsrichtlinie einer Ressource aufzurufen, ist diese Ressource nicht in der Ressourcenliste enthalten.

Klicken Sie auf die Ressource, um die relevanten Rollenbindungen in der Zulassungsrichtlinie einer Ressource anzusehen und zu sehen, wie dem Hauptkonto die Berechtigung erteilt wird. Die Bindungen 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 Show only relevant bindings (Nur relevante Bindungen anzeigen).

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

gcloud

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

  • accessTuple: Eine Beschreibung des Zugriffstupels in der Anfrage, einschließlich des von Ihnen angegebenen Bedingungskontexts. Dieser Abschnitt enthält auch eine Zusammenfassung der Tags, die für die Ressource gelten.
  • allowPolicyExplanation: Eine Zusammenfassung, ob die relevanten Zulassungsrichtlinien dem Hauptkonto die Berechtigung gewähren, gefolgt von einer Liste der Zulassungsrichtlinien und ihrer Rollenbindungen.

    Für jede Zulassungsrichtlinie listet die Antwort alle Rollenbindungen in der Richtlinie auf und wertet sie anhand der folgenden Kriterien aus:

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

    Die Antwort gibt dann den vollständigen JSON-Text der Zulassungsrichtlinie aus.

  • denyPolicyExplanation: Eine Zusammenfassung, ob die relevanten Ablehnungsrichtlinien dem Hauptkonto die Berechtigung ablehnen, gefolgt von einer Liste der Ressourcen mit Ablehnungsrichtlinien. Für jede Ressource werden in der Antwort alle Ablehnungsrichtlinien aufgelistet, die mit der Ressource verbunden sind.

    Für jede Ablehnungsrichtlinie gibt die Antwort die Metadaten der Richtlinie aus, listet die Ablehnungsregeln in der Richtlinie auf und bewertet dann jede Regel anhand der folgenden Kriterien:

    • Gibt an, ob die Ablehnungsregel die Berechtigung enthält.
    • Gibt an, ob die Berechtigung in der Ablehnungsregel 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, falls vorhanden, erfüllt sind.
  • overallAccessState: Gibt an, ob das Hauptkonto gemäß den entsprechenden Zulassungs- und Ablehnungsrichtlinien die angegebene Berechtigung verwenden kann, um auf die angegebene Ressource zuzugreifen.

    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 Zulassungs- und Ablehnungsrichtlinien 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.

  • Viele Objekte in der Antwort haben auch das Feld relevance. Der Wert in diesem Feld gibt an, wie viel dieses Objekt zum Gesamtzugriffsstatus beiträgt. Das Feld relevance kann die folgenden Werte enthalten:

    • HEURISTIC_RELEVANCE_HIGH: Gibt an, dass das Objekt starke Auswirkungen auf das Ergebnis hat. Mit anderen Worten: Durch das Entfernen des Objekts ändert sich wahrscheinlich der allgemeine Zugriffsstatus. Eine Rollenbindung, die dem Hauptkonto die angegebene Berechtigung gewährt, hat beispielsweise diesen Relevanzwert.

    • HEURISTIC_RELEVANCE_NORMAL: Gibt an, dass das Objekt eine begrenzte Auswirkung auf das Ergebnis hat. Mit anderen Worten: Das Entfernen des Objekts wird sich wahrscheinlich nicht auf den gesamten Zugriffsstatus auswirken. Dieser Relevanzwert wäre beispielsweise eine Ablehnungsregel, die die Berechtigung oder das Hauptkonto nicht enthält.

REST

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

  • overallAccessState: Gibt an, ob das Hauptkonto gemäß den entsprechenden Zulassungs- und Ablehnungsrichtlinien die angegebene Berechtigung verwenden kann, um auf die angegebene Ressource zuzugreifen.

    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 Zulassungs- und Ablehnungsrichtlinien 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.

  • accessTuple: Eine Beschreibung des Zugriffstupels in der Anfrage, einschließlich des von Ihnen angegebenen Bedingungskontexts. Dieser Abschnitt enthält auch eine Zusammenfassung der Tags, die für die Ressource gelten.
  • allowPolicyExplanation: Eine Zusammenfassung, ob die relevanten Zulassungsrichtlinien dem Hauptkonto die Berechtigung gewähren, gefolgt von einer Liste der Zulassungsrichtlinien und ihrer Rollenbindungen.

    Für jede Zulassungsrichtlinie listet die Antwort alle Rollenbindungen in der Richtlinie auf und wertet sie anhand der folgenden Kriterien aus:

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

    Die Antwort gibt dann den vollständigen JSON-Text der Zulassungsrichtlinie aus.

  • denyPolicyExplanation: Eine Zusammenfassung, ob die relevanten Ablehnungsrichtlinien dem Hauptkonto die Berechtigung ablehnen, gefolgt von einer Liste der Ressourcen mit Ablehnungsrichtlinien. Für jede Ressource werden in der Antwort alle Ablehnungsrichtlinien aufgelistet, die mit der Ressource verbunden sind.

    Für jede Ablehnungsrichtlinie gibt die Antwort die Metadaten der Richtlinie aus, listet die Ablehnungsregeln in der Richtlinie auf und bewertet dann jede Regel anhand der folgenden Kriterien:

    • Gibt an, ob die Ablehnungsregel die Berechtigung enthält.
    • Gibt an, ob die Berechtigung in der Ablehnungsregel 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, falls vorhanden, erfüllt sind.
  • Viele Objekte in der Antwort haben auch das Feld relevance. Der Wert in diesem Feld gibt an, wie viel dieses Objekt zum Gesamtzugriffsstatus beiträgt. Das Feld relevance kann die folgenden Werte enthalten:

    • HEURISTIC_RELEVANCE_HIGH: Gibt an, dass das Objekt starke Auswirkungen auf das Ergebnis hat. Mit anderen Worten: Durch das Entfernen des Objekts ändert sich wahrscheinlich der allgemeine Zugriffsstatus. Eine Rollenbindung, die dem Hauptkonto die angegebene Berechtigung gewährt, hat beispielsweise diesen Relevanzwert.

    • HEURISTIC_RELEVANCE_NORMAL: Gibt an, dass das Objekt eine begrenzte Auswirkung auf das Ergebnis hat. Mit anderen Worten: Das Entfernen des Objekts wird sich wahrscheinlich nicht auf den gesamten Zugriffsstatus auswirken. Dieser Relevanzwert wäre beispielsweise eine Ablehnungsregel, die die Berechtigung oder das Hauptkonto nicht enthält.

Fehlerbehebung bei bedingten Rollenbindungen

Die Richtlinien-Fehlerbehebung behebt automatisch Probleme mit bedingten Rollenbindungen und Ablehnungsregeln, die auf Tags basieren. Zur Fehlerbehebung bei anderen Arten von bedingten Rollenbindungen oder bedingten Ablehnungsregeln benötigt die Richtlinien-Fehlerbehebung jedoch zusätzlichen Kontext zur Anfrage. Um beispielsweise Bedingungen zu beheben, die auf Datums-/Uhrzeitattributen basieren, benötigt die Richtlinien-Fehlerbehebung die Uhrzeit der Anfrage.

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

In der Google Cloud Console können Sie diesen zusätzlichen Kontext bereitstellen, indem Sie die Fehlerbehebung direkt über ein Audit-Log zur Administratoraktivität oder ein Audit-Log zum Datenzugriff ausführen. Jeder Audit-Logeintrag entspricht einer Anfrage an eine Google Cloud API oder einer Aktion, die Google Cloud für Sie ausführt. Wenn Sie die Fehlerbehebung anhand eines Audit-Logs durchführen, erhält die Richtlinien-Fehlerbehebung automatisch zusätzliche Informationen zur Anfrage, z. B. Datum und Uhrzeit. Dadurch kann die Richtlinien-Fehlerbehebung bedingte Rollenbindungen und Ablehnungsregeln analysieren.

Console

So können Sie Probleme mit bedingten Rollenbindungen und Ablehnungsregeln beheben:

  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 Fehler beim Zugriff zu beheben, und zeigt Ihnen dann die Ergebnisse an. Der zusätzliche Kontext wird in den Bewertungsdetails unter Bedingungskontext aufgeführt. Klicken Sie auf Bedingungskontext ansehen, um die Kontextdetails aufzurufen. Weitere Informationen zur Ergebnisseite der Richtlinien-Fehlerbehebung finden Sie auf dieser Seite unter Zugriff auf die Fehlerbehebung.

  6. Optional: Wenn Sie Fehler bei einer anderen Anfrage beheben möchten, die bedingte Rollenbindungen und Ablehnungsregeln enthält, kehren Sie zur Seite „Log-Explorer“ zurück und wiederholen Sie die vorherigen Schritte.

gcloud

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

Bevor Sie die folgenden Befehlsdaten verwenden, ersetzen Sie die folgenden Werte:

  • EMAIL: Die E-Mail-Adresse des Hauptkontos, dessen Berechtigungen Sie beheben möchten.
  • RESOURCE: Die Ressource, für die die Berechtigung gewährt wird.
  • PERMISSION: Die Berechtigung, für die Sie eine Fehlerbehebung durchführen möchten.
  • DESTINATION_IP: Optional. Die Ziel-IP-Adresse der Anfrage, die beim Prüfen bedingter Rollenbindungen verwendet werden soll. Beispiel: 198.1.1.1.
  • DESTINATION_PORT: Optional. Der Zielport der Anfrage, der zum Prüfen bedingter Rollenbindungen verwendet werden soll. Beispiel: „8080“.
  • REQUEST_TIME: Optional. Der Anfragezeitstempel, der zum Prüfen 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 des Ressourcennamens, der zum Prüfen bedingter Rollenbindungen verwendet werden soll. Eine Liste der zulässigen Formate für Ressourcennamen finden Sie unter Format von Ressourcennamen.
  • RESOURCE_SERVICE: Optional. Der Ressourcendienstwert, der zum Prüfen 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 Rollenbindungs- und Ablehnungsregel mit einer Bedingung enthält die Antwort das Feld conditionExplanation, das beschreibt, ob die Bedingung je nach angegebenem Bedingungskontext als wahr oder falsch ausgewertet wird.

Das folgende Beispiel zeigt eine Bewertung einer Rollenbindung mit einer Bedingung, die den Ressourcentyp und den Ressourcendienst angibt:

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

Wenn Sie Probleme mit bedingten Rollenbindungen und Ablehnungsregeln beheben möchten, verwenden Sie die Methode iam.troubleshoot der Policy Troubleshooter API.

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • EMAIL: Die E-Mail-Adresse des Hauptkontos, dessen Berechtigungen Sie beheben möchten.
  • RESOURCE: Die Ressource, für die die Berechtigung gewährt wird.
  • PERMISSION: Die Berechtigung, für die Sie eine Fehlerbehebung durchführen möchten.
  • DESTINATION_IP: Optional. Die Ziel-IP-Adresse der Anfrage, die beim Prüfen bedingter Rollenbindungen verwendet werden soll. Beispiel: 198.1.1.1.
  • DESTINATION_PORT: Optional. Der Zielport der Anfrage, der zum Prüfen bedingter Rollenbindungen verwendet werden soll. Beispiel: „8080“.
  • REQUEST_TIME: Optional. Der Anfragezeitstempel, der zum Prüfen 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 des Ressourcennamens, der zum Prüfen bedingter Rollenbindungen verwendet werden soll. Eine Liste der zulässigen Formate für Ressourcennamen finden Sie unter Format von Ressourcennamen.
  • RESOURCE_SERVICE: Optional. Der Ressourcendienstwert, der zum Prüfen 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 der Anfrage:

{
  "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 Rollenbindungs- und Ablehnungsregel mit einer Bedingung enthält die Antwort das Feld conditionExplanation, das beschreibt, ob die Bedingung je nach angegebenem Bedingungskontext als wahr oder falsch ausgewertet wird.

Das folgende Beispiel zeigt eine Bewertung einer Rollenbindung mit einer Bedingung, die den Ressourcentyp und den Ressourcendienst angibt:

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