Vorhandene Ressourcen im Bulk importieren und exportieren Google Cloud
Auf dieser Seite wird der config-connector bulk-export Befehl beschrieben und wie Sie damit Ressourcen in Config Connector-YAML-Dateien
exportieren Google Cloud , 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 config-connector kann 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 siehe Unterstützte Asset-Typen.
Beschränkungen
Nicht alle Ressourcen unterstützen den Befehl bulk-export. Eine Liste der unterstützten Ressourcen finden Sie unter config-connector print-resources.
Hinweis
Wenn Sie das
config-connectorTool für den direkten Export aus Cloud Asset Inventory verwenden möchten, aktivieren Sie die Cloud Asset Inventory API im Projekt Ihrer Google Cloud Identität mitgcloud.gcloud services enable cloudasset.googleapis.com
Beispiel für den Bulk-Export
In diesem Beispiel erstellen Sie mit der Google Cloud CLI ein PubSubTopic und importieren es dann in den Config Connector.
Erstellen Sie mit der Google Cloud CLI ein Thema namens
sample-topic:gcloud pubsub topics create sample-topicSie erhalten dann eine Bestätigung, dass das Thema erstellt wurde:
Created topic [projects/PROJECT_ID/topics/sample-topic].In der Ausgabe wird
PROJECT_IDdurch Ihr Google Cloud Projekt ersetzt.Rufen Sie den Ressourcennamen des Themas ab und speichern Sie ihn mit dem folgenden Befehl in einer Umgebungsvariablen: Google Cloud
TOPIC_RESOURCE_NAME=$(gcloud pubsub topics describe sample-topic --format "value(name)")Zum Identifizieren von Objekten verwendet das
config-connector-Tool JSON-Strukturen von Cloud Asset Inventory. Speichern Sie die JSON-Struktur des Themen-Assets in einer Umgebungsvariablen: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-exportDie 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_IDdurch Ihr Google Cloud Projekt ersetzt.Sie 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_NAMESPACEErsetzen 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 describeverwaltet:kubectl describe pubsubtopic sample-topic --namespace CC_NAMESPACEErsetzen Sie
CC_NAMESPACEdurch 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 Google Cloud
Ressourcenhierarchie 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 --storage-key Parameter nicht angeben, erstellt config-connector
bulk-export in Ihrem Namen einen temporären Cloud Storage-Bucket. Der
Bucket wird am standardmäßigen Standort für Speicher-Buckets erstellt: der US
Multiregion. 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
outputangegebene Datei ist vorhanden und ist eineregular-Datei. - Die durch
outputangegebene Datei ist nicht vorhanden, aber das durchoutputdargestellte ü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/
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 Ziel-Cloud Storage-Bucket für den Export.--project: Google Cloud Projekt-ID für den Export--folder: Google Cloud Ordner-ID für den Export--organization: Google Cloud Organisations-ID für den Export--oauth2-token: Ein OAuth 2.0-Token als Google Cloud Identität. Standardmäßig verwendetconfig-connectordie Google Cloud CLI-Anmeldedaten.--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),policymemberodernone.--filter-deleted-iam-members: Gibt an, ob gelöschte IAM-Hauptkonten herausgefiltert werden sollen. Optionen sindtrueoderfalse. Der Standardwert istfalse.--verbose: Aktiviert die ausführliche Protokollierung.
Nächste Schritte
- Erfahren Sie, wie Config Connector vorhandene Google Cloud Ressourcenabruft.
- Erfahren Sie mehr zu Cloud Asset Inventory und zum Exportieren von Assets nach Cloud Storage.
- Erfahren Sie mehr über die von Config Connector unterstützten Ressourcen.