Questo argomento mostra come visualizzare i criteri di Identity and Access Management (IAM) effettivi per una determinata risorsa.
In IAM, un criterio effettivo descrive come vengono ereditati per una risorsa tutti i criteri padre e predecesso nella gerarchia delle risorse.
Ambito e autorizzazioni
Quando richiedi criteri IAM efficaci, devi specificare un ambito. Può essere un'organizzazione, una cartella o un progetto. Vengono restituiti tutti i criteri IAM impostati o in questo ambito. L'ambito della richiesta non deve essere lo stesso del progetto abilitato per l'API Cloud Asset. Inoltre, il progetto abilitato e l'ambito della richiesta richiedono autorizzazioni diverse.
Tipi di criteri supportati
I criteri IAM effettivi supportano solo i criteri di autorizzazione IAM. Non supporta le seguenti forme di controllo dell'accesso:
Prima di iniziare
Prima di iniziare, completa i seguenti passaggi.
Abilitare l'API Cloud Asset Inventory per il tuo progetto.
Abilitare l'API Cloud Asset Inventory
Questo progetto non deve essere uguale all'ambito delle tue richieste. Scopri di più sull'impostazione di un progetto al momento dell'abilitazione di un servizio.
Installa Google Cloud SDK.
(Facoltativo) Per chiamare direttamente l'API Cloud Asset Inventory, conferma di avere accesso al comando
curl
.Imposta le autorizzazioni.
Configura le autorizzazioni per l'API Cloud Asset.
Abilita le seguenti autorizzazioni per l'ambito della tua richiesta.
cloudasset.assets.analyzeIamPolicy
cloudasset.assets.searchAllResources
cloudasset.assets.searchAllIamPolicies
Queste autorizzazioni sono incluse nei seguenti ruoli predefiniti:
Proprietario asset cloud (
roles/cloudasset.owner
)Visualizzatore asset cloud (
roles/cloudasset.viewer
)
Per ulteriori informazioni sulle autorizzazioni e sui ruoli dell'API Cloud Asset, consulta Controllo dell'accesso.
Ottieni criteri IAM efficaci
gcloud
Per ottenere i criteri IAM effettivi su una risorsa, puoi chiamare BatchGetEffectiveIamPolicies
utilizzando il comando gcloud asset get-effective-iam-policy
. Devi eseguire la versione 399.0.0 di Google Cloud CLI o una versione successiva.
gcloud asset get-effective-iam-policy \
--scope=SCOPE \
--names=ASSET_NAME_1,ASSET_NAME_2,...
Specifica i seguenti valori:
SCOPE
: un ambito può essere un progetto, una cartella o un'organizzazione.I valori consentiti sono:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Come trovare il numero di un progetto Google Cloud
Console
Per trovare il numero di un progetto Google Cloud, completa questi passaggi:
-
Vai alla pagina Dashboard nella console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca il nome del tuo progetto.
- Fai clic sul nome del progetto per passare a quel progetto. Il numero di progetto è visualizzato nella scheda Informazioni sul progetto.
Interfaccia a riga di comando gcloud
Puoi recuperare il numero di un progetto Google Cloud con il seguente comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Come trovare l'ID di una cartella Google Cloud
Console
Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Cerca il nome della cartella. L'ID cartella è visualizzato accanto al nome della cartella.
Interfaccia a riga di comando gcloud
Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente comando:
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)"
Dove TOP_LEVEL_FOLDER_NAME può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione
--format
per visualizzare ulteriori informazioni sulle cartelle trovate.Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Come trovare un ID organizzazione Google Cloud
Console
Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare un ID organizzazione Google Cloud con il seguente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
ASSET_NAME
: un elenco separato da virgole di nomi completi degli asset per cui recuperare i criteri IAM effettivi.Puoi recuperare i criteri per un massimo di 20 asset in un singolo batch.
I seguenti esempi di codice sono comandi dell'interfaccia a riga di comando gcloud
di esempio:
Per l'ID organizzazione
123456
:gcloud asset get-effective-iam-policy \ --scope=organizations/123456 \ --names=//cloudresourcemanager.googleapis.com/organizations/123456
Per un ID cartella di
1234567
:gcloud asset get-effective-iam-policy \ --scope=folders/1234567 \ --names=//cloudresourcemanager.googleapis.com/folders/1234567
Per due risorse di istanza Cloud SQL in un progetto denominato
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
Per ottenere i criteri IAM effettivi su una risorsa utilizzando l'API Cloud Asset Inventory, utilizza il seguente comando curl
:
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
Specifica i seguenti valori:
ASSET_NAME
: un elenco separato da virgole di nomi completi degli asset per cui recuperare i criteri IAM effettivi.Puoi recuperare i criteri per un massimo di 20 asset in un singolo batch.
SCOPE
: un ambito può essere un progetto, una cartella o un'organizzazione.I valori consentiti sono:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Come trovare il numero di un progetto Google Cloud
Console
Per trovare il numero di un progetto Google Cloud, completa questi passaggi:
-
Vai alla pagina Dashboard nella console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca il nome del tuo progetto.
- Fai clic sul nome del progetto per passare a quel progetto. Il numero di progetto è visualizzato nella scheda Informazioni sul progetto.
Interfaccia a riga di comando gcloud
Puoi recuperare il numero di un progetto Google Cloud con il seguente comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Come trovare l'ID di una cartella Google Cloud
Console
Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Cerca il nome della cartella. L'ID cartella è visualizzato accanto al nome della cartella.
Interfaccia a riga di comando gcloud
Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente comando:
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)"
Dove TOP_LEVEL_FOLDER_NAME può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione
--format
per visualizzare ulteriori informazioni sulle cartelle trovate.Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Come trovare un ID organizzazione Google Cloud
Console
Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare un ID organizzazione Google Cloud con il seguente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-