Fehler bei IAM-Berechtigungen beheben

Mit der Richtlinien-Fehlerbehebung für IAM können Sie nachvollziehen, 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 auf die Richtlinien-Fehlerbehebung über die Google Cloud Console, die Google Cloud CLI oder die REST API zugreifen. Bei einfachen Abfragen ist die Verwendung der Google Cloud Console in der Regel am schnellsten. Verwenden Sie in komplexeren Szenarien die gcloud CLI oder die REST API.

Hinweise

  • Policy Troubleshooter API aktivieren.

    Aktivieren Sie die API

Erforderliche Berechtigungen

Sie benötigen die folgenden Berechtigungen, um Probleme mit dem Zugriff Ihrer Hauptkonten zu beheben.

Berechtigungen zur Fehlerbehebung beim Zugriff für einzelne Hauptkonten

Die Richtlinien-Fehlerbehebung analysiert den Zugriff eines Hauptkontos auf eine Ressource anhand der Zulassungsrichtlinien, Ablehnungsrichtlinien und Rollen, die Sie aufrufen dürfen. Wenn Sie nicht berechtigt sind, eine Richtlinie anzusehen, die auf eine Ressource angewendet wird, oder wenn Sie nicht berechtigt sind, eine benutzerdefinierte Rolle anzusehen, können Sie möglicherweise nicht feststellen, ob ein Hauptkonto Zugriff hat.

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

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 anfordern.

Berechtigungen zur Fehlerbehebung des Zugriffs für Gruppenmitglieder

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

Wenn Sie diese Berechtigungen nicht haben, erhalten Rollenbindungen und Ablehnungsregeln, die Gruppen oder Domains enthalten, ein Zugriffsergebnis von Unknown, es sei denn, die Rollenbindung oder Ablehnungsregel enthält auch explizit das Hauptkonto.

Berechtigungen zur Fehlerbehebung beim Zugriff von Domainmitgliedern

Wenn Ihre Zulassungs- und Ablehnungsrichtlinien ein Google Workspace-Konto oder eine Cloud Identity-Domain umfassen, müssen Sie ein Domainadministrator sein, um Fehler beim Zugriff für einzelne Domainmitglieder zu beheben.

Wenn Sie diese Berechtigungen nicht haben, erhalten Rollenbindungen und Ablehnungsregeln, die Gruppen oder Domains enthalten, ein Zugriffsergebnis von Unknown, es sei denn, die Rollenbindung oder Ablehnungsregel enthält auch explizit das Hauptkonto.

Auf die Fehlerbehebung zugreifen

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

  • Hauptkonto: Die zu überprüfende E-Mail-Adresse. Die E-Mail-Adresse muss sich auf einen Nutzer oder ein Dienstkonto beziehen. Andere Hauptkontentypen werden nicht unterstützt.
  • Ressource: Den vollständigen Namen der Ressource. Wenn Sie beispielsweise das Projekt my-project prüfen möchten, geben Sie //cloudresourcemanager.googleapis.com/projects/my-project ein. Weitere Ressourcentypen finden Sie in den Beispielen für vollständige Ressourcennamen.
  • Berechtigung: Die zu prüfende Berechtigung. Wenn Sie die Google Cloud Console verwenden, wird während der Eingabe eine Liste mit Vorschlägen angezeigt. 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 Ressourcennamen und die Berechtigung ein, die geprüft werden soll. Wenn Sie den vollständigen Ressourcennamen oder Berechtigungsnamen nicht kennen, beginnen Sie mit der Eingabe, um die Optionen für die automatische Vervollständigung aufzurufen.

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

  5. Klicken Sie auf Zugriff überprüfen.

gcloud

Verwenden Sie den Befehl gcloud policy-troubleshoot iam, um zu ermitteln, 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-troubleshooter iam aus:

Linux, macOS oder Cloud Shell

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

Windows (PowerShell)

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

Windows (cmd.exe)

gcloud policy-troubleshoot 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": "[email protected]"
  },
  "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:[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"
          },
          {
            "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/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:[email protected]": {
                "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:[email protected]"
              ],
              "role": "roles/compute.viewer"
            },
            {
              "members": [
                "user:[email protected]"
              ],
              "role": "roles/owner"
            },
            {
              "members": [
                "user:[email protected]"
              ],
              "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/[email protected]"
                    ],
                    "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/[email protected]": {
                    "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

Mit der Methode iam.troubleshoot der Policy Troubleshooting API können Sie herausfinden, 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 http://policytroubleshooter.googleapis.com/v3beta/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": "[email protected]",
    "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:[email protected]": {
                "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:[email protected]": {
                "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:[email protected]": {
                "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:[email protected]"
              ]
            },
            {
              "role": "roles/owner",
              "members": [
                "user:user2@example.com"
              ]
            },
            {
              "role": "roles/resourcemanager.organizationAdmin",
              "members": [
                "user:[email protected]"
              ]
            },
          ]
        }
      }
    ],
    "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/[email protected]"
                    ],
                    "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/[email protected]": {
                    "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 verstehen

Console

Die Ergebnisseite enthält die folgenden Informationen:

Details zur Bewertung

Der Bereich Bewertungsdetails enthält eine Zusammenfassung des Zugriffs, für den Sie eine Fehlerbehebung ausführen, einschließlich des angegebenen Hauptkontos, Ressource und Berechtigung. Wenn Sie Fehler für mehrere Ressourcen-Berechtigungspaare 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 Bereich Richtliniendetails enthält die folgenden Abschnitte:

Zugriffsstatus

Der Abschnitt Zugriffsstatus enthält eine kurze Zusammenfassung des Zugriffs des Hauptkontos auf Grundlage der relevanten Richtlinien zum Zulassen und Ablehnen von IAM. Diese Zusammenfassung enthält die Auswirkungen von Ablehnungsrichtlinien, die Auswirkungen von Richtlinien zum Zulassen und das Ergebnis des endgültigen Zugriffs auf der Grundlage der entsprechenden Ablehnungs- und Zulassungsrichtlinien.

Richtlinie ablehnen

Im Bereich Richtlinie ablehnen können Sie alle relevanten Ablehnungsrichtlinien ansehen, Ablehnungsregeln ermitteln, die den Zugriff auf das Hauptkonto verweigern, und verstehen, warum eine Ablehnungsregel das Hauptkonto verweigert oder nicht verweigert.

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 Zugriffsbewertung. Diese Bewertung gilt nur für die Ablehnungsrichtlinie, keinen Zugriff von übernommenen Richtlinien. Wenn Sie nicht berechtigt sind, die Ablehnungsrichtlinie einer Ressource anzusehen, enthält die Ressourcenliste diese Ressource oder ihre Ablehnungsrichtlinien nicht.

Klicken Sie auf die entsprechende Richtlinie, um die entsprechenden Ablehnungsregeln aufzurufen. 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 mit allen Ablehnungsregeln, die das abgefragte Hauptkonto oder die Berechtigung für die ausgewählte Ressource oder Ablehnungsrichtlinie enthält.

Die Spalte Zugriff gibt an, ob die Ablehnungsregel das Hauptkonto verweigert. Wenn Sie weitere Informationen zur Ablehnungsregel aufrufen möchten, klicken Sie in der Zeile dieser Regel auf Ablehnungsregel ansehen.

Zulassungsrichtlinie

Im Bereich Richtlinie zulassen können Sie alle relevanten Zulassungsrichtlinien durchgehen, Rollenbindungen ermitteln, die Zugriff auf das Hauptkonto gewähren, und herausfinden, warum eine Rollenbindung das Hauptkonto gewährt oder nicht berechtigt.

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, nicht für den Zugriff aus übernommenen Richtlinien. Wenn Sie nicht berechtigt sind, die Zulassungsrichtlinie einer Ressource anzusehen, enthält die Ressourcenliste diese Ressource nicht.

Klicken Sie auf die Ressource, um die relevanten Rollenbindungen in der Zulassungsrichtlinie einer Ressource anzusehen und zu sehen, wie sie dem Hauptkonto die Berechtigung erteilen oder nicht erteilen. Die Bindungen der Zulassungsrichtlinie werden im Bereich Rollenbindungen angezeigt.

Der Bereich Rollenbindungen enthält eine Tabelle mit Rollenbindungen für die 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. Entfernen Sie das Häkchen bei Nur relevante Bindungen anzeigen, um sich alle Rollenbindungen anzusehen.

Die Spalte Zugriff gibt an, ob die Rollenbindung das Hauptkonto die Berechtigung erteilt. Klicken Sie in der Zeile dieser Bindung auf Bindungsdetails ansehen, um weitere Informationen zur Rollenbindung aufzurufen.

gcloud

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

  • accessTuple: Eine Beschreibung des Zugriffstuples in der Anfrage, einschließlich aller Bedingungskontext, den Sie angegeben haben. 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 ihren Rollenbindungen.

    In der Antwort werden für jede Zulassungsrichtlinie alle Rollenbindungen in der Richtlinie aufgelistet und anhand der folgenden Kriterien ausgewertet:

    • 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 erfüllt sind, falls vorhanden.

    Dann gibt die Antwort den vollständigen JSON-Text der Zulassungsrichtlinie aus.

  • denyPolicyExplanation: Eine Zusammenfassung, ob die entsprechenden Ablehnungsrichtlinien das Hauptkonto ablehnen, gefolgt von einer Liste von Ressourcen mit Ablehnungsrichtlinien. In der Antwort werden für jede Ressource alle Ablehnungsrichtlinien aufgelistet, die an die Ressource angehängt 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 wird.
    • Gibt an, ob die Bedingungen in der Ablehnungsregel, falls vorhanden, erfüllt sind.
  • overallAccessState: Gibt an, ob das Hauptkonto mit der angegebenen Berechtigung auf die angegebene Ressource zugreifen kann. Dies hängt von den relevanten Zulassungs- und Ablehnungsrichtlinien ab.

    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 haben:

    • HEURISTIC_RELEVANCE_HIGH: Gibt an, dass das Objekt starke Auswirkungen auf das Ergebnis hat. Mit anderen Worten: Wenn Sie das Objekt entfernen, ändert sich wahrscheinlich der Gesamtzugriffsstatus. Beispielsweise hat eine Rollenbindung, die dem Hauptkonto die angegebene Berechtigung gewährt, diesen Relevanzwert.

    • HEURISTIC_RELEVANCE_NORMAL: gibt an, dass sich das Objekt nur eingeschränkt auf das Ergebnis auswirkt. Mit anderen Worten: Wird das Objekt entfernt, ist es unwahrscheinlich, dass sich der Gesamtzugriffsstatus ändert. Beispiel: Eine Ablehnungsregel ohne Berechtigung oder Hauptkonto hätte 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 Ablehnungsrichtlinie.

  • overallAccessState: Gibt an, ob das Hauptkonto mit der angegebenen Berechtigung auf die angegebene Ressource zugreifen kann. Dies hängt von den relevanten Zulassungs- und Ablehnungsrichtlinien ab.

    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 Zugriffstuples in der Anfrage, einschließlich aller Bedingungskontext, den Sie angegeben haben. 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 ihren Rollenbindungen.

    In der Antwort werden für jede Zulassungsrichtlinie alle Rollenbindungen in der Richtlinie aufgelistet und anhand der folgenden Kriterien ausgewertet:

    • 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 erfüllt sind, falls vorhanden.

    Dann gibt die Antwort den vollständigen JSON-Text der Zulassungsrichtlinie aus.

  • denyPolicyExplanation: Eine Zusammenfassung, ob die entsprechenden Ablehnungsrichtlinien das Hauptkonto ablehnen, gefolgt von einer Liste von Ressourcen mit Ablehnungsrichtlinien. In der Antwort werden für jede Ressource alle Ablehnungsrichtlinien aufgelistet, die an die Ressource angehängt 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 wird.
    • 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 haben:

    • HEURISTIC_RELEVANCE_HIGH: Gibt an, dass das Objekt starke Auswirkungen auf das Ergebnis hat. Mit anderen Worten: Wenn Sie das Objekt entfernen, ändert sich wahrscheinlich der Gesamtzugriffsstatus. Beispielsweise hat eine Rollenbindung, die dem Hauptkonto die angegebene Berechtigung gewährt, diesen Relevanzwert.

    • HEURISTIC_RELEVANCE_NORMAL: gibt an, dass sich das Objekt nur eingeschränkt auf das Ergebnis auswirkt. Mit anderen Worten: Wird das Objekt entfernt, ist es unwahrscheinlich, dass sich der Gesamtzugriffsstatus ändert. Beispiel: Eine Ablehnungsregel ohne Berechtigung oder Hauptkonto hätte diesen Relevanzwert.

Fehlerbehebung bei bedingten Rollenbindungen

Die Richtlinien-Fehlerbehebung hilft automatisch bei der Behebung von bedingten Rollenbindungen und Ablehnungsregeln, die auf Tags basieren. Zur Fehlerbehebung für andere Arten von bedingten Rollenbindungen oder Regeln für bedingte Ablehnungen benötigt die Richtlinien-Fehlerbehebung jedoch zusätzlichen Kontext zur Anfrage. Wenn Sie beispielsweise Bedingungen anhand von Datums- und Uhrzeitattributen beheben möchten, benötigt die Richtlinien-Fehlerbehebung die Zeit der Anfrage.

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

In der Google Cloud Console können Sie diesen zusätzlichen Kontext bereitstellen, indem Sie die Fehlerbehebung direkt über ein Audit-Log für Administratoraktivitäten oder ein Audit-Log zum Datenzugriff durchführen. Jeder Audit-Logeintrag entspricht einer Anfrage an eine Google Cloud API oder einer Aktion, die Google Cloud in Ihrem Namen ausführt. Bei der Fehlerbehebung aus einem Audit-Log erhält die Richtlinien-Fehlerbehebung automatisch zusätzliche Informationen zu der Anfrage, z. B. das Datum und die Uhrzeit. So kann die Richtlinien-Fehlerbehebung bedingte Rollenbindungen und Ablehnungsregeln analysieren.

Console

So beheben Sie Probleme mit 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 Fehler beim Zugriff zu beheben, und zeigt Ihnen dann die Ergebnisse an. Der zusätzliche Kontext ist in den Bewertungsdetails unter Bedingungskontext aufgeführt. Klicken Sie auf Bedingungskontext ansehen, um die Kontextdetails aufzurufen. Weitere Informationen zu den Ergebnissen der Richtlinien-Fehlerbehebung finden Sie unter Fehlerbehebung bei Problemen mit dem Zugriff.

  6. Optional: Wenn Sie eine weitere Anfrage mit bedingten Rollenbindungen und Ablehnungsregeln beheben möchten, kehren Sie zur Seite „Log-Explorer“ zurück und wiederholen Sie die vorherigen Schritte.

gcloud

Beheben Sie Probleme mit bedingten Rollenbindungen und Ablehnungsregeln mit dem Befehl gcloud policy-troubleshoot iam.

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 ausführen möchten.
  • DESTINATION_IP: Optional. Die Ziel-IP-Adresse der Anfrage, die zum Prüfen bedingter Rollenbindungen verwendet werden soll. Beispiel: 198.1.1.1.
  • DESTINATION_PORT: Optional. Der Zielport des Anfrages, der beim Prüfen bedingter Rollenbindungen verwendet werden soll. Beispiel: „8080“.
  • REQUEST_TIME: Optional. Der Zeitstempel der Anfrage, der beim Prüfen der bedingten Rollenbindungen verwendet werden soll. Verwende einen Zeitstempel im RFC 3339-Format, z. B. 2099-02-01T00:00:00Z.
  • RESOURCE_NAME: Optional. Der Wert des Ressourcennamens, der beim Prüfen bedingter Rollenbindungen verwendet werden soll. Eine Liste der akzeptierten Ressourcennamenformate finden Sie unter Format der Ressourcennamen.
  • RESOURCE_SERVICE: Optional. Der Wert des Ressourcendienstes, der beim Prüfen der bedingten Rollenbindungen verwendet werden soll. Eine Liste der akzeptierten Dienstnamen finden Sie unter Ressourcendienstwerte.
  • RESOURCE_TYPE: Optional. Eine Liste der akzeptierten Ressourcentypen finden Sie unter Ressourcentypwerte.

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

Linux, macOS oder Cloud Shell

gcloud policy-troubleshoot 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-troubleshoot 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-troubleshoot 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 auf der Grundlage des von Ihnen angegebenen Bedingungskontexts als wahr oder falsch ausgewertet wird.

Im folgenden Beispiel wird eine Rollenbindung mit einer Bedingung ausgewertet, 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:[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

Beheben Sie Probleme mit bedingten Rollenbindungen und Ablehnungsregeln mit der Methode iam.troubleshoot der Policy Fehlerbehebung 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 ausführen möchten.
  • DESTINATION_IP: Optional. Die Ziel-IP-Adresse der Anfrage, die zum Prüfen bedingter Rollenbindungen verwendet werden soll. Beispiel: 198.1.1.1.
  • DESTINATION_PORT: Optional. Der Zielport des Anfrages, der beim Prüfen bedingter Rollenbindungen verwendet werden soll. Beispiel: „8080“.
  • REQUEST_TIME: Optional. Der Zeitstempel der Anfrage, der beim Prüfen der bedingten Rollenbindungen verwendet werden soll. Verwende einen Zeitstempel im RFC 3339-Format, z. B. 2099-02-01T00:00:00Z.
  • RESOURCE_NAME: Optional. Der Wert des Ressourcennamens, der beim Prüfen bedingter Rollenbindungen verwendet werden soll. Eine Liste der akzeptierten Ressourcennamenformate finden Sie unter Format der Ressourcennamen.
  • RESOURCE_SERVICE: Optional. Der Wert des Ressourcendienstes, der beim Prüfen der bedingten Rollenbindungen verwendet werden soll. Eine Liste der akzeptierten Dienstnamen finden Sie unter Ressourcendienstwerte.
  • RESOURCE_TYPE: Optional. Eine Liste der akzeptierten Ressourcentypen finden Sie unter Ressourcentypwerte.

HTTP-Methode und URL:

POST http://policytroubleshooter.googleapis.com/v3beta/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 auf der Grundlage des von Ihnen angegebenen Bedingungskontexts als wahr oder falsch ausgewertet wird.

Im folgenden Beispiel wird eine Rollenbindung mit einer Bedingung ausgewertet, 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:[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