Fehlerbehebung bei Zulassungs- und Ablehnungsrichtlinien

Es gibt mehrere Methoden, mit denen Sie Fehler bei IAM-Richtlinien (Identity and Access Management) beheben können.

Richtlinien-Fehlerbehebung verwenden

Wenn Sie Probleme mit dem Zugriff für ein bestimmtes Hauptkonto beheben müssen, verwenden Sie die Richtlinien-Fehlerbehebung für IAM.

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.

Informationen zur Fehlerbehebung bei IAM-Zulassungs- und -Ablehnungsrichtlinien mit der Richtlinien-Fehlerbehebung finden Sie unter Fehlerbehebung bei Zugriff.

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

In Google Cloud wirken sich die folgenden IAM-Richtlinien 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 entsprechende Richtlinie oder effektive Richtlinie bezeichnet.

In Google Cloud können Sie mit dem Befehl gcloud beta projects get-ancestors-iam-policy mit dem Flag --include-deny eine Liste aller IAM-Richtlinien 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 Befehl gcloud beta projects get-ancestors-iam-policy 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 Ablehnungsrichtlinie 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": [
              "principal://goog/subject/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 der Nutzer raha@example.com die Rolle „Dienstkonto-Administrator“ (roles/iam.serviceAccountAdmin) für die Organisation, aber das Projekt hat eine Ablehnungsrichtlinie, die raha@example.com daran hindert, die Berechtigung iam.googleapis.com/serviceAccounts.create zu verwenden. Wenn raha@example.com 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-Richtlinie der Ressource in der Google Cloud Console auf. In der Google Cloud Console wird automatisch die geltende Richtlinie jeder Ressource angezeigt.

    Informationen zum Aufrufen der IAM-Zulassungsrichtlinie einer Ressource in der Google Cloud Console 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.