Esportare i metadati degli asset in Cloud Storage

Questo documento mostra come esportare i metadati delle risorse della tua organizzazione, cartella o progetto in un bucket Cloud Storage.

Prima di iniziare

  1. Abilita l'API Cloud Asset Inventory nel progetto da cui esegui i comandi Cloud Asset Inventory.

    Abilita l'API Cloud Asset Inventory

  2. 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.

  3. Crea un bucket Cloud Storage in cui esportare i dati, se non ne hai già uno.

Limitazioni

  • I bucket Cloud Storage criptati con chiavi Cloud Key Management Service (Cloud KMS) personalizzate non sono supportati.

  • Il bucket Cloud Storage non può avere criteri di conservazione impostati.

  • Durante l'esportazione, l'operazione potrebbe creare file temporanei nella cartella di output. Non rimuovere questi file temporanei mentre l'operazione è in corso. Al termine dell'operazione, i file temporanei vengono rimossi automaticamente.

  • Il tipo di contenuti ACCESS_POLICY può essere esportato solo a livello di organizzazione.

  • Se il file in cui stai eseguendo l'esportazione esiste già ed è in fase di esportazione, viene restituito un errore 400.

  • Per testare le autorizzazioni, Cloud Asset Inventory crea un file vuoto prima di esportare i dati, che invia un evento trigger Cloud Storage aggiuntivo di google.cloud.storage.object.v1.finalized.

Esportare uno snapshot di un asset in Cloud Storage

gcloud

gcloud asset export \
    --SCOPE \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --content-type=CONTENT_TYPE \
    --relationship-types=RELATIONSHIP_TYPE_1,RELATIONSHIP_TYPE_2,... \
    --snapshot-time="SNAPSHOT_TIME" \
    --OUTPUT_TYPE

Fornisci i seguenti valori:

  • SCOPE: utilizza uno dei seguenti valori:

    • project=PROJECT_ID, dove PROJECT_ID è l'ID del progetto che contiene i metadati dell'asset che vuoi esportare.
    • folder=FOLDER_ID, dove FOLDER_ID è l'ID della cartella che contiene i metadati degli asset che vuoi esportare.

      Come trovare l'ID di una Google Cloud cartella

      ConsoleGoogle Cloud

      Per trovare l'ID di una Google Cloud cartella:

      1. Vai alla console Google Cloud .

        Vai alla Google Cloud console

      2. Fai clic sulla casella di elenco del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco.
      4. 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
    • organization=ORGANIZATION_ID, dove ORGANIZATION_ID è l'ID dell'organizzazione che contiene i metadati delle risorse che vuoi esportare.

      Come trovare l'ID di un' Google Cloud organizzazione

      ConsoleGoogle Cloud

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

      1. Vai alla console Google Cloud .

        Vai alla Google Cloud console

      2. Fai clic sulla casella di elenco del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco.
      4. 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))"
  • BILLING_PROJECT_ID: (Facoltativo) L'ID progetto in cui si trova il service agent Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i tuoi set di dati e tabelle BigQuery. Scopri di più sull'impostazione del progetto di fatturazione.

  • 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 errore INVALID_ARGUMENT. Se --asset-types non è specificato, vengono restituiti tutti i tipi di asset.
  • CONTENT_TYPE: (Facoltativo) Il tipo di contenuti dei metadati che vuoi recuperare. Quando --content-type non è specificato, vengono restituite solo informazioni di base, come i nomi degli asset, l'ultima volta che gli asset sono stati aggiornati e i progetti, le cartelle e le organizzazioni a cui appartengono.
  • RELATIONSHIP_TYPE_#: (Facoltativo) Richiede l'accesso al livello Premium o Enterprise di Security Command Center o a Gemini Cloud Assist. Un elenco separato da virgole di tipi di relazione tra asset che vuoi recuperare. Affinché questa operazione funzioni, devi impostare CONTENT_TYPE su RELATIONSHIP.
  • SNAPSHOT_TIME: (Facoltativo) L'ora in cui vuoi acquisire uno snapshot dei tuoi asset, nel formato gcloud topic datetime. Il valore non deve essere precedente a 35 giorni. Quando --snapshot-time non è specificato, viene creato uno snapshot all'ora corrente.
  • OUTPUT_TYPE: utilizza uno dei seguenti valori:

    • --output-path="gs://BUCKET_NAME/FILE_NAME" per scrivere l'output in un file, dove:

      • BUCKET_NAME è il nome del bucket Cloud Storage in cui scrivere.
      • FILE_NAME è il file in cui scrivere nel tuo bucket Cloud Storage.
    • --output-path-prefix="gs://BUCKET_NAME/FOLDER_NAME"per scrivere l'output in una cartella, dove:

      • BUCKET_NAME è il nome del bucket Cloud Storage in cui scrivere.
      • FOLDER_NAME è la cartella in cui scrivere nel tuo bucket Cloud Storage. L'output è suddiviso in sottocartelle denominate in base ai tipi di asset. Le sottocartelle non devono già esistere nella cartella specificata.

Per tutte le opzioni, consulta il riferimento gcloud CLI.

Esempio

Esegui il comando seguente per esportare i metadati di resource così com'erano il 30 gennaio 2024 nel progetto my-project nel file my-file.txt nelbucket Cloud Storagege my-bucket.

gcloud asset export \
    --project=my-project \
    --billing-project=my-project \
    --content-type=resource \
    --snapshot-time="2024-01-30" \
    --output-path="gs://my-bucket/my-file.txt"

Esempio di risposta

Export in progress for root asset [projects/my-project].
Use [gcloud asset operations describe projects/000000000000/operations/ExportAssets/RESOURCE/00000000000000000000000000000000] to check the status of the operation.

REST

Metodo HTTP e URL:

POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:exportAssets

Intestazioni:

X-Goog-User-Project: BILLING_PROJECT_ID

Corpo JSON della richiesta:

{
  "assetTypes": [
    "ASSET_TYPE_1",
    "ASSET_TYPE_2",
    "..."
  ],
  "contentType": "CONTENT_TYPE",
  "relationshipTypes": [
    "RELATIONSHIP_TYPE_1",
    "RELATIONSHIP_TYPE_2",
    "..."
  ],
  "readTime": "SNAPSHOT_TIME",
  "outputConfig": {
    "gcsDestination": {
      OUTPUT_TYPE
    }
  }
}

Fornisci i seguenti valori:

  • SCOPE_PATH: utilizza uno dei seguenti valori:

    I valori consentiti sono:

    • projects/PROJECT_ID, dove PROJECT_ID è l'ID del progetto che contiene i metadati dell'asset che vuoi esportare.
    • projects/PROJECT_NUMBER, dove PROJECT_NUMBER è il numero del progetto che contiene i metadati dell'asset che vuoi esportare.

      Come trovare un Google Cloud numero di progetto

      ConsoleGoogle Cloud

      Per trovare un numero di progetto, completa i seguenti passaggi: Google Cloud

      1. Vai alla pagina Benvenuto nella console Google Cloud .

        Vai a Benvenuto

      2. Fai clic sulla casella di elenco del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco e poi cerca il nome del tuo progetto. Il nome, il numero e l'ID progetto sono 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, dove FOLDER_ID è l'ID della cartella che contiene i metadati degli asset che vuoi esportare.

      Come trovare l'ID di una Google Cloud cartella

      ConsoleGoogle Cloud

      Per trovare l'ID di una Google Cloud cartella:

      1. Vai alla console Google Cloud .

        Vai alla Google Cloud console

      2. Fai clic sulla casella di elenco del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco.
      4. 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, dove ORGANIZATION_ID è l'ID dell'organizzazione che contiene i metadati delle risorse che vuoi esportare.

      Come trovare l'ID di un' Google Cloud organizzazione

      ConsoleGoogle Cloud

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

      1. Vai alla console Google Cloud .

        Vai alla Google Cloud console

      2. Fai clic sulla casella di elenco del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco.
      4. 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))"
  • BILLING_PROJECT_ID: l'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i tuoi set di dati e tabelle BigQuery. Scopri di più sull'impostazione del progetto di fatturazione.

  • 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 errore INVALID_ARGUMENT. Se assetTypes non è specificato, vengono restituiti tutti i tipi di asset.
  • CONTENT_TYPE: (Facoltativo) Il tipo di contenuti dei metadati che vuoi recuperare. Quando contentType non è specificato, vengono restituite solo informazioni di base, come i nomi degli asset, l'ultima volta che gli asset sono stati aggiornati e i progetti, le cartelle e le organizzazioni a cui appartengono.
  • RELATIONSHIP_TYPE_#: (Facoltativo) Richiede l'accesso al livello Premium o Enterprise di Security Command Center o a Gemini Cloud Assist. Un elenco separato da virgole di tipi di relazione tra asset che vuoi recuperare. Affinché questa operazione funzioni, devi impostare CONTENT_TYPE su RELATIONSHIP.
  • SNAPSHOT_TIME: (Facoltativo) L'ora in cui vuoi acquisire uno snapshot dei tuoi asset, in formato RFC 3339. Il valore non deve essere precedente a 35 giorni. Se readTime non è specificato, viene creato uno snapshot all'ora corrente.
  • OUTPUT_TYPE: utilizza uno dei seguenti valori:

    • "uri": "gs://BUCKET_NAME/FILE_NAME" per scrivere l'output in un file, dove:

      • BUCKET_NAME è il nome del bucket Cloud Storage in cui scrivere.
      • FILE_NAME è il file in cui scrivere nel tuo bucket Cloud Storage.
    • "uriPrefix": "gs://BUCKET_NAME/FOLDER_NAME"per scrivere l'output in una cartella, dove:

      • BUCKET_NAME è il nome del bucket Cloud Storage in cui scrivere.
      • FOLDER_NAME è la cartella in cui scrivere nel tuo bucket Cloud Storage. L'output è suddiviso in sottocartelle denominate in base ai tipi di asset. Le sottocartelle non devono esistere già nella cartella specificata.

Consulta il riferimento REST per tutte le opzioni.

Esempi di comandi

Esegui uno dei seguenti comandi per esportare i metadati di resource così com'erano il 30 gennaio 2024 nel progetto my-project, nel file my-file.txt nel bucket Cloud Storage my-bucket.

curl (Linux, macOS o Cloud Shell)