Esporta i metadati di una risorsa utilizzando Cloud Asset Inventory

Questa guida rapida mostra come esportare i metadati delle risorse 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 il l'API Cloud Asset Inventory, Google Cloud CLI e assegnare le autorizzazioni. La CLI Google Cloud interagisce con Cloud Asset Inventory e altri servizi Google Cloud. Scopri di più sull'interfaccia a riga di comando gcloud.

Abilitazione dell'API Cloud Asset Inventory e di Google Cloud CLI

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the required API.

    Enable the API

  4. Install the Google Cloud CLI.
  5. To initialize the gcloud CLI, run the following command:

    gcloud init
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Enable the required API.

    Enable the API

  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init

Configurazione delle autorizzazioni

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

Ricerca delle risorse

Per cercare i metadati delle risorse, esegui questo comando.

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. All'utente che effettua la chiamata deve essere concessa l'autorizzazione cloudasset.assets.searchAllResources nell'ambito desiderato. Se non specificato, viene utilizzata la proprietà del progetto configurata.

    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 i seguenti passaggi:

      1. Vai alla pagina Dashboard nella console Google Cloud.

        Vai alla Dashboard

      2. Fai clic sulla casella del commutatore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca i tuoi del progetto.
      4. Fai clic sul nome del progetto per passare al progetto in questione. Il numero del progetto viene visualizzato nella scheda Informazioni sul progetto.

      Interfaccia a riga di comando gcloud

      Puoi recuperare un numero di 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:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del commutatore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da e seleziona la tua organizzazione.
      4. Cerca il nome della cartella. L'ID cartella viene visualizzato accanto al nome della cartella.

      Interfaccia a riga di comando gcloud

      Puoi recuperare un ID cartella Google Cloud 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 di 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 l'ID organizzazione Google Cloud

      Console

      Per trovare un ID organizzazione 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 e seleziona la tua organizzazione.
      4. Fai clic sulla scheda Tutti. L'ID organizzazione viene 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 di query. Consulta: Sintassi delle query per saperne di più. Se non è specificato o è vuoto, Cloud Asset Inventory cerca tutte le risorse nel scope specificato.

    Esempi:

    • name:Important per trovare le risorse Google Cloud il cui nome contieneImportant 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 us e 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 le risorse Google Cloud con un'etichetta env e il valore "prod".

    • labels.env:* per trovare le risorse Google Cloud con un'etichetta env.

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

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

    • sccSecurityMarks.key:* per trovare le risorse Google Cloud collegate con una coppia di contrassegni di sicurezza il cui tasto è key.

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

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

    • createTime<1609459200 o createTime<2021-01-01 o createTime<"2021-01-01T00:00:00" per trovare le risorse Google Cloud create prima del 01-01-2021 00:00:00 UTC. 1609459200 è il timestamp epoch del 01-01-2021 00:00:00 UTC in secondi.

    • updateTime>1609459200, updateTime>2021-01-01 o updateTime>"2021-01-01T00:00:00" per trovare le risorse Google Cloud aggiornato dopo le ore 00:00:00 UTC del 1° gennaio 2021. 1609459200 è il timestamp epoch del 01-01-2021 00:00:00 UTC in secondi.

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

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

    • organization:123 per trovare le risorse Google Cloud che sono discendenti di Organizzazione Google Cloud con numero 123.

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

    • parentAssetType:Project per trovare le risorse Google Cloud il cui file padre il tipo di risorsa contiene Project.

    • Important per trovare le risorse Google Cloud che contengono Important come parola in uno dei campi di ricerca.

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

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

  • ASSET_TYPE: facoltativo. Un elenco separato da virgole di tipi di asset disponibili per la ricerca. Sono supportate le 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 specifica l'ordine di ordinamento dei risultati. L'ordine predefinito è crescente. Aggiungi " DESC" dopo il nome del campo per indicare l'ordine decrescente. I caratteri di spaziatura 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 i campi ripetuti (ad es. networkTags, kmsKeys), mappa campi (ad es. labels) e campi struct (per ad esempio additionalAttributes) non sono supportati.

  • READ_MASK: facoltativo. Un elenco di campi separati da virgole che specifica quali campi restituire nei risultati. Se non specificato, tutti i valori vengono restituiti 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 nelle risorse, consulta Cercare nelle risorse.

Ricerca dei criteri IAM

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

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. All'utente che effettua la chiamata deve essere concessa l'autorizzazione cloudasset.assets.searchAllIamPolicies nell'ambito desiderato. Se non specificato, il parametro proprietà di progetto configurata .

    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 i seguenti passaggi:

      1. Vai alla pagina Dashboard nella console Google Cloud.

        Vai alla Dashboard

      2. Fai clic sulla casella del commutatore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca i tuoi del progetto.
      4. Fai clic sul nome del progetto per passare al progetto in questione. Il numero del progetto viene visualizzato nella scheda Informazioni sul progetto.

      Interfaccia a riga di comando gcloud

      Puoi recuperare un numero di 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:

      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 e seleziona la tua organizzazione.
      4. Cerca il nome della cartella. L'ID cartella viene visualizzato accanto al nome della cartella.

      Interfaccia a riga di comando gcloud

      Puoi recuperare un ID cartella Google Cloud 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 di 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 l'ID organizzazione Google Cloud

      Console

      Per trovare un ID organizzazione Google Cloud, completa i seguenti passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del commutatore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da e seleziona la tua organizzazione.
      4. Fai clic sulla scheda Tutti. L'ID organizzazione viene 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 di query. Consulta: Sintassi delle query per saperne di più. Se non è specificato o è vuoto, Cloud Asset Inventory esegue la ricerca di tutti i criteri IAM nel scope specificato. La stringa di query viene confrontata con ogni Associazione di criteri IAM, tra cui entità, ruoli e Condizioni IAM. Solo i criteri IAM restituiti che contengono le associazioni che corrispondono alla tua query. Per scoprire di più sulla struttura dei criteri IAM, consulta Struttura dei criteri.

    Esempi:

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

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

    • policy:comp* per trovare associazioni di criteri IAM che contengonocomp 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 all'account di un ruolo le autorizzazioni incluse, le associazioni di criteri che specificano questo ruolo verranno eliminate dai risultati di ricerca.

    • policy.role.permissions:upd* per trovare le associazioni di criteri IAM che specificano un ruolo contenente upd come prefisso di qualsiasi parola nel ruolo autorizzazione. Tieni presente che se i chiamanti non hanno accesso iam.roles.get a un le autorizzazioni incluse del ruolo, le associazioni di criteri che specificano questo ruolo eliminati 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 di criteri IAM impostate sul progetto chiamato myproject.

    • Important per trovare le associazioni di criteri IAM che contengono Important come parola in uno qualsiasi dei campi disponibili per la ricerca (ad eccezione di autorizzazioni incluse).

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

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

    • memberTypes:user per trovare associazioni di criteri IAM contenenti il tipo di entità user.

  • ASSET_TYPE: facoltativo. Un elenco separato da virgole di tipi di asset disponibili per la ricerca a cui sono associati i criteri IAM. Se è vuoto, Cloud Asset Inventory esamina i criteri IAM associati a tutti i tipi di asset disponibili per la ricerca. Espressioni regolari sono supportati. Se l'espressione regolare non corrisponde a nessun asset supportato viene restituito un errore INVALID_ARGUMENT.

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

    • resource

    • assetType

    • project

    Tutti gli altri campi come i campi ripetuti (ad es. folders) e I campi non primitivi (ad esempio policy) non sono supportati.

Per scoprire di più su come eseguire ricerche nei criteri IAM, consulta Ricerca dei criteri IAM.

Esportazione di uno snapshot della risorsa in Cloud Storage

Per esportare tutti i metadati della risorsa in una dato un timestamp a un file in un bucket Cloud Storage, completa quanto segue passaggi.

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

  2. Per esportare i metadati delle risorse nel progetto, esegui il seguente comando. Questo archivia lo snapshot esportato in un file 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"
    

    Fornisci i seguenti valori:

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

    • BILLING_PROJECT_ID: facoltativo. L'ID del progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito con autorizzazione scrivere nel bucket Cloud Storage. Non è obbligatorio se hai è già passato al progetto di fatturazione con gcloud config set project. Scopri di più sui progetti di fatturazione.

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

    • SNAPSHOT_TIME: facoltativo. L'ora in cui vuoi acquisire uno snapshot dei tuoi asset. Il valore deve corrispondere a l'ora corrente o un orario che non sia più di 35 giorni nel passato. Quando non è fornito, viene acquisita un'istantanea all'ora corrente. Per informazioni su formati di data e ora, 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"
    

    Fornisci i seguenti valori:

    • FOLDER_ID: l'ID della cartella di cui e i metadati che desideri esportare.

      Come trovare l'ID di una cartella Google Cloud

      Console

      Per trovare l'ID di una cartella Google Cloud:

      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 e seleziona la tua organizzazione.
      4. Cerca il nome della cartella. L'ID cartella viene visualizzato accanto al nome della cartella.

      Interfaccia a riga di comando gcloud

      Puoi recuperare un ID cartella Google Cloud 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 di 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 che ha l'autorizzazione per scrivere nel bucket Cloud Storage. Non è obbligatorio se hai è già passato al progetto di fatturazione con gcloud config set project. Scopri di più sui progetti di fatturazione.

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

    • SNAPSHOT_TIME: facoltativo. L'ora in cui vuoi acquisire uno snapshot dei tuoi asset. Il valore deve essere la data e l'ora corrente o una data e un'ora non precedenti a più di 35 giorni. Quando non è fornita, viene acquisita un'istantanea all'ora corrente. Per informazioni sui formati di data e ora, consulta Argomento gcloud 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 l'ID organizzazione Google Cloud

      Console

      Per trovare un ID organizzazione Google Cloud, completa i seguenti passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del commutatore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da e seleziona la tua organizzazione.
      4. Fai clic sulla scheda Tutti. L'ID organizzazione viene 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 del progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito con autorizzazione scrivere nel bucket Cloud Storage. Non è obbligatorio se hai è già passato al progetto di fatturazione con gcloud config set project. Scopri di più sui progetti di fatturazione.

    • CONTENT_TYPE: facoltativo. Il tipo di contenuti la risorsa da esportare. Se non viene specificato alcun tipo di contenuto, viene utilizzato solo l'asset che viene restituito. Scopri di più sui tipi di contenuti.

    • SNAPSHOT_TIME: facoltativo. L'ora in cui vuoi acquisire uno snapshot dei tuoi asset. Il valore deve essere la data e l'ora corrente o una data e un'ora non precedenti a 35 giorni. Quando non è fornita, viene acquisita un'istantanea all'ora corrente. Per informazioni sui formati di data e ora, consulta Argomento gcloud datetimes.

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

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

  3. (Facoltativo) Per controllare lo stato dell'esportazione, esegui il seguente comando. Viene visualizzato nell'interfaccia a riga di comando gcloud dopo l'esecuzione del comando di esportazione.

    gcloud asset operations describe OPERATION_PATH
    

Visualizzare l'istantanea asset

Per visualizzare lo snapshot della risorsa dopo averlo esportato in Cloud Storage, completa i seguenti passaggi.

  1. Vai alla pagina Bucket in 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