Geltende IAM-Richtlinien aufrufen

In diesem Thema wird gezeigt, wie Sie die geltenden IAM-Richtlinien (Identity and Access Management) für eine bestimmte Ressource aufrufen.

In IAM beschreibt die geltende Richtlinie, wie alle übergeordneten und Ancestor-Richtlinien in der Ressourcenhierarchie für eine Ressource übernommen werden.

Bereich und Berechtigungen

Wenn Sie gültige IAM-Richtlinien anfordern, müssen Sie einen Bereich angeben. Das kann eine Organisation, ein Ordner oder ein Projekt sein. Alle IAM-Richtlinien, die für oder unter diesem Bereich festgelegt sind, werden zurückgegeben. Der Umfang der Anfrage muss nicht dem des aktivierten Projekts für die Cloud Asset API entsprechen. Darüber hinaus erfordern das aktivierte Projekt und der Anfragebereich unterschiedliche Berechtigungen.

Unterstützte Richtlinientypen

Geltende IAM-Richtlinien unterstützen nur IAM-Zulassungsrichtlinien. Die folgenden Formen der Zugriffssteuerung werden nicht unterstützt:

Hinweise

Führen Sie zuerst die folgenden Schritte aus.

  1. Aktivieren Sie die Cloud Asset Inventory API für Ihr Projekt.

    Cloud Asset Inventory API aktivieren

    Dieses Projekt muss nicht mit dem Bereich Ihrer Anfragen übereinstimmen. Weitere Informationen finden Sie unter Projekt beim Aktivieren eines Dienstes festlegen.

  2. Installieren Sie das Google Cloud SDK.

  3. Optional: Wenn Sie die Cloud Asset Inventory API direkt aufrufen möchten, bestätigen Sie, dass Sie Zugriff auf den Befehl curl haben.

  4. Legen Sie die Berechtigungen fest.

    1. Konfigurieren Sie Berechtigungen für die Cloud Asset API.

    2. Aktivieren Sie die folgenden Berechtigungen für den Bereich Ihrer Anfrage.

      • cloudasset.assets.analyzeIamPolicy

      • cloudasset.assets.searchAllResources

      • cloudasset.assets.searchAllIamPolicies

      Diese Berechtigungen sind in den folgenden vordefinierten Rollen enthalten:

      • Cloud-Asset-Inhaber (roles/cloudasset.owner)

      • Cloud-Asset-Betrachter (roles/cloudasset.viewer)

      Weitere Informationen zu Berechtigungen und Rollen für die Cloud Asset API finden Sie unter Zugriffssteuerung.

Gültige IAM-Richtlinien abrufen

gcloud

Zum Abrufen der geltenden IAM-Richtlinien für eine Ressource können Sie BatchGetEffectiveIamPolicies mit dem Befehl gcloud asset get-effective-iam-policy aufrufen. Sie müssen mindestens die Google Cloud CLI-Version 399.0.0 ausführen.

gcloud asset get-effective-iam-policy \
    --scope=SCOPE \
    --names=ASSET_NAME_1,ASSET_NAME_2,...

Geben Sie folgende Werte an:

  • SCOPE: Ein Bereich kann ein Projekt, ein Ordner oder eine Organisation sein.

    Zulässige Werte:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud-Projektnummer ermitteln

      Console

      Führen Sie die folgenden Schritte aus, um eine Google Cloud-Projektnummer zu ermitteln:

      1. Rufen Sie in der Google Cloud Console die Seite Dashboard auf.

        Zu Google Dashboard

      2. Klicken Sie in der Menüleiste auf das Wechsler-Feld.
      3. Wählen Sie Ihre Organisation im Feld Auswählen aus aus und suchen Sie dann nach dem Namen Ihres Projekts.
      4. Klicken Sie auf den Projektnamen, um zu diesem Projekt zu wechseln. Die Projektnummer wird auf der Karte Projektinformationen angezeigt.

      gcloud-CLI

      Mit dem folgenden Befehl können Sie eine Google Cloud-Projektnummer abrufen:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud-Ordner-ID ermitteln

      Console

      Führen Sie die folgenden Schritte aus, um eine Google Cloud-Ordner-ID zu ermitteln:

      1. Öffnen Sie die Google Cloud Console.

        Zur Google Cloud Console

      2. Klicken Sie in der Menüleiste auf das Wechsler-Feld.
      3. Klicken Sie auf das Feld Auswählen aus und wählen Sie Ihre Organisation aus.
      4. Suchen Sie nach dem Namen Ihres Ordners. Die Ordner-ID wird neben dem Ordnernamen angezeigt.

      gcloud-CLI

      Mit dem folgenden Befehl können Sie eine Google Cloud-Ordner-ID auf Organisationsebene abrufen:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      Dabei kann TOP_LEVEL_FOLDER_NAME eine vollständige oder teilweise Stringübereinstimmung sein. Entfernen Sie die Option --format, um weitere Informationen zu den gefundenen Ordnern zu sehen.

      Um die ID eines Ordners in einem anderen Ordner abzurufen, listen Sie die Unterordner auf:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Google Cloud-Organisations-ID ermitteln

      Console

      Führen Sie die folgenden Schritte aus, um eine Google Cloud-Organisations-ID zu ermitteln:

      1. Öffnen Sie die Google Cloud Console.

        Zur Google Cloud Console

      2. Klicken Sie in der Menüleiste auf das Wechsler-Feld.
      3. Klicken Sie auf das Feld Auswählen aus und wählen Sie Ihre Organisation aus.
      4. Klicken Sie auf den Tab Alle. Die Organisations-ID wird neben dem Namen der Organisation angezeigt.

      gcloud-CLI

      Mit dem folgenden Befehl können Sie eine Google Cloud-Organisations-ID abrufen:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • ASSET_NAME: Eine durch Kommas getrennte Liste mit vollständigen Asset-Namen, für die die geltenden IAM-Richtlinien abgerufen werden.

    Du kannst Richtlinien für maximal 20 Assets in einem Batch abrufen.

Die folgenden Codebeispiele sind Beispiele für gcloud-Befehlszeilenbefehle:

  • Für die Organisations-ID 123456:

    gcloud asset get-effective-iam-policy \
        --scope=organizations/123456 \
        --names=//cloudresourcemanager.googleapis.com/organizations/123456
    
  • Für die Ordner-ID 1234567:

    gcloud asset get-effective-iam-policy \
        --scope=folders/1234567 \
        --names=//cloudresourcemanager.googleapis.com/folders/1234567
    
  • Für zwei Cloud SQL-Instanzressourcen in einem Projekt namens my-project:

    gcloud asset get-effective-iam-policy \
        --scope=projects/my-project \
        --names=//cloudsql.googleapis.com/projects/my-project/instances/instance1,//cloudsql.googleapis.com/projects/my-project/instances/instance2
    

REST

Verwenden Sie den folgenden curl-Befehl, um die geltenden IAM-Richtlinien für eine Ressource mithilfe der Cloud Asset Inventory API abzurufen:

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "names": [
            "ASSET_NAME_1",
            "ASSET_NAME_2",
            "..."
          ]
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/effectiveIamPolicies:batchGet

Geben Sie folgende Werte an:

  • ASSET_NAME: Eine durch Kommas getrennte Liste mit vollständigen Asset-Namen, für die die geltenden IAM-Richtlinien abgerufen werden.

    Du kannst Richtlinien für maximal 20 Assets in einem Batch abrufen.

  • SCOPE: Ein Bereich kann ein Projekt, ein Ordner oder eine Organisation sein.

    Zulässige Werte:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud-Projektnummer ermitteln

      Console

      Führen Sie die folgenden Schritte aus, um eine Google Cloud-Projektnummer zu ermitteln:

      1. Rufen Sie in der Google Cloud Console die Seite Dashboard auf.

        Zu Google Dashboard

      2. Klicken Sie in der Menüleiste auf das Wechsler-Feld.
      3. Wählen Sie Ihre Organisation im Feld Auswählen aus aus und suchen Sie dann nach dem Namen Ihres Projekts.
      4. Klicken Sie auf den Projektnamen, um zu diesem Projekt zu wechseln. Die Projektnummer wird auf der Karte Projektinformationen angezeigt.

      gcloud-CLI

      Mit dem folgenden Befehl können Sie eine Google Cloud-Projektnummer abrufen:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud-Ordner-ID ermitteln

      Console

      Führen Sie die folgenden Schritte aus, um eine Google Cloud-Ordner-ID zu ermitteln:

      1. Öffnen Sie die Google Cloud Console.

        Zur Google Cloud Console

      2. Klicken Sie in der Menüleiste auf das Wechsler-Feld.
      3. Klicken Sie auf das Feld Auswählen aus und wählen Sie Ihre Organisation aus.
      4. Suchen Sie nach dem Namen Ihres Ordners. Die Ordner-ID wird neben dem Ordnernamen angezeigt.

      gcloud-CLI

      Mit dem folgenden Befehl können Sie eine Google Cloud-Ordner-ID auf Organisationsebene abrufen:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      Dabei kann TOP_LEVEL_FOLDER_NAME eine vollständige oder teilweise Stringübereinstimmung sein. Entfernen Sie die Option --format, um weitere Informationen zu den gefundenen Ordnern zu sehen.

      Um die ID eines Ordners in einem anderen Ordner abzurufen, listen Sie die Unterordner auf:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Google Cloud-Organisations-ID ermitteln

      Console

      Führen Sie die folgenden Schritte aus, um eine Google Cloud-Organisations-ID zu ermitteln:

      1. Öffnen Sie die Google Cloud Console.

        Zur Google Cloud Console

      2. Klicken Sie in der Menüleiste auf das Wechsler-Feld.
      3. Klicken Sie auf das Feld Auswählen aus und wählen Sie Ihre Organisation aus.
      4. Klicken Sie auf den Tab Alle. Die Organisations-ID wird neben dem Namen der Organisation angezeigt.

      gcloud-CLI

      Mit dem folgenden Befehl können Sie eine Google Cloud-Organisations-ID abrufen:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"