Zugriff auf die Fehlerbehebung

Mit der Richtlinien-Fehlerbehebung lässt sich einfacher feststellen, 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 untersucht die Richtlinien-Fehlerbehebung alle IAM-Richtlinien (Identity and Access Management), die auf die Ressource angewendet werden. Anschließend wird angezeigt, ob die Rollen des Hauptkontos die Berechtigung für diese Ressource enthalten und, wenn ja, welche Richtlinien das Hauptkonto an diese Rollen binden.

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

Erforderliche Berechtigungen

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

Zur vollständigen Behebung von Zugriffsproblemen eines Hauptkontos benötigen Sie eine Rolle mit den folgenden Berechtigungen:

  • resourcemanager.projects.getIamPolicy
  • resourcemanager.folders.getIamPolicy
  • resourcemanager.organizations.getIamPolicy
  • iam.roles.get
  • iam.roles.list

Bitten Sie Ihren Administrator, Ihnen die Rolle "Sicherheitsprüfer" (roles/iam.securityReviewer) auf Organisationsebene zu gewähren, um diese Berechtigungen gemäß dem Prinzip der geringsten Berechtigung zu erhalten.

Alternativ kann Ihr Administrator Ihnen eine andere Rolle mit den erforderlichen Berechtigungen zuweisen, z. B. eine benutzerdefinierte Rolle oder eine vordefinierte Rolle mit mehr Berechtigungen.

Zugriff auf die Fehlerbehebung

Für den Zugriff auf die Fehlerbehebung 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 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

Zugriff auf die Fehlerbehebung

So beheben Sie Zugriffsprobleme:

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

    Zur Seite "Richtlinien-Fehlerbehebung"

  2. Geben Sie eine E-Mail-Adresse, einen Ressourcennamen und eine Berechtigung ein, die überprüft werden soll.

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

  4. Klicken Sie auf API-Aufruf überprüfen.

Ergebnisse der Richtlinien-Fehlerbehebung

Die Ergebnisse der Richtlinie zur Fehlerbehebung zeigen Ihnen, ob der Hauptadministrator die angegebene Berechtigung für die angegebene Ressource hat. Außerdem werden die IAM-Richtlinien aufgelistet, die auf die Ressource angewendet werden, sowie die Rollenbindungen in diesen Richtlinien.

Die Ergebnisse werden standardmäßig in der Kompaktansicht angezeigt. Dabei werden nur Rollenbindungen für Rollen angezeigt, die die angegebene Berechtigung enthalten. Wenn Sie mehrere Berechtigungen gleichzeitig beheben möchten, können Sie mit der Drop-down-Liste Anzeigen nach zwischen ihnen wechseln.

Sie können die Kompaktansicht deaktivieren, indem Sie auf den Schalter Kompakte Ansicht klicken. Wenn Sie die Kompaktansicht deaktivieren, werden alle Rollenbindungen in Richtlinien angezeigt, die auf die Ressource angewendet werden.

Die Ergebnisseite enthält die folgenden Informationen:

  • Zusammenfassung des Zugriffs: Eine kurze Zusammenfassung der Zugriffsrechte des Hauptkontos. Mit diesen Informationen können Sie feststellen, ob der Hauptkonto die Berechtigung für die Ressource hat. Im folgenden Beispiel hat my-user@example.com die Berechtigung logging.logs.view für my-project:

  • Relevante Richtlinien und Rollenbindungen: Eine Liste der IAM-Richtlinien, die für die angegebene Ressource gelten, und die Rollenbindungen in jeder Richtlinie. Neben jeder Rollenbindung wird ein Symbol angezeigt, das angibt, ob die Rollenbindung die angegebene Berechtigung für das Hauptkonto gewährt. Klicken Sie auf die Rollenbindung, um den Rohtext aufzurufen.

    Im folgenden Beispiel gewährt die Rollenbindung "Loganzeige" die Berechtigung:

  • Rohtext von relevanten Rollenbindungen: Der Rohtext jeder Rollenbindung in der Liste der relevanten Rollenbindungen. Weitere Informationen zur Struktur von Rollenbindungen finden Sie unter Informationen zu Richtlinien.

    In jeder Rollenbindung werden Zeilen folgendermaßen hervorgehoben:

    • Grün: Zeilen werden grün hervorgehoben, wenn sie eine Rolle mit der angegebenen Berechtigung enthalten und auf das angegebene Hauptkonto oder eine Gruppe verweisen, die das angegebene Hauptkonto enthält.
    • Rot: Zeilen werden rot hervorgehoben, wenn sie eine andere Rolle enthalten und auf ein anderes Hauptkonto oder auf eine Gruppe verweisen, die nicht das angegebene Hauptkonto enthält.
    • Gelb: Die Zeilen werden gelb hervorgehoben, wenn sie eine Rolle enthalten, deren Details Sie nicht ansehen dürfen, oder eine Gruppe, deren Mitgliedschaft Sie nicht ansehen dürfen.

gcloud

Prüfen Sie zuerst, dass Ihre Umgebung für die Richtlinien-Fehlerbehebung eingerichtet ist.

Aktivieren Sie die Policy Troubleshooter API:

gcloud services enable policytroubleshooter.googleapis.com --project=project-id

Legen Sie dann Ihr Projekt fest:

gcloud config set project project-id

Nach Abschluss der Einrichtung können Sie mithilfe der Richtlinien-Fehlerbehebung feststellen, ob ein Nutzer eine Berechtigung für eine Ressource hat. Führen Sie folgenden Befehl aus:

gcloud policy-troubleshoot iam resource --principal-email=email \
    --permission=permission

Mit dem folgenden Befehl wird beispielsweise geprüft, ob foo@example.com die Berechtigung resourcemanager.projects.getIamPolicy für das Projekt my- project hat.

gcloud policy-troubleshoot iam //cloudresourcemanager.googleapis.com/projects/my-project \
    --permission=resourcemanager.projects.getIamPolicy --principal-email=foo@example.com

Die Ausgabe im YAML-Format gibt zusammen mit einer Begründung an, ob der Nutzer die Berechtigung hat. Die Ausgabe sollte ungefähr so aussehen:

access: GRANTED
explainedPolicies:
- access: GRANTED
  bindingExplanations:
  - access: NOT_GRANTED
    memberships:
      serviceAccount:service-123@compute-system.iam.gserviceaccount.com: MEMBERSHIP_NOT_INCLUDED
    role: roles/compute.serviceAgent
    rolePermission: ROLE_PERMISSION_NOT_INCLUDED
  - access: GRANTED
    memberships:
      serviceAccount:service@my-project.iam.gserviceaccount.com: MEMBERSHIP_NOT_INCLUDED
      user:foo@example.com: MEMBERSHIP_INCLUDED
    role: roles/owner
    rolePermission: ROLE_PERMISSION_INCLUDED
  fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project
  policy:
    bindings:
    - members:
      - serviceAccount:service-123@compute-system.iam.gserviceaccount.com
      role: roles/compute.serviceAgent
    - members:
      - serviceAccount:foo@my-project.iam.gserviceaccount.com
      - user:foo@example.com
      role: roles/owner
    etag: BwWAOWEaIEg=
    version: 1
- access: UNKNOWN_INFO_DENIED
policy: {}

REST API

Die Methode iam.troubleshoot gibt an, warum ein Hauptkonto eine IAM-Berechtigung hat oder warum nicht.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • email: Die E-Mail-Adresse des Hauptkontos, für dessen Berechtigungen Sie eine Fehlerbehebung ausführen möchten.
  • resource: Die Ressource, für die die Berechtigung gewährt wird.
  • permission: Die Berechtigung, für die Sie eine Fehlerbehebung ausführen möchten.

HTTP-Methode und URL:

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

JSON-Text anfordern:

{
  "accessTuple": {
    "principal": "email",
    "fullResourceName": "resource",
    "permission": "permission"
  }
}

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

Sie müssten in etwa folgende JSON-Antwort erhalten:

{
  "access": "GRANTED",
  "explainedPolicies": [
    {
      "access": "GRANTED",
      "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project",
      "policy": {
        "version": 1,
        "etag": "BwWBUZjK9YQ=",
        "bindings": [
          {
            "role": "roles/owner",
            "members": [
              "user:foo@example.com"
            ]
          }
        ]
      },
      "bindingExplanations": [
        {
          "access": "GRANTED",
          "role": "roles/owner",
          "rolePermission": "ROLE_PERMISSION_INCLUDED",
          "rolePermissionRelevance": "HIGH",
          "memberships": {
            "key": "user:foo@example.com",
            "value": {
              "membership": "MEMBERSHIP_INCLUDED",
              "relevance": "HIGH",
            }
          },
        "relevance: HIGH",
        }
      ]
    },
    {
      "access": "UNKNOWN_INFO_DENIED",
      "policy": {}
    }
  ]
}

Fehlerbehebung bei Gruppenmitgliedschaft

Sie können die Fehlerbehebung nur für den Zugriff auf eine Ressource ausführen, die von einer Google-Gruppe bereitgestellt wird, wenn Sie zum Ansehen ihrer Mitglieder berechtigt sind.

Wenn Sie keine Berechtigung haben, wird die Gruppe in der Cloud Console gelb markiert. Wenn Sie nicht wissen, ob die Gruppe das Hauptkonto enthält, wird eine Warnung angezeigt. Wenn Sie das gcloud-Tool oder die REST API verwenden, enthält die Antwort UNKNOWN_INFO_DENIED oder ACCESS_TO_INFO_DENIED.

Fehlerbehebung bei Gruppenmitgliedschaft

Super Admins und Group Admins von Google Workspace haben normalerweise Lesezugriff auf die Gruppenmitgliedschaft. Damit ein Nutzer, der kein Super Admin oder Group Admin ist, Zugriffsfehler beheben kann, erstellen Sie eine benutzerdefinierte Google Workspace-Administratorrolle, die die Berechtigung groups.read enthält (befindet sich unter Berechtigungen für Admin APIs), und weisen diese dem Nutzer zu. Dadurch können sie die Mitgliedschaft aller Gruppen in Ihrer Domain sehen und effektiver Zugriffsprobleme beheben.

Fehlerbehebung bei bedingten Rollenbindungen

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

Zusätzlichen Informationen können Sie direkt im Audit-Log für Administratoraktivitäten oder im Audit-Log zum Datenzugriff beheben. Jeder Audit-Logeintrag entspricht einer Anfrage an eine Google Cloud API oder einer Aktion, die Google Cloud für Sie ausführt. Bei der Fehlerbehebung aus einem Audit-Log erhält die Richtlinien-Fehlerbehebung automatisch zusätzliche Informationen zu der Anfrage (z. B. Datum und Uhrzeit). So kann die Richtlinien-Fehlerbehebung bedingte Bindungen analysieren.

Dieses Feature ist nur in der Cloud Console verfügbar.

So beheben Sie Fehler in bedingten Rollenbindungen:

  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.

    "Policy Troubleshooter" verwendet die Informationen im Logeintrag, um den Zugriff zu beheben, und zeigt dann die Ergebnisse an. Der zusätzliche Kontext ist direkt unter der Zusammenfassung des Zugriffs aufgeführt. Weitere Informationen zu den Ergebnissen der Richtlinien-Fehlerbehebung finden Sie unter Fehlerbehebung beim Zugriff auf dieser Seite.

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

Nächste Schritte