In diesem Dokument wird beschrieben, wie Sie die Asset-Metadaten Ihres Projekts in einen Cloud Storage-Bucket exportieren.
Hinweise
Aktivieren Sie die Cloud Asset Inventory API in dem Projekt, in dem Sie Cloud Asset Inventory-Befehle ausführen.
Prüfen Sie, ob Ihr Konto die richtige Rolle zum Aufrufen der Cloud Asset Inventory API hat. Informationen zu den einzelnen Berechtigungen für die einzelnen Anruftypen finden Sie unter Berechtigungen.
Erstellen Sie einen Cloud Storage-Bucket für den Export, falls noch keiner vorhanden ist.
Beschränkungen
Cloud Storage-Buckets, die mit benutzerdefinierten Cloud Key Management Service-Schlüsseln (Cloud KMS) verschlüsselt sind, werden nicht unterstützt.
Für den Cloud Storage-Bucket darf keine Aufbewahrungsrichtlinie festgelegt sein.
Während des Exports können temporäre Dateien im Ausgabeordner erstellt werden. Entfernen Sie diese temporären Dateien nicht, während der Vorgang ausgeführt wird. Wenn der Vorgang abgeschlossen ist, werden die temporären Dateien automatisch entfernt.
Der Inhaltstyp
ACCESS_POLICY
kann nur auf Organisationsebene exportiert werden.Wenn die Datei, in die Sie exportieren, bereits vorhanden ist und gerade in sie exportiert wird, wird ein
400
-Fehler zurückgegeben.Zum Testen von Berechtigungen erstellt Cloud Asset Inventory vor dem Exportieren der Daten eine leere Datei, wodurch ein zusätzliches Cloud Storage-Triggerereignis vom Typ
google.cloud.storage.object.v1.finalized
gesendet wird.
Asset-Snapshot nach Cloud Storage exportieren
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
Geben Sie folgende Werte an:
-
SCOPE
: Verwenden Sie einen der folgenden Werte:-
project=PROJECT_ID
, wobeiPROJECT_ID
die ID des Projekts ist, das die Asset-Metadaten enthält, die Sie exportieren möchten. -
folder=FOLDER_ID
, wobeiFOLDER_ID
die ID des Ordners mit den Asset-Metadaten ist, die Sie exportieren möchten.ID eines Google Cloud Ordners finden
Google Cloud console
So finden Sie die ID eines Google Cloud -Ordners:
-
Rufen Sie die Google Cloud Console auf.
- Klicken Sie in der Menüleiste auf das Listenfeld Umschalter.
- Wählen Sie Ihre Organisation aus dem Listenfeld aus.
- Suchen Sie nach dem Namen des Ordners. Die Ordner-ID wird neben dem Ordnernamen angezeigt.
gcloud-CLI
Sie können die ID eines Google Cloud -Ordners auf Organisationsebene mit dem folgenden Befehl abrufen:
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)"
Dabei ist TOP_LEVEL_FOLDER_NAME eine teilweise oder vollständige Stringübereinstimmung für den Namen des Ordners. Entfernen Sie das Flag
--format
, um weitere Informationen zu den gefundenen Ordnern zu sehen.Der vorherige Befehl gibt nicht die IDs von Unterordnern in Ordnern zurück. Führen Sie dazu den folgenden Befehl mit der ID eines Ordners der obersten Ebene aus:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organization=ORGANIZATION_ID
, wobeiORGANIZATION_ID
die ID der Organisation ist, die die Asset-Metadaten enthält, die Sie exportieren möchten.ID einer Google Cloud Organisation finden
Google Cloud console
So finden Sie die ID einer Google Cloud -Organisation:
-
Rufen Sie die Google Cloud Console auf.
- Klicken Sie in der Menüleiste auf das Listenfeld Umschalter.
- Wählen Sie Ihre Organisation aus dem Listenfeld aus.
- Klicken Sie auf den Tab Alle. Die Organisations-ID wird neben dem Namen der Organisation angezeigt.
gcloud-CLI
Sie können die ID einer Google Cloud Organisation mit dem folgenden Befehl abrufen:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: Optional. Die Projekt-ID des standardmäßigen Cloud Asset Inventory-Dienstkontos, das Berechtigungen zum Verwalten Ihrer BigQuery-Datasets und -Tabellen hat. Weitere Informationen zum Festlegen des Abrechnungsprojekts ASSET_TYPE_#
: Optional. Eine durch Kommas getrennte Liste von durchsuchbaren Asset-Typen. RE2-kompatible reguläre Ausdrücke werden unterstützt. Wenn der reguläre Ausdruck mit keinem unterstützten Asset-Typ übereinstimmt, wird einINVALID_ARGUMENT
-Fehler zurückgegeben. Wenn--asset-types
nicht angegeben ist, werden alle Asset-Typen zurückgegeben.CONTENT_TYPE
: Optional. Der Inhaltstyp der Metadaten, die Sie abrufen möchten. Wenn--content-type
nicht angegeben ist, werden nur grundlegende Informationen zurückgegeben, z. B. Asset-Namen, der Zeitpunkt der letzten Aktualisierung der Assets und die Projekte, Ordner und Organisationen, zu denen sie gehören.-
RELATIONSHIP_TYPE_#
: Optional. Erfordert Zugriff auf die Premium- oder Enterprise-Stufe von Security Command Center oder Gemini Cloud Assist. Eine durch Kommas getrennte Liste der Asset-Beziehungstypen, die Sie abrufen möchten. Sie müssenCONTENT_TYPE
aufRELATIONSHIP
setzen, damit das funktioniert. -
SNAPSHOT_TIME
: Optional. Die Zeit, zu der Sie einen Snapshot Ihrer Assets erstellen möchten, im gcloud-Thema zum Datums-/Uhrzeit-Format. Der Wert darf maximal 35 Tage in der Vergangenheit liegen. Wenn--snapshot-time
nicht angegeben ist, wird ein Snapshot zum aktuellen Zeitpunkt erstellt. -
OUTPUT_TYPE
: Verwenden Sie einen der folgenden Werte:--output-path="gs://BUCKET_NAME/FILE_NAME"
, um die Ausgabe in eine Datei zu schreiben. Dabei gilt:-
BUCKET_NAME
ist der Name des Cloud Storage-Bucket, in den geschrieben werden soll. -
FILE_NAME
ist die Datei, in die in Ihrem Cloud Storage-Bucket geschrieben werden soll.
-
-
--output-path-prefix="gs://BUCKET_NAME/FOLDER_NAME"
, um die Ausgabe in einen Ordner zu schreiben. Dabei gilt:-
BUCKET_NAME
ist der Name des Cloud Storage-Bucket, in den geschrieben werden soll. -
FOLDER_NAME
ist der Ordner, in den in Ihrem Cloud Storage-Bucket geschrieben werden soll. Die Ausgabe ist in Unterordner unterteilt, die nach Asset-Typen benannt sind. Die Unterordner dürfen nicht bereits in dem Ordner vorhanden sein, den Sie angeben.
-
Alle Optionen finden Sie in der Referenz zur gcloud CLI.
Beispiel
Führen Sie den folgenden Befehl aus, um Ihre resource
-Metadaten, wie sie am 30. Januar 2024 im Projekt my-project
waren, in die Datei my-file.txt
im Cloud Storage-Bucket my-bucket
zu exportieren.
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"
Beispielantwort
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
HTTP-Methode und URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:exportAssets
Header:
X-Goog-User-Project: BILLING_PROJECT_ID
JSON-Text anfordern:
{ "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "contentType": "CONTENT_TYPE", "relationshipTypes": [ "RELATIONSHIP_TYPE_1", "RELATIONSHIP_TYPE_2", "..." ], "readTime": "SNAPSHOT_TIME", "outputConfig": { "gcsDestination": { OUTPUT_TYPE } } }
Geben Sie folgende Werte an:
-
SCOPE_PATH
: Verwenden Sie einen der folgenden Werte:Zulässige Werte:
-
projects/PROJECT_ID
, wobeiPROJECT_ID
die ID des Projekts ist, das die Asset-Metadaten enthält, die Sie exportieren möchten. -
projects/PROJECT_NUMBER
, wobeiPROJECT_NUMBER
die Nummer des Projekts ist, das die Asset-Metadaten enthält, die Sie exportieren möchten.Google Cloud Projektnummer finden
Google Cloud console
So finden Sie die Projektnummer eines Google Cloud -Projekts:
-
Rufen Sie in der Google Cloud Console die Seite Willkommen auf.
- Klicken Sie in der Menüleiste auf das Listenfeld Umschalter.
-
Wählen Sie Ihre Organisation aus dem Listenfeld aus und suchen Sie dann nach Ihrem Projektnamen. Der Projektname, die Projektnummer und die Projekt-ID werden in der Nähe der Überschrift Willkommen angezeigt.
Es werden bis zu 4.000 Ressourcen angezeigt. Wenn Sie das gewünschte Projekt nicht sehen, rufen Sie die Seite Ressourcen verwalten auf und filtern Sie die Liste nach dem Namen des Projekts.
gcloud-CLI
Sie können eine Google Cloud Projektnummer mit dem folgenden Befehl abrufen:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, wobeiFOLDER_ID
die ID des Ordners mit den Asset-Metadaten ist, die Sie exportieren möchten.ID eines Google Cloud Ordners finden
Google Cloud console
So finden Sie die ID eines Google Cloud -Ordners:
-
Rufen Sie die Google Cloud Console auf.
- Klicken Sie in der Menüleiste auf das Listenfeld Umschalter.
- Wählen Sie Ihre Organisation aus dem Listenfeld aus.
- Suchen Sie nach dem Namen des Ordners. Die Ordner-ID wird neben dem Ordnernamen angezeigt.
gcloud-CLI
Sie können die ID eines Google Cloud -Ordners auf Organisationsebene mit dem folgenden Befehl abrufen:
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)"
Dabei ist TOP_LEVEL_FOLDER_NAME eine teilweise oder vollständige Stringübereinstimmung für den Namen des Ordners. Entfernen Sie das Flag
--format
, um weitere Informationen zu den gefundenen Ordnern zu sehen.Der vorherige Befehl gibt nicht die IDs von Unterordnern in Ordnern zurück. Führen Sie dazu den folgenden Befehl mit der ID eines Ordners der obersten Ebene aus:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, wobeiORGANIZATION_ID
die ID der Organisation ist, die die Asset-Metadaten enthält, die Sie exportieren möchten.ID einer Google Cloud Organisation finden
Google Cloud console
So finden Sie die ID einer Google Cloud -Organisation:
-
Rufen Sie die Google Cloud Console auf.
- Klicken Sie in der Menüleiste auf das Listenfeld Umschalter.
- Wählen Sie Ihre Organisation aus dem Listenfeld aus.
- Klicken Sie auf den Tab Alle. Die Organisations-ID wird neben dem Namen der Organisation angezeigt.
gcloud-CLI
Sie können die ID einer Google Cloud Organisation mit dem folgenden Befehl abrufen:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: Die Projekt-ID, in der sich der standardmäßige Cloud Asset Inventory-Dienst-Agent befindet, der Berechtigungen zum Verwalten Ihrer BigQuery-Datasets und -Tabellen hat. Weitere Informationen zum Festlegen des Abrechnungsprojekts ASSET_TYPE_#
: Optional. Ein Array von suchbaren Asset-Typen. RE2-kompatible reguläre Ausdrücke werden unterstützt. Wenn der reguläre Ausdruck mit keinem unterstützten Asset-Typ übereinstimmt, wird einINVALID_ARGUMENT
-Fehler zurückgegeben. WennassetTypes
nicht angegeben ist, werden alle Asset-Typen zurückgegeben.CONTENT_TYPE
: Optional. Der Inhaltstyp der Metadaten, die Sie abrufen möchten. WenncontentType
nicht angegeben ist, werden nur grundlegende Informationen zurückgegeben, z. B. Asset-Namen, der Zeitpunkt der letzten Aktualisierung der Assets sowie die Projekte, Ordner und Organisationen, zu denen sie gehören.-
RELATIONSHIP_TYPE_#
: Optional. Erfordert Zugriff auf die Premium- oder Enterprise-Stufe von Security Command Center oder Gemini Cloud Assist. Eine durch Kommas getrennte Liste der Asset-Beziehungstypen, die Sie abrufen möchten. Sie müssenCONTENT_TYPE
aufRELATIONSHIP
setzen, damit das funktioniert. -
SNAPSHOT_TIME
: Optional. Die Zeit, zu der Sie einen Snapshot Ihrer Assets erstellen möchten, im RFC 3339-Format. Der Wert darf maximal 35 Tage in der Vergangenheit liegen. WennreadTime
nicht angegeben ist, wird ein Snapshot zum aktuellen Zeitpunkt erstellt. -
OUTPUT_TYPE
: Verwenden Sie einen der folgenden Werte:"uri": "gs://BUCKET_NAME/FILE_NAME"
, um die Ausgabe in eine Datei zu schreiben. Dabei gilt:-
BUCKET_NAME
ist der Name des Cloud Storage-Bucket, in den geschrieben werden soll. -
FILE_NAME
ist die Datei, in die in Ihrem Cloud Storage-Bucket geschrieben werden soll.
-
-
"uriPrefix": "gs://BUCKET_NAME/FOLDER_NAME"
, um die Ausgabe in einen Ordner zu schreiben. Dabei gilt:-
BUCKET_NAME
ist der Name des Cloud Storage-Bucket, in den geschrieben werden soll. -
FOLDER_NAME
ist der Ordner, in den in Ihrem Cloud Storage-Bucket geschrieben werden soll. Die Ausgabe ist in Unterordner unterteilt, die nach Asset-Typen benannt sind. Die Unterordner dürfen nicht bereits in dem Ordner vorhanden sein, den Sie angeben.
-
Alle Optionen finden Sie in der REST-Referenz.
Beispiele für Befehle
Führen Sie einen der folgenden Befehle aus, um Ihre resource
-Metadaten, wie sie am 30. Januar 2024 im my-project
-Projekt waren, in die Datei my-file.txt
im Cloud Storage-Bucket my-bucket
zu exportieren.
curl (Linux, macOS oder Cloud Shell)
curl -X POST \ -H "X-Goog-User-Project: BILLING_PROJECT_ID" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "contentType": "RESOURCE", "readTime": "2024-01-30T00:00:00Z", "outputConfig": { "gcsDestination": { "uri": "gs://my-bucket/my-file" } } }' \ https://cloudasset.googleapis.com/v1/projects/my-project:exportAssets
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-Goog-User-Project" = "BILLING_PROJECT_ID"; "Authorization" = "Bearer $cred" } $body = @" { "contentType": "RESOURCE", "readTime": "2024-01-30T00:00:00Z", "outputConfig": { "gcsDestination": { "uri": "gs://my-bucket/my-file" } } } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:exportAssets" | Select-Object -Expand Content
Beispielantwort
{ "name": "projects/000000000000/operations/ExportAssets/RESOURCE/00000000000000000000000000000000", "metadata": { "@type": "type.googleapis.com/google.cloud.asset.v1.ExportAssetsRequest", "parent": "projects/000000000000", "readTime": "2024-01-30T00:00:00Z", "contentType": "RESOURCE", "outputConfig": { "gcsDestination": { "uri": "gs://my-bucket/export.txt" } } } }
C#
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Asset Inventory finden Sie unter Cloud Asset Inventory-Clientbibliotheken.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Asset Inventory zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Asset Inventory finden Sie unter Cloud Asset Inventory-Clientbibliotheken.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Asset Inventory zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Asset Inventory finden Sie unter Cloud Asset Inventory-Clientbibliotheken.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Asset Inventory zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Asset Inventory finden Sie unter Cloud Asset Inventory-Clientbibliotheken.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Asset Inventory zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Asset Inventory finden Sie unter Cloud Asset Inventory-Clientbibliotheken.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Asset Inventory zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Asset Inventory finden Sie unter Cloud Asset Inventory-Clientbibliotheken.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Asset Inventory zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Ruby
Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Asset Inventory finden Sie unter Cloud Asset Inventory-Clientbibliotheken.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Asset Inventory zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Status eines Exports prüfen
Exporte dauern eine Weile. Wenn Sie prüfen möchten, ob ein Export abgeschlossen ist, können Sie den Vorgang anhand seiner Vorgangs-ID abfragen.
Auch wenn Ihr Export abgeschlossen ist, kann es sein, dass jemand einen weiteren Export an dasselbe Ziel als separaten Vorgang angefordert hat. Neue Exportanfragen für dasselbe Ziel können gestellt werden, nachdem eine vorherige Anfrage abgeschlossen wurde oder mehr als 15 Minuten vergangen sind. Exportanfragen, die nicht diesen Bedingungen entsprechen, werden von Cloud Asset Inventory abgelehnt.
gcloud
So rufen Sie den Status Ihres Exports auf:
Rufen Sie die
OPERATION_PATH
mit der Vorgangs-ID aus der Antwort auf Ihre Exportanfrage ab. DieOPERATION_PATH
wird in der Antwort auf den Export angezeigt, die so formatiert ist:projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID
Führen Sie zum Prüfen des Exportstatus den folgenden Befehl mit der
OPERATION_PATH
aus:gcloud asset operations describe OPERATION_PATH
REST
So rufen Sie den Status Ihres Exports auf:
Rufen Sie die
OPERATION_PATH
mit der Vorgangs-ID aus der Antwort auf Ihre Exportanfrage ab. DieOPERATION_PATH
wird als Wert des Feldsname
in der Antwort auf den Export angezeigt, die so formatiert ist:projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID
So prüfen Sie den Status Ihres Exports:
REST
HTTP-Methode und URL:
GET https://cloudasset.googleapis.com/v1/OPERATION_PATH
Beispiele für Befehle
curl (Linux, macOS oder Cloud Shell)
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://cloudasset.googleapis.com/v1/OPERATION_PATH
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://cloudasset.googleapis.com/v1/OPERATION_PATH" | Select-Object -Expand Content
Beispielantwort
{ "name": "projects/000000000000/operations/ExportAssets/RESOURCE/00000000000000000000000000000000", "metadata": { "@type": "type.googleapis.com/google.cloud.asset.v1.ExportAssetsRequest", "parent": "projects/000000000000", "readTime": "2024-01-30T00:00:00Z", "contentType": "RESOURCE", "outputConfig": { "gcsDestination": { "uri": "gs://my-bucket/export.txt" } } } }
Asset-Snapshot ansehen
So rufen Sie den Asset-Snapshot auf:
Rufen Sie in der Google Cloud Console die Seite Cloud Storage-Buckets auf.
Klicken Sie auf den Namen des Buckets, in den Sie den Asset-Snapshot exportiert haben, und dann auf den Namen der Exportdatei.
Klicken Sie auf Herunterladen, um den Asset-Snapshot herunterzuladen, und öffnen Sie ihn in einem Texteditor Ihrer Wahl.