Vorhandene Google Cloud-Ressourcen im Bulk importieren und exportieren
Auf dieser Seite wird der config-connector bulk-export
-Befehl beschrieben und wie Sie damit Google Cloud-Ressourcen in Config Connector-YAML-Dateien exportieren, um diese in Config Connector zu importieren.
config-connector bulk-export
verwendet die Exportfunktion von Cloud Asset Inventory, um vorhandene Google Cloud-Ressourcen zu ermitteln. Sie können einen Cloud Asset Inventory-Export bereitstellen oder mit config-connector
den Export in Ihrem Namen ausführen.
Cloud Asset Inventory exportiert JSON-Strukturen. Jede Struktur enthält den Namen der Ressource, ihren Asset Inventory-Typ sowie ihre Ancestor-Ressourcen: Projekte, Ordner und Organisation. Informationen zu den von Asset Inventory unterstützten Typen finden Sie unter Unterstützte Asset-Typen.
Hinweis
Wenn Sie das
config-connector
-Tool für den direkten Export aus Cloud Asset Inventory verwenden möchten, aktivieren Sie die Cloud Asset Inventory API im Projekt Ihrer Google Cloud Identity mitgcloud
.gcloud services enable cloudasset.googleapis.com
Beispiel für einen Bulk-Export
In diesem Beispiel erstellen Sie ein PubSubTopic mit der Google Cloud CLI und in Config Connector importieren.
Erstellen Sie mit der Google Cloud CLI ein Thema namens
sample-topic
:gcloud pubsub topics create sample-topic
Sie erhalten dann eine Bestätigung, dass das Thema erstellt wurde:
Created topic [projects/PROJECT_ID/topics/sample-topic].
In der Ausgabe wird
PROJECT_ID
durch Ihren Google Cloud-ProjektRufen Sie den Google Cloud-Ressourcennamen des Themas ab und speichern Sie ihn mit dem folgenden Befehl in einer Umgebungsvariablen:
TOPIC_RESOURCE_NAME=$(gcloud pubsub topics describe sample-topic --format "value(name)")
Zum Identifizieren von Objekten verwendet das
config-connector
-Tool das Cloud Asset Inventory-JSON Strukturen. JSON-Struktur des Themen-Assets in einer Umgebung speichern Variable:TOPIC_ASSET='{"name":"//pubsub.googleapis.com/'"${TOPIC_RESOURCE_NAME}"'","asset_type":"pubsub.googleapis.com/Topic"}'
Übergeben Sie das Asset mit dem folgenden Befehl an
config-connector bulk-export
:echo ${TOPIC_ASSET} | config-connector bulk-export
Die Ausgabe ist eine Config Connector-Ressource im YAML-Format:
--- apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: annotations: cnrm.cloud.google.com/project-id: PROJECT_ID name: sample-topic ...
In der Ausgabe wird
PROJECT_ID
durch Ihren Google Cloud-ProjektSie können diese Ressource mit
kubectl apply -f -
an Config Connector übergeben. Führen Sie den folgenden Befehl aus, um die Ressource direkt zu übergeben:echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl apply -f - --namespace CC_NAMESPACE
Ersetzen Sie CC_NAMESPACE durch den Namespace, von dem aus Config Connector Ressourcen verwaltet.
Config Connector ruft die Ressource ab.
Prüfen Sie, ob Config Connector die Ressource mit
kubectl describe
verwaltet:kubectl describe pubsubtopic sample-topic --namespace CC_NAMESPACE
Ersetzen Sie
CC_NAMESPACE
durch den Namespace, von dem aus Config Connector Ressourcen verwaltet.
Bereinigen
Sie können Ihr PubSubTopic mit config-connector bulk-export
und kubectl delete
löschen:
echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl delete -f - --namespace CC_NAMESPACE
Ersetzen Sie CC_NAMESPACE
durch den Namespace, von dem aus Config Connector Ressourcen verwaltet.
Zu importierende Ressourcen ermitteln
Beim Importieren von Ressourcen können Sie einen Cloud Asset Inventory-Export durchführen und die Ergebnisse an config-connector bulk-export
senden oder config-connector bulk-export
kann einen Export in Ihrem Namen ausführen.
Aus einem Cloud Asset Inventory-Export importieren
Sie können ein Asset Inventory-Export bereitstellen, indem Sie einen Pfad zu einer lokalen Datei angeben, die den Export enthält, oder die Ergebnisse eines Exports an config-connector
in STDIN weiterleiten.
Aus einer lokalen Datei importieren
Sie können einen Asset Inventory-Export in config-connector bulk-export
bereitstellen, indem Sie eine lokale Datei mit dem Parameter --input
verwenden.
config-connector bulk-export --input ASSET_INVENTORY_EXPORT
Ersetzen Sie ASSET_INVENTORY_EXPORT
durch den Dateinamen Ihres Cloud Asset Inventory-Exports.
Aus STDIN importieren
Um einen Asset Inventory-Export auf STDIN bereitzustellen, leiten Sie die Ergebnisse des Exports an config-connector bulk-export
weiter. Wenn sich Ihr Export beispielsweise in einer lokalen Datei namens export.json
befindet, senden Sie den Inhalt der Datei an config-connector bulk-export
, ohne einen Exportparameter anzugeben:
cat export.json | config-connector bulk-export
Asset Inventory-Exports nach STDIN filtern
Zum Filtern eines Asset Inventory-Exports können Sie die Ergebnisse mit dem jq
-Tool an config-connector bulk-export
senden. Wenn Sie beispielsweise nur PubSubTopic-Assets aus der Datei EXPORT_FILE importieren möchten, führen Sie folgenden Befehl aus:
cat EXPORT_FILE | jq '. | select( .asset_type == "pubsub.googleapis.com/Topic" )' | config-connector bulk-export
Inventar mit dem Config Connector exportieren
Das config-connector bulk-export
-Tool kann Ressourcen aus einer Ressourcenhierarchie von Google Cloud exportieren.
Ihr Projekt exportieren
Um alle Ressourcen aus Ihrem Projekt zu exportieren, verwenden Sie den Parameter --project
:
config-connector bulk-export --project PROJECT_ID
Ersetzen Sie PROJECT_ID
durch Ihr Google Cloud-Projekt.
Ordner exportieren
Zum Exportieren aller Ressourcen aus einem Ordner verwenden Sie den Parameter --folder
:
config-connector bulk-export --folder FOLDER_NUMBER
Ersetzen Sie FOLDER_NUMBER
durch Ihre Google Cloud-Ordnernummer.
Organisation exportieren
Zum Exportieren aller Ressourcen aus Ihrer Organisation verwenden Sie den Parameter --organization
:
config-connector bulk-export --organization ORGANIZATION_ID
Ersetzen Sie ORGANIZATION_ID
durch Ihre Google Cloud-Organisations-ID.
Cloud Storage-Speicherort
Der Ausgabespeicherort von Asset Inventory ist ein Cloud Storage-URI. Wenn config-connector bulk-export
einen Export ausführt, wird dafür ein Cloud Storage-Bucket verwendet. Standardmäßig erstellt config-connector bulk-export
einen temporären Bucket. Sie können auch den Bucket-Namen angeben.
Temporärer Cloud Storage-Bucket
Wenn Sie den Parameter --storage-key
nicht angeben, erstellt config-connector
bulk-export
automatisch einen temporären Cloud Storage-Bucket. Der Bucket wird am Standardspeicherort für Speicher-Buckets erstellt, der Multi-Region US
. Der Bucket wird gelöscht, wenn
der Export abgeschlossen ist.
Temporären Bucket festlegen
Zur Festlegung eines Buckets verwenden Sie einen Cloud Storage-URI mit dem Parameter storage-key
. Wenn der URI nur der Name des Buckets ist, wird ein Name für das Exportspeicherobjekt generiert. Wenn der URI ein vollständiger Pfad zu einem Speicherobjekt ist, wird der vollständige Pfad verwendet.
config-connector bulk-export --storage-key gs://BUCKET_NAME
Ausgabe
Die Ausgabe des Befehls config-connector bulk-export
ist Config Connector-Ressourcen im YAML-Format. Die YAML-Datei wird standardmäßig in STDOUT geschrieben. Mit der Option output
können Sie die Ausgabe von Ressourcen an Dateien weiterleiten.
Ausgabe in eine einzelne Datei
Wenn Sie den Parameter --output
festlegen, schreibt config-connector bulk-export
die Ergebnisse in eine einzelne Datei, wenn eine der folgenden Bedingungen zutrifft:
- Die durch
output
angegebene Datei ist vorhanden und ist eineregular
-Datei. - Die durch
output
angegebene Datei ist nicht vorhanden, aber das durchoutput
dargestellte übergeordnete Verzeichnis ist vorhanden.
Ausgabe in ein Verzeichnis
config-connector
schreibt die Ergebnisse in mehrere Dateien, wenn der Parameter --output
ein Verzeichnis ist, das mit /
endet. config-connector bulk-export
erstellt eine Datei pro Ressource und die Dateinamen entsprechen den Ressourcennamen.
config-connector bulk-export --project PROJECT_ID --on-error continue --output OUTPUT_DIRECTORY/
Ersetzen Sie PROJECT_ID
durch Ihr Google Cloud-Projekt.
Führen Sie beispielsweise den folgenden Befehl aus, um Assets aus dem Projekt my-project
in das Verzeichnis sample
auszugeben:
config-connector bulk-export --project my-project --on-error continue --output sample/
Unterstützte Ressourcen
Mit dem folgenden Befehl können Sie die Liste der Ressourcen für das config-connector
-Tool zusammen mit den Formaten für Ressourcennamen ausgeben:
config-connector print-resources
Befehlszeilen-Optionen
Der Befehl config-connector bulk-export
bietet folgende Optionen:
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
: Eingabedatei für Cloud Asset Inventory.--output
: Ein optionaler Ausgabedateipfad, der die Standardausgabe deaktiviert. Bei einer Datei enthält das Ergebnis die gesamte Befehlsausgabe. Bei einem Verzeichnis enthält das Verzeichnis eine neue Datei für jede Ressource in der Ausgabe.--storage-key
: Temporärer Cloud Storage-Ziel-Bucket für den Export.--project
: ID des zu exportierenden Google Cloud-Projekts.--folder
: ID des zu exportierenden Google Cloud-Ordners.--organization
: ID der Google Cloud-Organisation, die exportiert werden soll.--oauth2-token
: Ein OAUTH2-Token als Google Cloud-Identität. Standardmäßig verwendetconfig-connector
die Google Cloud CLI-Standardanmeldedaten.--on-error
: Steuert das Verhalten, wenn ein nicht behebbarer Fehler auftritt. Mögliche Optionen sind "continue", "halt" oder "ignore".halt
: Beendet die Ausführung bei jedem Fehler (Standard).continue
: Setzt die Verarbeitung der Ressourcen fort und gibt Fehler in STDERR aus.ignore
: Setzt die Verarbeitung der Ressourcen fort und gibt keine Fehler aus.
--iam-format
: Gibt den Typ der IAM-Ressourcen an, die bei Ihrem Export ausgegeben werden. Verfügbare Optionen sindpolicy
(Standard),policymember
odernone
.--filter-deleted-iam-members
: Gibt an, ob gelöschte IAM-Hauptkonten herausgefiltert werden. Optionen sindtrue
oderfalse
. Der Standardwert istfalse
.--verbose
: Aktiviert die ausführliche Protokollierung.
Nächste Schritte
- Erfahren Sie, wie Config Connector vorhandene Google Cloud-Ressourcen abruft.
- Erfahren Sie mehr zu Cloud Asset Inventory und zum Exportieren von Assets nach Cloud Storage.
- Weitere Informationen zu den von Config Connector unterstützten Ressourcen