Puoi cercare i criteri IAM consentiti nelle tue risorse in un progetto, una cartella o un'organizzazione e filtrare i risultati restituiti utilizzando una query.
Prima di iniziare
Abilita l'API Cloud Asset Inventory nel progetto da cui esegui i comandi Cloud Asset Inventory.
Assicurati che il tuo account disponga del ruolo corretto per chiamare l'API Cloud Asset Inventory. Per le singole autorizzazioni per ogni tipo di chiamata, vedi Autorizzazioni.
Costruire una query
Prima di creare una query, può essere utile iniziare con una richiesta di ricerca che non specifichi una query. Utilizza i campi e i valori della risposta completa per creare una query utilizzando la sintassi della query di ricerca e perfezionala finché non vengono restituiti i risultati che ti interessano.
I campi che possono essere utilizzati in una query sono descritti in dettaglio nella
documentazione di riferimento di IamPolicySearchResult
.
Tieni presente le seguenti limitazioni durante la creazione di una query:
Il campo
policy
è un oggetto nidificato, quindi può essere utilizzato solo con l'operatore:
.Non tutti i tipi di asset sono disponibili per la ricerca. Consulta Tipi di risorse per verificare se un servizio non è disponibile nelle API di ricerca.
Per limitare i risultati a determinati tipi di entità, autorizzazioni o ruoli, puoi utilizzare anche i seguenti campi aggiuntivi:
Campo | Descrizione |
---|---|
memberTypes |
Contiene uno dei seguenti tipi di entità IAM:
EsempiomemberTypes=user |
policy.role.permissions |
Contiene autorizzazioni IAM specifiche. Esempiopolicy.role.permissions=storage.buckets.create |
roles |
Contiene ruoli IAM specifici. Esempioroles=roles/storage.objectAdmin |
Cercare i criteri di autorizzazione IAM
Prima di creare una query, può essere utile iniziare con una richiesta di ricerca che non specifichi una query. Utilizza i campi e i valori della risposta completa per creare una query utilizzando la sintassi delle query di ricerca e perfezionala finché non vengono restituiti i risultati che ti interessano.
Console
Per cercare i metadati delle policy di autorizzazione IAM, completa i seguenti passaggi.
-
Vai alla pagina Asset Inventory nella console Google Cloud .
- Passa al progetto, alla cartella o all'organizzazione in cui vuoi eseguire la ricerca.
- Fai clic sulla scheda Policy IAM.
-
Per cercare le policy di autorizzazione, inserisci una query nel campo Filtro. Consulta Sintassi delle query di ricerca per scoprire come scrivere una query di ricerca.
Per semplificare la creazione delle query, puoi fare clic sul campo Filtro per visualizzare e aggiungere i campi disponibili per la ricerca alla tua query.
Dopo aver eseguito una ricerca, le norme di autorizzazione corrispondenti alla query vengono elencate nella tabella Risultati. Fai doppio clic sulla query per modificarla oppure utilizza il riquadro Filtra risultati per applicare preset di query rapidi o limitare i risultati di ricerca in base a criteri specifici.
Per visualizzare la query come comando Google Cloud CLI, fai clic su Visualizza query.
Per esportare i risultati, fai clic su Scarica CSV.
gcloud
gcloud asset search-all-iam-policies \ --scope=SCOPE_PATH \ --query="QUERY" \ --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \ --order-by="ORDER_BY"
Fornisci i seguenti valori:
-
SCOPE_PATH
: utilizza uno dei seguenti valori:I valori consentiti sono:
-
projects/PROJECT_ID
, dovePROJECT_ID
è l'ID del progetto che contiene asset con policy di autorizzazione IAM che vuoi cercare. -
projects/PROJECT_NUMBER
, dovePROJECT_NUMBER
è il numero del progetto che contiene asset con criteri di autorizzazione IAM che vuoi cercare.Come trovare un Google Cloud numero di progetto
ConsoleGoogle Cloud
Per trovare un numero di progetto, completa i seguenti passaggi: Google Cloud
-
Vai alla pagina Benvenuto nella console Google Cloud .
- Fai clic sulla casella di elenco selettore nella barra dei menu.
-
Seleziona la tua organizzazione dalla casella di elenco, quindi cerca il nome del tuo progetto. Il nome, il numero e l'ID progetto vengono visualizzati vicino all'intestazione Benvenuto.
Vengono visualizzate fino a 4000 risorse. Se non vedi il progetto che stai cercando, vai alla pagina Gestisci risorse e filtra l'elenco utilizzando il nome del progetto.
Interfaccia a riga di comando gcloud
Puoi recuperare un Google Cloud numero di progetto con il seguente comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, doveFOLDER_ID
è l'ID della cartella che contiene asset con policy di autorizzazione IAM che vuoi cercare.Come trovare l'ID di una Google Cloud cartella
ConsoleGoogle Cloud
Per trovare l'ID di una Google Cloud cartella:
-
Vai alla Google Cloud console.
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Cerca il nome della cartella. L'ID cartella viene 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 è una corrispondenza parziale o completa della stringa per il nome della cartella. Rimuovi il flag
--format
per visualizzare ulteriori informazioni sulle cartelle trovate.Il comando precedente non restituisce gli ID delle sottocartelle all'interno delle cartelle. Per farlo, esegui il comando seguente utilizzando l'ID di una cartella di primo livello:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, doveORGANIZATION_ID
è l'ID dell'organizzazione che contiene asset con policy di autorizzazione IAM che vuoi cercare.Come trovare l'ID di un' Google Cloud organizzazione
ConsoleGoogle Cloud
Per trovare l'ID di un' Google Cloud organizzazione:
-
Vai alla Google Cloud console.
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
QUERY
: (Facoltativo). L'espressione di query. Se non specificato o vuoto, tutte le risorse vengono cercate nell'ambito specificato. Per scoprire come scrivere una query di ricerca, consulta Sintassi delle query di ricerca. ASSET_TYPE_#
: (Facoltativo). Un elenco separato da virgole di tipi di asset ricercabili. Sono supportate le espressioni regolari compatibili con RE2. Se l'espressione regolare non corrisponde a nessun tipo di asset supportato, viene restituito un erroreINVALID_ARGUMENT
. Quando--asset-types
non è specificato, vengono restituiti tutti i tipi di asset.-
ORDER_BY
: (Facoltativo). Un elenco di campi separati da virgole che specificano l'ordine di ordinamento dei risultati. L'ordine predefinito è crescente. AggiungiDESC
dopo il nome del campo per indicare l'ordine decrescente. Consulta la documentazione di riferimento per scoprire quali campi possono essere ordinati.
Puoi utilizzare i flag --format
e
--flatten
per formattare l'output
di gcloud CLI.
Per tutte le opzioni, consulta il riferimento gcloud CLI.
Esempio
Esegui il comando seguente per ottenere un elenco di tutte le istanze Compute Engine
(compute.googleapis.com/Instance
) nel progetto my-project
con un'associazione di policy IAM che le lega all'utente alex@example.com
. I risultati sono in ordine decrescente per risorsa (resource DESC
).
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy:\"user:alex@example.com\"" \ --asset-types=compute.googleapis.com/Instance \ --order-by="resource DESC"
Esempio di risposta
--- assetType: compute.googleapis.com/Instance folders: - folders/0000000000000 organization: organizations/0000000000000 policy: bindings: - members: - user:alex@example.com role: roles/compute.viewer - members: - user:alex@example.com role: roles/editor - members: - user:alex@example.com role: roles/owner project: projects/0000000000000 resource: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/debian
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:searchAllIamPolicies
Corpo JSON della richiesta:
{ "query": "QUERY", "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "orderBy": "ORDER_BY", "pageSize": "PAGE_SIZE", "pageToken": "PAGE_TOKEN" }
Fornisci i seguenti valori:
-
SCOPE_PATH
: utilizza uno dei seguenti valori:I valori consentiti sono:
-
projects/PROJECT_ID
, dovePROJECT_ID
è l'ID del progetto che contiene asset con policy di autorizzazione IAM che vuoi cercare. -
projects/PROJECT_NUMBER
, dovePROJECT_NUMBER
è il numero del progetto che contiene asset con criteri di autorizzazione IAM che vuoi cercare.Come trovare un Google Cloud numero di progetto
ConsoleGoogle Cloud
Per trovare un numero di progetto, completa i seguenti passaggi: Google Cloud
-
Vai alla pagina Benvenuto nella console Google Cloud .
- Fai clic sulla casella di elenco selettore nella barra dei menu.
-
Seleziona la tua organizzazione dalla casella di elenco, quindi cerca il nome del tuo progetto. Il nome, il numero e l'ID progetto vengono visualizzati vicino all'intestazione Benvenuto.
Vengono visualizzate fino a 4000 risorse. Se non vedi il progetto che stai cercando, vai alla pagina Gestisci risorse e filtra l'elenco utilizzando il nome del progetto.
Interfaccia a riga di comando gcloud
Puoi recuperare un Google Cloud numero di progetto con il seguente comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, doveFOLDER_ID
è l'ID della cartella che contiene asset con policy di autorizzazione IAM che vuoi cercare.Come trovare l'ID di una Google Cloud cartella
ConsoleGoogle Cloud
Per trovare l'ID di una Google Cloud cartella:
-
Vai alla Google Cloud console.
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Cerca il nome della cartella. L'ID cartella viene 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 è una corrispondenza parziale o completa della stringa per il nome della cartella. Rimuovi il flag
--format
per visualizzare ulteriori informazioni sulle cartelle trovate.Il comando precedente non restituisce gli ID delle sottocartelle all'interno delle cartelle. Per farlo, esegui il comando seguente utilizzando l'ID di una cartella di primo livello:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, doveORGANIZATION_ID
è l'ID dell'organizzazione che contiene asset con policy di autorizzazione IAM che vuoi cercare.Come trovare l'ID di un' Google Cloud organizzazione
ConsoleGoogle Cloud
Per trovare l'ID di un' Google Cloud organizzazione:
-
Vai alla Google Cloud console.
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
QUERY
: (Facoltativo). L'espressione di query. Se non specificato o vuoto, tutte le risorse vengono cercate nell'ambito specificato. Per scoprire come scrivere una query di ricerca, consulta Sintassi delle query di ricerca. ASSET_TYPE_#
: (Facoltativo). Un array di tipi di asset ricercabili. Sono supportate le espressioni regolari compatibili con RE2. Se l'espressione regolare non corrisponde a nessun tipo di asset supportato, viene restituito un erroreINVALID_ARGUMENT
. QuandoassetTypes
non è specificato, vengono restituiti tutti i tipi di asset.-
ORDER_BY
: (Facoltativo). Un elenco di campi separati da virgole che specificano l'ordine di ordinamento dei risultati. L'ordine predefinito è crescente. AggiungiDESC
dopo il nome del campo per indicare l'ordine decrescente. Consulta la documentazione di riferimento per scoprire quali campi possono essere ordinati. -
PAGE_SIZE
: (Facoltativo). Il numero di risultati da restituire per pagina. Il massimo è 500. Se il valore è impostato su0
o su un valore negativo, viene selezionato un valore predefinito appropriato. Viene restituito unnextPageToken
per recuperare i risultati successivi. -
PAGE_TOKEN
: (Facoltativo). Le risposte alle richieste lunghe sono separate su più pagine. SepageToken
non è specificato, viene restituita la prima pagina. Le pagine successive possono essere chiamate utilizzandonextPageToken
della risposta precedente come valore dipageToken
.
Consulta il riferimento REST per tutte le opzioni.
Esempi di comandi
Esegui uno dei seguenti comandi per ottenere un elenco di tutte le istanze Compute Engine
(compute.googleapis.com/Instance
) nel progetto my-project
con un
binding del criterio IAM che le lega all'utente alex@example.com
. I risultati sono in ordine decrescente per risorsa (resource DESC
).
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "query": "policy:\"user:alex@example.com\"", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "resource DESC" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "query": "policy:\"user:alex@example.com\"", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "resource DESC" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Esempio di risposta
{ "resource": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/debian", "project": "projects/0000000000000", "policy": { "bindings": [ { "role": "roles/compute.viewer", "members": [ "user:alex@example.com" ] }, { "role": "roles/editor", "members": [ "user:alex@example.com" ] }, { "role": "roles/owner", "members": [ "user:alex@example.com" ] } ] }, "assetType": "compute.googleapis.com/Instance", "folders": [ "folders/0000000000000" ], "organization": "organizations/0000000000000" }
C#
Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.
Per autenticarti in Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Vai
Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.
Per autenticarti in Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.
Per autenticarti in Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.
Per autenticarti in Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.
Per autenticarti in Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.
Per autenticarti in Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.
Per autenticarti in Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Altri esempi di ricerca
Gli esempi di codice riportati di seguito mostrano query di ricerca specifiche per gcloud e REST per aiutarti a creare le tue ricerche.
Risorse con policy di autorizzazione IAM
L'esempio seguente mostra come cercare tutte le risorse con
policy di autorizzazione IAM nel progetto my-project
.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --flatten="policy.bindings[].members[]" \ --format="table(resource, policy.bindings.role, policy.bindings.members)"
REST
Metodo HTTP e URL:
GET https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Esempi di comandi
curl (Linux, macOS o Cloud Shell)
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Risorse denominate con policy di autorizzazione IAM
L'esempio riportato di seguito mostra come cercare tutte le risorse con example
nel nome che hanno criteri di autorizzazione IAM.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="resource:example"
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Corpo JSON della richiesta:
{ "pageSize": 1, "query": "resource:example" }
Esempi di comandi
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "resource:example" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "resource:example" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Criteri di autorizzazione IAM per progetti, cartelle e organizzazioni
L'esempio seguente mostra come cercare tutti i criteri IAM di tipo Consenti in tutti i progetti e le cartelle dell'organizzazione con l'ID my-organization-id
.
Come trovare l'ID di un' Google Cloud organizzazione
ConsoleGoogle Cloud
Per trovare l'ID di un' Google Cloud organizzazione:
-
Vai alla Google Cloud console.
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --asset-types=cloudresourcemanager.*
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Corpo JSON della richiesta:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, }
Esempi di comandi
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Proprietari di un progetto
Il seguente esempio mostra come cercare le entità con il
ruolo Proprietario (roles/owner
) nel progetto
my-project
.
Questa richiesta restituisce solo le entità a cui è stato concesso il ruolo Proprietario nel progetto. Non include le entità che ereditano il ruolo Proprietario tramite l'ereditarietà delle policy.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="roles:roles/owner" \ --asset-types=cloudresourcemanager.* \ --flatten="policy.bindings[].members[]" \ --format="table(policy.bindings.members)"
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Corpo JSON della richiesta:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "roles:roles/owner" }
Esempi di comandi
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "roles:roles/owner" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "roles:roles/owner" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Progetti in cui un'entità ha il ruolo di proprietario
Il seguente esempio mostra come cercare i progetti in cui alex@example.com
ha il ruolo Proprietario (roles/owner
), nell'organizzazione con ID my-organization-id
.
Questa richiesta restituisce solo i progetti su cui a alex@example.com
è stato
concesso il ruolo Proprietario. Non include i progetti su cui alex@example.com
ha
ereditato il ruolo Proprietario.
Come trovare l'ID di un' Google Cloud organizzazione
ConsoleGoogle Cloud
Per trovare l'ID di un' Google Cloud organizzazione:
-
Vai alla Google Cloud console.
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy:(roles/owner alex@example.com)" \ --asset-types=cloudresourcemanager.googleapis.com/Project \ --format="table(resource)"
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Corpo JSON della richiesta:
{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:(roles/owner alex@example.com)" }
Esempi di comandi
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:(roles/owner alex@example.com)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:(roles/owner alex@example.com)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Ruoli di un'entità in un progetto
Il seguente esempio mostra come cercare i ruoli che alex@example.com
ha nel progetto my-project
.
Questa richiesta restituisce solo i ruoli concessi a alex@example.com
nel progetto. Non include i ruoli alex@example.com
ereditati tramite
l'ereditarietà dei criteri.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy:alex@example.com" \ --asset-types=cloudresourcemanager.googleapis.com/Project \ --flatten="policy.bindings[]" \ --format="table(policy.bindings.role)"
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Corpo JSON della richiesta:
{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:alex@example.com" }
Esempi di comandi
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:alex@example.com" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:alex@example.com" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Autorizzazioni di un'entità su un progetto
Il seguente esempio mostra come cercare le autorizzazioni che alex@example.com
ha sul progetto my-project
.
Questa richiesta restituisce solo le autorizzazioni che alex@example.com
ha sul progetto. Non include le autorizzazioni ereditate da alex@example.com
tramite l'ereditarietà dei criteri.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy:alex@example.com policy.role.permissions:\"\"" \ --asset-types=cloudresourcemanager.* \ --format="default(explanation.matchedPermissions)"
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Corpo JSON della richiesta:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy:alex@example.com policy.role.permissions:\"\"" }
Esempi di comandi
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy:alex@example.com policy.role.permissions:\"\"" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy:alex@example.com policy.role.permissions:\"\"" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Entità che possono accedere ai bucket Cloud Storage
Il seguente esempio mostra come cercare i principal che possono accedere ai bucket Cloud Storage nel progetto my-project
.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy.role.permissions:storage.buckets" \ --asset-types=cloudresourcemanager.* \ --flatten="policy.bindings[].members[]" \ --format="table(policy.bindings.members)"
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Corpo JSON della richiesta:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy.role.permissions:storage.buckets" }
Esempi di comandi
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy.role.permissions:storage.buckets" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy.role.permissions:storage.buckets" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Service account con un ruolo di proprietario
Il seguente esempio mostra come cercare i service account con il
ruolo Proprietario (roles/owner
) nell'organizzazione con my-organization-id
. Puoi utilizzare questa query per ridurre il tuo profilo di rischio.
Come trovare l'ID di un' Google Cloud organizzazione
ConsoleGoogle Cloud
Per trovare l'ID di un' Google Cloud organizzazione:
-
Vai alla Google Cloud console.
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
Questo esempio utilizza il comando `grep`, disponibile in Cloud Shell e nei sistemi operativi di tipo Unix.
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy:(roles/owner serviceAccount)" \ --flatten="policy.bindings[].members[]" \ --format="table(resource.segment(3):label=RESOURCE_TYPE, resource.basename():label=RESOURCE, policy.bindings.members)" | grep serviceAccount
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Corpo JSON della richiesta:
{ "pageSize": 1, "query": "policy:(roles/owner serviceAccount)" }
Esempi di comandi
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "policy:(roles/owner serviceAccount)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "policy:(roles/owner serviceAccount)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Risorse con ruoli concessi a un dominio
Il seguente esempio mostra come cercare le risorse con ruoli concessi al dominio example.com
nell'organizzazione con ID my-organization-id
.
Come trovare l'ID di un' Google Cloud organizzazione
ConsoleGoogle Cloud
Per trovare l'ID di un' Google Cloud organizzazione:
-
Vai alla Google Cloud console.
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy:\"domain:example.com\"" \ --flatten="policy.bindings[]" \ --format="table(resource, policy.bindings.role)"
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Corpo JSON della richiesta:
{ "pageSize": 1, "query": "policy:\"domain:DOMAIN_NAME\"" }
Esempi di comandi
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "policy:\"domain:DOMAIN_NAME\"" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "policy:\"domain:DOMAIN_NAME\"" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Risorse con ruoli concessi al pubblico
Il seguente esempio mostra come cercare risorse con ruoli concessi al pubblico nell'organizzazione con ID my-organization-id
.
Come trovare l'ID di un' Google Cloud organizzazione
ConsoleGoogle Cloud
Per trovare l'ID di un' Google Cloud organizzazione:
-
Vai alla Google Cloud console.
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="memberTypes:(allUsers OR allAuthenticatedUsers)" \ --format="table(resource)"
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Corpo JSON della richiesta:
{ "pageSize": 1, "query": "memberTypes:(allUsers OR allAuthenticatedUsers)" }
Esempi di comandi
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "memberTypes:(allUsers OR allAuthenticatedUsers)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "memberTypes:(allUsers OR allAuthenticatedUsers)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Entità che possono modificare i criteri di autorizzazione IAM in un'organizzazione
Il seguente esempio mostra come cercare i principal che possono modificare le policy di autorizzazione IAM nell'organizzazione con l'ID my-organization-id
.
Come trovare l'ID di un' Google Cloud organizzazione
ConsoleGoogle Cloud
Per trovare l'ID di un' Google Cloud organizzazione:
-
Vai alla Google Cloud console.
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" \ --format="json(resource, policy.bindings, explanation.matchedPermissions)"
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Corpo JSON della richiesta:
{ "pageSize": 1, "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" }
Esempi di comandi
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content