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 jeden Anruftyp finden Sie unter Berechtigungen.
Erstellen Sie einen Cloud Storage-Bucket, in den Sie exportieren möchten, falls noch nicht geschehen.
Beschränkungen
Cloud Storage-Buckets, die mit benutzerdefinierten Cloud KMS-Schlüsseln (Cloud Key Management Service) verschlüsselt sind, werden nicht unterstützt.
Für den Cloud Storage-Bucket kann keine Aufbewahrungsrichtlinie festgelegt werden.
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. Nach Abschluss des Vorgangs 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 exportiert wird, wird der Fehler
400
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 zu exportierenden Asset-Metadaten enthält. -
folder=FOLDER_ID
, wobeiFOLDER_ID
die ID des Ordners mit den zu exportierenden Asset-Metadaten ist.ID eines Ordners in Google Cloud ermitteln
Google Cloud Console
So rufen Sie die ID eines Ordners in Google Cloud ab:
-
Rufen Sie die Google Cloud -Konsole auf.
- Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
- 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 ein teilweiser oder vollständiger Stringabgleich mit dem Namen des Ordners. Entfernen Sie das
--format
-Flag, um weitere Informationen zu den gefundenen Ordnern aufzurufen.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 zu exportierenden Asset-Metadaten enthält.ID einer Google Cloud -Organisation ermitteln
Google Cloud Console
So ermitteln Sie die ID einer Google Cloud -Organisation:
-
Rufen Sie die Google Cloud -Konsole auf.
- Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
- 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, in der sich der Standard-Cloud Asset Inventory-Dienstagent befindet, der Berechtigungen zum Verwalten Ihrer BigQuery-Datasets und ‑Tabellen hat. Weitere Informationen zum Festlegen des Abrechnungsprojekts ASSET_TYPE_#
: Optional. Eine durch Kommas getrennte Liste 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. 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, das Datum der letzten Aktualisierung der Assets und zu welchen Projekten, Ordnern und Organisationen 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 abgerufen werden sollen. Sie müssenCONTENT_TYPE
aufRELATIONSHIP
setzen, damit dies funktioniert. -
SNAPSHOT_TIME
: Optional. Die Zeit, zu der Sie einen Snapshot Ihrer Assets erstellen möchten, im gcloud topic datetime-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, wobei:-
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 wird in Unterordner unterteilt, die nach Asset-Typen benannt sind. Die Unterordner dürfen nicht bereits im angegebenen Ordner vorhanden sein.
-
Eine vollständige Liste der Optionen finden Sie in der Referenz zur gcloud CLI.
Beispiel
Führen Sie den folgenden Befehl aus, um die resource
-Metadaten vom 30. Januar 2024 aus dem Projekt my-project
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 zu exportierenden Asset-Metadaten enthält. -
projects/PROJECT_NUMBER
, wobeiPROJECT_NUMBER
die Nummer des Projekts mit den zu exportierenden Asset-Metadaten ist.Projektnummer für Google Cloud ermitteln
Google Cloud Console
So rufen Sie die Projektnummer eines Google Cloud -Projekts ab:
-
Rufen Sie in der Google Cloud -Console die Seite Willkommen auf.
- Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
-
Wählen Sie Ihre Organisation aus dem Listenfeld aus und suchen Sie dann nach dem 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 finden, rufen Sie die Seite Ressourcen verwalten auf und filtern Sie die Liste mit dem Namen des Projekts.
gcloud-CLI
Sie können die Projektnummer eines Google Cloud -Projekts mit dem folgenden Befehl abrufen:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, wobeiFOLDER_ID
die ID des Ordners mit den zu exportierenden Asset-Metadaten ist.ID eines Ordners in Google Cloud ermitteln
Google Cloud Console
So rufen Sie die ID eines Ordners in Google Cloud ab:
-
Rufen Sie die Google Cloud -Konsole auf.
- Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
- 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 ein teilweiser oder vollständiger Stringabgleich mit dem Namen des Ordners. Entfernen Sie das
--format
-Flag, um weitere Informationen zu den gefundenen Ordnern aufzurufen.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 zu exportierenden Asset-Metadaten enthält.ID einer Google Cloud -Organisation ermitteln
Google Cloud Console
So ermitteln Sie die ID einer Google Cloud -Organisation:
-
Rufen Sie die Google Cloud -Konsole auf.
- Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
- 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-Dienstagent 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, das Datum der letzten Aktualisierung der Assets und zu welchen Projekten, Ordnern und Organisationen 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 abgerufen werden sollen. Sie müssenCONTENT_TYPE
aufRELATIONSHIP
setzen, damit dies 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, wobei:-
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 wird in Unterordner unterteilt, die nach Asset-Typen benannt sind. Die Unterordner dürfen nicht bereits im angegebenen Ordner vorhanden sein.
-
Weitere Informationen zu allen Optionen finden Sie in der REST-Referenz.
Befehlsbeispiele
Führen Sie einen der folgenden Befehle aus, um die resource
-Metadaten in ihrer Version vom 30. Januar 2024 aus dem Projekt my-project
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 hier.
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 hier.
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 hier.
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 hier.
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 hier.
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 hier.
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 hier.
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 einige Zeit. Sie können den Vorgang mithilfe der Vorgangs-ID abfragen, um zu prüfen, ob ein Export abgeschlossen ist.
Auch wenn der Export abgeschlossen ist, kann es sein, dass jemand eine weitere Exportanfrage an dasselbe Ziel wie ein anderer Vorgang gesendet hat. Neue Exportanfragen an dasselbe Ziel können gesendet werden, nachdem eine vorherige Anfrage abgeschlossen wurde oder wenn 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
ist in der Antwort auf den Export zu sehen, 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, der 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
Befehlsbeispiele
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 -Konsole die Seite Cloud Storage-Buckets auf.
Klicken Sie auf den Namen des Buckets, in den Sie Ihren Asset-Snapshot exportiert haben, und dann auf den Exportdateinamen.
Klicken Sie auf Herunterladen, um den Asset-Snapshot herunterzuladen und in einem beliebigen Texteditor zu öffnen.