Esporta i metadati di una risorsa utilizzando Cloud Asset Inventory

Questa guida rapida mostra come esportare i metadati di un asset in un determinato momento utilizzando Cloud Asset Inventory e i comandi gcloud asset di Google Cloud CLI.

Prima di iniziare

Prima di poter iniziare a utilizzare Cloud Asset Inventory, devi abilitare l'API Cloud Asset Inventory e Google Cloud CLI e assegnare le autorizzazioni. L'interfaccia a riga di comando di Google Cloud interagisce con Cloud Asset Inventory e altri servizi Google Cloud. Scopri di più su gcloud CLI.

Abilitazione dell'API Cloud Asset Inventory e Google Cloud CLI

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Attiva l'API richiesta.

    Abilita l'API

  4. Installa Google Cloud CLI.
  5. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  6. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  7. Attiva l'API richiesta.

    Abilita l'API

  8. Installa Google Cloud CLI.
  9. Per initialize gcloud CLI, esegui questo comando:

    gcloud init

Configurazione delle autorizzazioni

Per chiamare l'API Cloud Asset Inventory, devi prima configurare le autorizzazioni.

Ricerca delle risorse

Per cercare nei metadati delle risorse, esegui il comando seguente.

gcloud asset search-all-resources \
    --scope=SCOPE \
    --query="QUERY" \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --order-by="ORDER_BY" \
    --read-mask="READ_MASK"

Specifica i seguenti valori:

  • SCOPE: facoltativo. Un ambito può essere un progetto, una cartella o un'organizzazione. La ricerca è limitata alle risorse Google Cloud in questo ambito. Al chiamante deve essere concessa l'autorizzazione cloudasset.assets.searchAllResources per l'ambito desiderato. Se non specificata, viene utilizzata la proprietà del progetto configurato.

    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:

      1. Vai alla pagina Dashboard nella console Google Cloud.

        Vai alla dashboard

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca il nome del tuo progetto.
      4. 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:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. 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:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. 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))"

  • QUERY: facoltativo. L'istruzione della query. Per ulteriori informazioni, consulta la sezione Sintassi delle query. Se non specificato o vuoto, Cloud Asset Inventory cerca tutte le risorse nell'elemento scope specificato.

    Esempi:

    • name:Important per trovare le risorse Google Cloud il cui nome contiene Important come parola.

    • name=Important per trovare la risorsa Google Cloud il cui nome è esattamente Important.

    • displayName:Impor* per trovare le risorse Google Cloud il cui nome visualizzato contiene Impor come prefisso.

    • location:us-west* per trovare le risorse Google Cloud la cui località contiene sia us che west come prefissi.

    • labels:prod per trovare le risorse Google Cloud le cui etichette contengono prod come chiave o valore.

    • labels.env:prod per trovare risorse di Google Cloud che hanno un'etichetta env e il cui valore è "prod".

    • labels.env:* per trovare risorse Google Cloud che hanno un'etichetta env.

    • kmsKeys:key per trovare le risorse Google Cloud criptate con chiavi di crittografia gestite dal cliente il cui nome contiene key come parola.

    • sccSecurityMarks.key=value per trovare le risorse Google Cloud collegate a una coppia di contrassegni di sicurezza la cui chiave è key e il valore è value.

    • sccSecurityMarks.key:* per trovare le risorse Google Cloud collegate a una coppia di contrassegni di sicurezza la cui chiave è key.

    • state:ACTIVE per trovare le risorse Google Cloud il cui stato contiene ACTIVE come parola.

    • NOT state:ACTIVE per trovare le risorse Google Cloud il cui stato non contiene ACTIVE come parola.

    • createTime<1609459200, createTime<2021-01-01 o createTime<"2021-01-01T00:00:00" per trovare le risorse Google Cloud create prima del 1/01/2021 alle 00:00:00 UTC. 1609459200 è il timestamp dell'epoca del 01-01-2021 00:00:00 UTC, espresso in secondi.

    • updateTime>1609459200, updateTime>2021-01-01 o updateTime>"2021-01-01T00:00:00" per trovare le risorse Google Cloud aggiornate dopo il 1° gennaio 2021 alle 00:00:00 UTC. 1609459200 è il timestamp dell'epoca del 01-01-2021 00:00:00 UTC, espresso in secondi.

    • project:12345 per trovare le risorse Google Cloud che appartengono a un progetto Google Cloud con numero 12345. L'ID progetto non è supportato.

    • folders:(123 or 456) per trovare le risorse Google Cloud che sono un discendente della cartella Google Cloud con i numeri 123 o 456.

    • organization:123 per trovare le risorse Google Cloud che sono discendenti dell'organizzazione Google Cloud con numero 123.

    • parentFullResourceName:ImportantName per trovare le risorse Google Cloud il cui nome del padre contiene ImportantName.

    • parentAssetType:Project per trovare le risorse Google Cloud il cui tipo di asset principale contiene Project.

    • Important per trovare le risorse Google Cloud contenenti Important come parola in qualsiasi campo disponibile per la ricerca.

    • Impor* per trovare le risorse Google Cloud che contengono Impor come prefisso in uno dei campi disponibili per la ricerca.

    • Important location:(us-west1 OR global) per trovare le risorse Google Cloud che contengono la parola "Importanti" come parola in qualsiasi campo disponibile per la ricerca e che si trovano anch'esse nella regione us-west1 o nella località global.

  • ASSET_TYPE: facoltativo. Un elenco separato da virgole di tipi di risorse ricercabili. Sono supportate espressioni regolari compatibili con RE2. Se l'espressione regolare non corrisponde a nessun tipo di asset supportato, viene restituito un errore INVALID_ARGUMENT.

  • ORDER_BY: facoltativo. Un elenco di campi separati da virgole che specificano l'ordine dei risultati. L'ordine predefinito è crescente. Aggiungi " DESC" dopo il nome del campo per indicare l'ordine decrescente. Gli spazi ridondanti vengono ignorati. Esempio: "location DESC, name". Solo i campi primitivi singolari nella risposta sono ordinabili:

    • name

    • assetType

    • project

    • displayName

    • description

    • location

    • createTime

    • updateTime

    • state

    • parentFullResourceName

    • parentAssetType

    Tutti gli altri campi, come quelli ripetuti (ad esempio networkTags, kmsKeys), i campi della mappa (ad es. labels) e quelli di struct (ad esempio additionalAttributes), non sono supportati.

  • READ_MASK: facoltativo. Un elenco di campi separati da virgole che specificano i campi da restituire nei risultati. Se non specificato, vengono restituiti tutti i campi tranne versionedResources. Se viene specificato solo "*", vengono restituiti tutti i campi. Esempi: "name,location", "name,versionedResources", "*".

Per scoprire di più su come cercare le risorse, consulta Ricerca delle risorse.

Ricerca dei criteri IAM

Per cercare criteri IAM (Identity and Access Management), esegui il comando seguente.

gcloud asset search-all-iam-policies \
  --scope=SCOPE \
  --query="QUERY" \
  --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
  --order-by="ORDER_BY"

Specifica i seguenti valori:

  • SCOPE: facoltativo. Un ambito può essere un progetto, una cartella o un'organizzazione. La ricerca è limitata alle risorse IAM in questo ambito. Al chiamante deve essere concessa l'autorizzazione cloudasset.assets.searchAllIamPolicies per l'ambito desiderato. Se non specificata, viene utilizzata la proprietà del progetto configurato.

    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:

      1. Vai alla pagina Dashboard nella console Google Cloud.

        Vai alla dashboard

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca il nome del tuo progetto.
      4. 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:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. 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:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. 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))"

  • QUERY: facoltativo. L'istruzione della query. Per ulteriori informazioni, consulta la sezione Sintassi delle query. Se non specificato o vuoto, Cloud Asset Inventory cerca in tutti i criteri IAM nell'elemento scope specificato. La stringa di query viene confrontata con ogni associazione dei criteri IAM, inclusi entità, ruoli e condizioni IAM. I criteri IAM restituiti contengono solo le associazioni che corrispondono alla tua query. Per saperne di più sulla struttura dei criteri IAM, consulta Struttura dei criteri.

    Esempi:

    • policy:amy@gmail.com per trovare associazioni di criteri IAM che specificano l'utente amy@gmail.com.

    • policy:roles/compute.admin per trovare associazioni di criteri IAM che specificano il ruolo Amministratore Compute.

    • policy:comp* per trovare le associazioni di criteri IAM che contengono comp come prefisso di qualsiasi parola nell'associazione.

    • policy.role.permissions:storage.buckets.update per trovare le associazioni di criteri IAM che specificano un ruolo contenente l'autorizzazione storage.buckets.update. Se i chiamanti non hanno accesso iam.roles.get alle autorizzazioni incluse di un ruolo, le associazioni di criteri che specificano questo ruolo verranno eliminate dai risultati di ricerca.

    • policy.role.permissions:upd* per trovare associazioni di criteri IAM che specificano un ruolo contenente upd come prefisso di qualsiasi parola nell'autorizzazione del ruolo. Tieni presente che se i chiamanti non hanno accesso iam.roles.get alle autorizzazioni incluse di un ruolo, le associazioni di criteri che specificano questo ruolo verranno eliminate dai risultati di ricerca.

    • resource:organizations/123456 per trovare le associazioni di criteri IAM impostate su "organizations/123456".

    • resource=//cloudresourcemanager.googleapis.com/projects/myproject per trovare le associazioni dei criteri IAM impostate per il progetto denominato myproject.

    • Important per trovare le associazioni di criteri IAM che contengono Important come parola in qualsiasi campo disponibile per la ricerca (ad eccezione delle autorizzazioni incluse).

    • resource:(instance1 OR instance2) policy:amy per trovare le associazioni di criteri IAM impostate sulle risorse instance1 o instance2 e specificare anche l'utente amy.

    • roles:roles/compute.admin per trovare associazioni di criteri IAM che specificano il ruolo Amministratore Compute.

    • memberTypes:user per trovare le associazioni di criteri IAM che contengono il tipo di entità user.

  • ASSET_TYPE: facoltativo. Un elenco separato da virgole di tipi di asset ricercabili a cui sono associati i criteri IAM. Se vuoto, Cloud Asset Inventory cerca nei criteri IAM associati a tutti i tipi di asset disponibili per la ricerca. Sono supportate le espressioni regolari. Se l'espressione regolare non corrisponde a nessun tipo di asset supportato, viene restituito un errore INVALID_ARGUMENT.

  • ORDER_BY: facoltativo. Un elenco di campi separati da virgole che specificano l'ordine dei risultati. L'ordine predefinito è crescente. Aggiungi " DESC" dopo il nome del campo per indicare l'ordine decrescente. Gli spazi ridondanti vengono ignorati. Esempio: "location DESC, name". Solo i campi primitivi singolari nella risposta sono ordinabili:

    • resource

    • assetType

    • project

    Tutti gli altri campi, come quelli ripetuti (ad esempio folders) e non primitivi (ad esempio policy), non sono supportati.

Per saperne di più su come cercare i criteri IAM, consulta Ricerca nei criteri IAM.

Esportazione di uno snapshot degli asset in Cloud Storage

Per esportare tutti i metadati degli asset in un determinato timestamp in un file del bucket Cloud Storage, completa i passaggi riportati di seguito.

  1. Crea un nuovo bucket se non ne hai già uno.

  2. Per esportare i metadati degli asset nel progetto, esegui questo comando. Questo comando archivia lo snapshot esportato in un file all'indirizzo gs://BUCKET_NAME/FILENAME.

    Progetti

    gcloud asset export \
        --project=PROJECT_ID \
        --billing-project=BILLING_PROJECT_ID \
        --content-type=CONTENT_TYPE \
        --snapshot-time="SNAPSHOT_TIME" \
        --output-path="gs://BUCKET_NAME/FILENAME"
    

    Specifica i seguenti valori:

    • PROJECT_ID: l'ID del progetto di cui vuoi esportare i metadati.

    • BILLING_PROJECT_ID: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito con l'autorizzazione per scrivere nel bucket Cloud Storage. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione con gcloud config set project. Scopri di più sui progetti di fatturazione.

    • CONTENT_TYPE: facoltativo. Il tipo di contenuti della risorsa da esportare. Se non viene specificato alcun tipo di contenuti, viene restituito solo il nome della risorsa. Scopri di più sui tipi di contenuti.

    • SNAPSHOT_TIME: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.

    • BUCKET_NAME: il nome del bucket Cloud Storage in cui scrivere.

    • FILENAME: il file nel bucket Cloud Storage in cui scrivere.

    Cartelle

    gcloud asset export \
        --folder=FOLDER_ID \
        --billing-project=BILLING_PROJECT_ID \
        --content-type=CONTENT_TYPE \
        --snapshot-time="SNAPSHOT_TIME" \
        --output-path="gs://BUCKET_NAME/FILENAME"
    

    Specifica i seguenti valori:

    • FOLDER_ID: l'ID della cartella di cui vuoi esportare i metadati.

      Come trovare l'ID di una cartella Google Cloud

      Console

      Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. 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

    • BILLING_PROJECT_ID: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito con l'autorizzazione per scrivere nel bucket Cloud Storage. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione con gcloud config set project. Scopri di più sui progetti di fatturazione.

    • CONTENT_TYPE: facoltativo. Il tipo di contenuti della risorsa da esportare. Se non viene specificato alcun tipo di contenuti, viene restituito solo il nome della risorsa. Scopri di più sui tipi di contenuti.

    • SNAPSHOT_TIME: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.

    • BUCKET_NAME: il nome del bucket Cloud Storage in cui scrivere.

    • FILENAME: il file nel bucket Cloud Storage in cui scrivere.

    Organizzazioni

    gcloud asset export \
        --organization=ORGANIZATION_ID \
        --billing-project=BILLING_PROJECT_ID \
        --content-type=CONTENT_TYPE \
        --snapshot-time="SNAPSHOT_TIME" \
        --output-path="gs://BUCKET_NAME/FILENAME"
    

    Specifica i seguenti valori:

    • ORGANIZATION_ID: l'ID dell'organizzazione di cui vuoi esportare i metadati.

      Come trovare un ID organizzazione Google Cloud

      Console

      Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. 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))"

    • BILLING_PROJECT_ID: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito con l'autorizzazione per scrivere nel bucket Cloud Storage. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione con gcloud config set project. Scopri di più sui progetti di fatturazione.

    • CONTENT_TYPE: facoltativo. Il tipo di contenuti della risorsa da esportare. Se non viene specificato alcun tipo di contenuti, viene restituito solo il nome della risorsa. Scopri di più sui tipi di contenuti.

    • SNAPSHOT_TIME: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.

    • BUCKET_NAME: il nome del bucket Cloud Storage in cui scrivere.

    • FILENAME: il file nel bucket Cloud Storage in cui scrivere.

  3. (Facoltativo) Per controllare lo stato dell'esportazione, esegui questo comando. Viene visualizzato nell'interfaccia alla gcloud CLI dopo l'esecuzione del comando di esportazione.

    gcloud asset operations describe OPERATION_PATH
    

Visualizzazione dell'istantanea degli asset

Per visualizzare l'istantanea degli asset dopo averla esportato in Cloud Storage, completa i passaggi riportati di seguito.

  1. Vai alla pagina Bucket di Cloud Storage nella console Google Cloud.

    Vai a Bucket

  2. Apri il file in cui hai esportato i metadati.

Il file di esportazione elenca gli asset e i relativi nomi delle risorse.

Passaggi successivi