Fehlerbehebung bei Richtlinien

Auf dieser Seite wird beschrieben, wie Sie Probleme mit IAM-Richtlinien (Identity and Access Management) zum Zulassen, Ablehnen und mit Principal Access Boundary-Richtlinien beheben.

Policy Troubleshooter verwenden

Wenn Sie Probleme mit dem Zugriff für einen bestimmten Prinzipal beheben müssen, verwenden Sie Policy Troubleshooter für IAM.

Policy Troubleshooter hilft Ihnen zu verstehen, ob ein Prinzipal auf eine Ressource zugreifen kann. Bei einem Prinzipal, einer Ressource und einer Berechtigung untersucht Policy Troubleshooter die Zulassungsrichtlinien, Ablehnungsrichtlinien und Principal Access Boundary-Richtlinien (PAB), die sich auf den Zugriff des Prinzipals auswirken. Anschließend wird anhand dieser Richtlinien ermittelt, ob das Hauptkonto die angegebene Berechtigung verwenden kann, um auf die Ressource zuzugreifen. Außerdem werden die relevanten Richtlinien aufgelistet und erläutert, wie sie sich auf den Zugriff des Hauptkontos auswirken.

Informationen zur Verwendung des Policy Troubleshooter zur Fehlerbehebung bei Zulassungsrichtlinien, Ablehnungsrichtlinien und Principal Access Boundary-Richtlinien finden Sie unter Fehlerbehebung bei IAM-Berechtigungen.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Sicherheitsprüfer (roles/iam.securityReviewer) für die Organisation zuzuweisen, die die Ressource enthält, um die Berechtigungen zu erhalten, die Sie zum Aufrufen aller Zulassungs- und Ablehnungsrichtlinien benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

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

Alle Zulassungs- und Ablehnungsrichtlinien ansehen, die für eine Ressource gelten

In Google Cloudwirken sich die folgenden Zulassungs- und Ablehnungsrichtlinien auf den Zugriff auf eine Ressource aus:

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

Die Richtlinien zum Zulassen oder Ablehnen von übergeordneten Projekten, Ordnern und Organisationen wirken sich aufgrund der Richtlinienübernahme auf den Zugriff auf eine Ressource aus. 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.

Die Vereinigung aller dieser Richtlinien wird als die geltende Richtlinie oder effektive Richtlinie für die Ressource bezeichnet.

In Google Cloudkönnen Sie mit dem gcloud beta projects get-ancestors-iam-policy Befehl mit dem --include-deny Flag eine Liste aller Zulassungs- und Ablehnungsrichtlinien abrufen, die sich auf den Zugriff auf ein Projekt auswirken. Zusammen bilden diese Richtlinien die geltende Richtlinie für das Projekt. Sie können jede Richtlinie untersuchen, um zu sehen, wie sie sich auf den Zugriff des Hauptkontos auswirkt.

gcloud

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

  • PROJECT_ID: Ihre Google Cloud Projekt ID. Projekt-IDs sind alphanumerische Strings, wie my-project.

Führen Sie den gcloud beta projects get-ancestors-iam-policy Befehl aus:

Linux, macOS oder Cloud Shell

gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json

Windows (PowerShell)

gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json

Windows (cmd.exe)

gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json

Die Antwort enthält die Richtlinien zum Zulassen oder Ablehnen des Projekts, alle Ordner, die Ancestors des Projekts sind und die Organisation. Das folgende Beispiel zeigt Zulassungsrichtlinien für die Organisation 1234567890123 und das Projekt my-project sowie eine Ablehnungs richtlinie für das Projekt my-project:

[
  {
    "id": "1234567890123",
    "policy": {
      "bindings": [
        {
          "members": [
            "group:cloud-admins@example.com"
          ],
          "role": "roles/iam.denyAdmin"
        },
        {
          "members": [
            "user:raha@example.com"
          ],
          "role": "roles/iam.serviceAccountAdmin"
        }
      ],
      "etag": "BwXW6Eab7TI=",
      "version": 1
    },
    "type": "organization"
  },
  {
    "id": "my-project",
    "policy": {
      "bindings": [
        {
          "members": [
            "group:cloud-admins@example.com"
          ],
          "role": "roles/owner"
        }
      ],
      "etag": "BwXXjOM7L6M=",
      "type": "project"
    }
  },
  {
    "id": "my-project",
    "policy": {
      "createTime": "2022-02-14T21:46:35.865279Z",
      "displayName": "My deny policy",
      "etag": "MTgyMzg2ODcwNTEyMjMxMTM3Mjg=",
      "kind": "DenyPolicy",
      "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F123456789012/denypolicies/my-deny-policy",
      "rules": [
        {
          "denyRule": {
            "deniedPermissions": [
              "iam.googleapis.com/serviceAccounts.create"
            ],
            "deniedPrincipals": [
              "user:raha@example.com"
            ]
          },
          "description": "Prevent service account creation"
        }
      ],
      "uid": "c83e3dc3-d8a6-6f51-4018-814e9f200b05",
      "updateTime": "2022-02-14T21:46:35.865279Z"
    },
    "type": "project"
  }
]

In diesem Beispiel hat Raha die Rolle „Dienstkonto-Administrator“ (roles/iam.serviceAccountAdmin) für die Organisation, aber das Projekt hat eine Ablehnungsrichtlinie, die Raha daran hindert, die Berechtigung iam.googleapis.com/serviceAccounts.create zu verwenden. Wenn Raha versucht, ein Dienstkonto im Projekt my-project zu erstellen, wird die Anfrage daher abgelehnt.

In einigen Fällen müssen Sie möglicherweise nur die geltende Zulassungsrichtlinie für eine Ressource aufrufen, z. B. wenn Ihre Organisation keine Ablehnungsrichtlinien verwendet. In diesen Fällen können Sie die folgenden Methoden mit den folgenden Methoden aufrufen, um die geltende Zulassungsrichtlinie aufzurufen:

  • Rufen Sie die IAM-Zulassungsrichtlinie der Ressource in der Google Cloud Konsole auf. In der Google Cloud Konsole wird automatisch die geltende Richtlinie jeder Ressource angezeigt.

    Informationen zum Aufrufen der IAM-Zulassungsrichtlinie einer Ressource in der Google Cloud Konsole finden Sie unter Aktuellen Zugriff ansehen.

  • Verwenden Sie die Cloud Asset API, um die geltende Zulassungsrichtlinie der Ressource abzurufen. Weitere Informationen zu Geltende IAM-Richtlinien aufrufen.

Wenn Sie eine bestimmte Rollenbindung in einer „allow”-Richtlinie suchen müssen, können Sie in der „allow”-Richtlinie suchen.

Mit Cloud Asset Inventory können Sie in Zulassungsrichtlinien nach Rollenbindungen suchen, die mit den angegebenen Parametern übereinstimmen. Sie können eine Vielzahl von Suchparametern verwenden, darunter:

  • Ressourcentyp
  • Hauptkonto-Typ
  • Rolle
  • Projekt
  • Ordner
  • Organisation

Weitere Informationen finden Sie unter IAM-Zulassungsrichtlinien suchen.