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.
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.
Installieren Sie das Google Cloud SDK.
Optional: Wenn Sie die Cloud Asset Inventory API direkt aufrufen möchten, bestätigen Sie, dass Sie Zugriff auf den Befehl
curl
haben.Legen Sie die Berechtigungen fest.
Konfigurieren Sie Berechtigungen für die Cloud Asset API.
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:
-
Rufen Sie in der Google Cloud Console die Seite Dashboard auf.
- Klicken Sie in der Menüleiste auf das Wechsler-Feld.
- Wählen Sie Ihre Organisation im Feld Auswählen aus aus und suchen Sie dann nach dem Namen Ihres Projekts.
- 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:
-
Öffnen Sie die Google Cloud Console.
- Klicken Sie in der Menüleiste auf das Wechsler-Feld.
- Klicken Sie auf das Feld Auswählen aus und wählen Sie Ihre Organisation aus.
- 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:
-
Öffnen Sie die Google Cloud Console.
- Klicken Sie in der Menüleiste auf das Wechsler-Feld.
- Klicken Sie auf das Feld Auswählen aus und wählen Sie Ihre Organisation aus.
- 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:
-
Rufen Sie in der Google Cloud Console die Seite Dashboard auf.
- Klicken Sie in der Menüleiste auf das Wechsler-Feld.
- Wählen Sie Ihre Organisation im Feld Auswählen aus aus und suchen Sie dann nach dem Namen Ihres Projekts.
- 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:
-
Öffnen Sie die Google Cloud Console.
- Klicken Sie in der Menüleiste auf das Wechsler-Feld.
- Klicken Sie auf das Feld Auswählen aus und wählen Sie Ihre Organisation aus.
- 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:
-
Öffnen Sie die Google Cloud Console.
- Klicken Sie in der Menüleiste auf das Wechsler-Feld.
- Klicken Sie auf das Feld Auswählen aus und wählen Sie Ihre Organisation aus.
- 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))"
-