Importazione ed esportazione collettiva di risorse Google Cloud esistenti
Questa pagina descrive il comando config-connector bulk-export e come utilizzarlo per
esportare Google Cloud risorse in file YAML di Config Connector
che puoi importare successivamente in Config Connector.
config-connector bulk-export utilizza la funzionalità Esporta di Cloud Asset Inventory per rilevare le risorse Google Cloud esistenti. Puoi fornire un'esportazione di Cloud Asset Inventory o config-connector può eseguire l'esportazione per tuo conto.
Cloud Asset Inventory esporta strutture JSON. Ogni struttura contiene il nome della risorsa, il relativo tipo di inventario delle risorse e le risorse predecessore: progetti, cartelle e organizzazione. Per scoprire i tipi supportati da Asset Inventory, consulta Tipi di asset supportati.
Limitazioni
Non tutte le risorse supportano il comando bulk-export. Per visualizzare un elenco delle risorse supportate, esegui config-connector print-resources.
Prima di iniziare
Se vuoi utilizzare lo strumento
config-connectorper esportare direttamente da Cloud Asset Inventory, abilita l'API Cloud Asset Inventory nel progetto Google Cloud di Identity congcloud.gcloud services enable cloudasset.googleapis.com
Esempio di esportazione collettiva
In questo esempio, crei un PubSubTopic con Google Cloud CLI e poi lo importi in Config Connector.
Crea un argomento denominato
sample-topiccon Google Cloud CLI:gcloud pubsub topics create sample-topicRiceverai una conferma della creazione dell'argomento.
Created topic [projects/PROJECT_ID/topics/sample-topic].Nell'output,
PROJECT_IDviene sostituito con il tuo progettoGoogle Cloud .Recupera il nome della risorsa Google Cloud dell'argomento e salvalo in una variabile di ambiente con il comando seguente:
TOPIC_RESOURCE_NAME=$(gcloud pubsub topics describe sample-topic --format "value(name)")Per identificare gli oggetti, lo strumento
config-connectorutilizza strutture JSON di Cloud Asset Inventory. Salva la struttura JSON dell'asset dell'argomento in una variabile di ambiente:TOPIC_ASSET='{"name":"//pubsub.googleapis.com/'"${TOPIC_RESOURCE_NAME}"'","asset_type":"pubsub.googleapis.com/Topic"}'Trasferisci l'asset in
config-connector bulk-exporteseguendo questo comando:echo ${TOPIC_ASSET} | config-connector bulk-exportL'output è una risorsa Config Connector in formato YAML.
--- apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: annotations: cnrm.cloud.google.com/project-id: PROJECT_ID name: sample-topic ...Nell'output,
PROJECT_IDviene sostituito con il tuo progettoGoogle Cloud .Puoi passare questa risorsa a Config Connector con
kubectl apply -f -. Per passare la risorsa direttamente, esegui questo comando:echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl apply -f - --namespace CC_NAMESPACESostituisci CC_NAMESPACE con lo spazio dei nomi da cui Config Connector gestisce le risorse.
Config Connector acquisisce la risorsa.
Verifica che Config Connector gestisca la risorsa con
kubectl describe:kubectl describe pubsubtopic sample-topic --namespace CC_NAMESPACESostituisci
CC_NAMESPACEcon lo spazio dei nomi da cui Config Connector gestisce le risorse.
Pulizia
Puoi eliminare il tuo PubSubTopic con config-connector bulk-export e
kubectl delete.
echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl delete -f - --namespace CC_NAMESPACE
Sostituisci CC_NAMESPACE con lo spazio dei nomi da cui Config Connector
gestisce le risorse.
Individuare le risorse da importare
Quando importi le risorse, puoi eseguire un'esportazione di Cloud Asset Inventory e fornire i risultati a config-connector bulk-export o chiedere a config-connector bulk-export di eseguirne una per tuo conto.
Importazione da un'esportazione di Cloud Asset Inventory
Puoi fornire un'esportazione dell'inventario delle risorse fornendo un percorso a un file locale
contenente l'esportazione o reindirizzando i risultati di un'esportazione a config-connector
su STDIN.
Importare da un file locale
Puoi fornire un'esportazione dell'inventario delle risorse a config-connector bulk-export utilizzando un file locale con il parametro --input.
config-connector bulk-export --input ASSET_INVENTORY_EXPORT
Sostituisci ASSET_INVENTORY_EXPORT con il nome file dell'esportazione di Cloud Asset Inventory.
Importazione da STDIN
Per fornire un'esportazione dell'inventario delle risorse su STDIN, reindirizza i risultati di un'esportazione a
config-connector bulk-export. Ad esempio, se l'esportazione si trova in un file locale denominato
export.json, invia i contenuti del file a config-connector bulk-export senza
fornire nessuno dei parametri di esportazione.
cat export.json | config-connector bulk-export
Filtrare un'esportazione dell'inventario degli asset su STDIN
Per filtrare un'esportazione dell'inventario degli asset, puoi utilizzare lo strumento
jq e la pipe per inserire i risultati in config-connector bulk-export. Ad esempio, se vuoi importare solo
asset PubSubTopic dal file EXPORT_FILE, esegui il seguente
comando:
cat EXPORT_FILE | jq '. | select( .asset_type == "pubsub.googleapis.com/Topic" )' | config-connector bulk-export
Esportare un inventario con config-connector
Lo strumento config-connector bulk-export può esportare risorse da una Google Cloud
gerarchia delle risorse.
Esportare il progetto
Per esportare tutte le risorse dal tuo progetto, utilizza il parametro --project.
config-connector bulk-export --project PROJECT_ID
Sostituisci PROJECT_ID con il tuo progetto Google Cloud .
Esportare la cartella
Per esportare tutte le risorse da una cartella, utilizza il parametro --folder.
config-connector bulk-export --folder FOLDER_NUMBER
Sostituisci FOLDER_NUMBER con il numero della tua cartella Google Cloud .
Esportare l'organizzazione
Per esportare tutte le risorse della tua organizzazione, utilizza il parametro --organization.
config-connector bulk-export --organization ORGANIZATION_ID
Sostituisci ORGANIZATION_ID con l' Google Cloud ID organizzazione.
Percorso di Cloud Storage
Il percorso di output dell'esportazione dell'inventario degli asset è un URI Cloud Storage. Quando
config-connector bulk-export esegue un'esportazione, utilizza un
bucket Cloud Storage. Per impostazione predefinita, config-connector bulk-export
crea un bucket temporaneo. Puoi anche specificare il nome del bucket.
Bucket Cloud Storage temporaneo
Se non fornisci il parametro --storage-key, config-connector
bulk-export crea un bucket Cloud Storage temporaneo per tuo conto. Il bucket viene creato nella località predefinita per i bucket di archiviazione: la multi-regione US. Il bucket viene eliminato al termine dell'esportazione.
Specifica di un bucket temporaneo
Per specificare un bucket, utilizza un URI Cloud Storage con il parametro storage-key. Se l'URI è solo il nome del bucket, viene generato un nome
per l'oggetto di archiviazione dell'esportazione. Se l'URI è un percorso completo a un oggetto di archiviazione,
viene utilizzato il percorso completo.
config-connector bulk-export --storage-key gs://BUCKET_NAME
Output
L'output del comando config-connector bulk-export sono
risorse Config Connector in formato YAML. Per impostazione predefinita, il file YAML viene scritto in STDOUT. Puoi indirizzare l'output delle risorse ai file con l'opzione
output.
Output in un unico file
Quando imposti il parametro --output, config-connector bulk-export scrive i risultati in un
unico file se si verifica una delle seguenti condizioni:
- Il file specificato da
outputesiste ed è un fileregular. - Il file specificato da
outputnon esiste e la directory principale rappresentata daoutputesiste.
Output in una directory
config-connector scrive i risultati in più file quando il parametro --output
è una directory che termina con /. config-connector bulk-export crea un file per risorsa e i nomi dei file corrispondono ai nomi delle risorse.
config-connector bulk-export --project PROJECT_ID --on-error continue --output OUTPUT_DIRECTORY/
Sostituisci PROJECT_ID con il tuo progetto Google Cloud .
Ad esempio, per generare asset dal progetto my-project nella directory sample, esegui questo comando:
config-connector bulk-export --project my-project --on-error continue --output sample/
Opzioni della riga di comando
Il comando config-connector bulk-export ha le seguenti opzioni:
config-connector bulk-export
--input FILENAME \
--output FILENAME \
--storage-key gs://BUCKET_NAME \
--project PROJECT_ID \
--folder FOLDER_NUMBER \
--organization ORGANIZATION_ID \
--oauth2-token TOKEN \
--on-error [halt | continue | ignore] \
--iam-format [policy | policymember | none] \
--filter-deleted-iam-members [true | false] \
--verbose
--input: file di input di Cloud Asset Inventory.--output: Un percorso del file di output facoltativo che disattiva l'output standard. Quando un file, il risultato contiene tutto l'output comando; quando una directory, la directory conterrà un nuovo file per ogni risorsa nell'output.--storage-key: Bucket Cloud Storage temporaneo di destinazione per l'esportazione.--project: Google Cloud ID progetto da esportare--folder: Google Cloud ID cartella da esportare--organization: Google Cloud l'ID organizzazione da esportare.--oauth2-token: un token OAUTH2 come identità Google Cloud . Per impostazione predefinita,config-connectorutilizza le credenziali predefinite di Google Cloud CLI.--on-error: controlla il comportamento quando si verifica un errore recuperabile. Le opzioni sono "continua", "interrompi" o "ignora".halt: interrompi l'esecuzione in caso di errore (impostazione predefinita)continue: continua a elaborare le risorse, stampa l'errore su STDERRignore: continua a elaborare le risorse e non stampare l'errore
--iam-format: specifica il tipo di output delle risorse IAM con l'esportazione. Le opzioni sonopolicy(impostazione predefinita),policymemberonone.--filter-deleted-iam-members: specifica se filtrare le entità IAM eliminate. Le opzioni sonotrueofalse. Il valore predefinito èfalse.--verbose: attiva il logging dettagliato.
Passaggi successivi
- Scopri come Config Connector acquisisce le risorse Google Cloud esistenti
- Scopri di più su Cloud Asset Inventory e sull'esportazione di asset in Cloud Storage.
- Scopri di più sulle risorse supportate da Config Connector.