En este documento, se muestra cómo exportar los metadatos de recursos de tu proyecto a un bucket de Cloud Storage.
Antes de comenzar
Habilita la API de Cloud Asset Inventory en el proyecto en el que ejecutas los comandos de Cloud Asset Inventory de la imagen de la que se originó.
Asegúrate de que tu cuenta tenga el rol correcto para llamar a la API de Cloud Asset Inventory. Para obtener información sobre los permisos individuales de cada tipo de llamada, consulta Permisos.
Crea un bucket de Cloud Storage al que exportar, si aún no tienes uno.
Limitaciones
Buckets de Cloud Storage encriptados con Cloud Key Management Service personalizado (Cloud KMS) no son compatibles.
El bucket de Cloud Storage no puede tener política de retención configurada.
Durante la exportación, la operación puede crear archivos temporales en el resultado. carpeta. No quites estos archivos temporales mientras se realiza la operación. Una vez que se completa la operación, se quitan los archivos temporales automáticamente.
El tipo de contenido
ACCESS_POLICY
solo se puede exportar a la a nivel de la organización.Si el archivo al que quieres exportar ya existe y está en proceso de ser a la que se exporta, se muestra un error
400
.Para probar los permisos, Cloud Asset Inventory crea un archivo vacío antes de exportar de Cloud Storage, que envía un evento de activación adicional de Cloud Storage del
google.cloud.storage.object.v1.finalized
Exporta una instantánea de los recursos a Cloud Storage
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-path="gs://BUCKET_NAME/FILENAME"
Ingresa los siguientes valores:
-
SCOPE
: Usa uno de los siguientes valores:-
project=PROJECT_ID
, dondePROJECT_ID
es el ID del proyecto que tiene los metadatos del recurso que deseas exportar. -
folder=FOLDER_ID
, dondeFOLDER_ID
es el ID de la carpeta que tiene los metadatos del recurso que deseas exportar.Cómo encontrar el ID de una carpeta de Google Cloud
Consola de Google Cloud
Para encontrar el ID de una carpeta de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de lista del selector en la barra de menú.
- Selecciona tu organización en el cuadro de lista.
- Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.
gcloud CLI
Puedes recuperar el ID de una carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente comando:
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)"
Donde TOP_LEVEL_FOLDER_NAME es una coincidencia de cadena parcial o completa para el nombre de la carpeta. Quita la marca
--format
para ver más información sobre las carpetas encontradas.El comando anterior no muestra los IDs de las subcarpetas dentro de las carpetas. Para ello, sigue estos pasos: ejecuta el siguiente comando con el ID de una carpeta de nivel superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organization=ORGANIZATION_ID
, dondeORGANIZATION_ID
es el ID de la organización que tiene los metadatos del activo que deseas exportar.Cómo encontrar el ID de una organización de Google Cloud
Consola de Google Cloud
Para encontrar el ID de una organización de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de lista para cambiar en la barra de menú.
- Selecciona tu organización en el cuadro de lista.
- Haz clic en la pestaña Todos. El ID de la organización se muestra junto a su nombre.
gcloud CLI
Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: Opcional El ID del proyecto el agente de servicio predeterminado de Cloud Asset Inventory que tiene permisos para administrar tus conjuntos de datos y tablas de BigQuery. Obtén más información para configurar el proyecto de facturación. ASSET_TYPE_#
: Opcional Una lista separada por comas de tipo de recursos que se pueden buscar. Se admiten expresiones regulares compatibles con RE2. Si la expresión regular no coincide cualquier tipo de recurso compatible, se mostrará un errorINVALID_ARGUMENT
. Cuándo No se especifica--asset-types
, se muestran todos los tipos de recursos.CONTENT_TYPE
: Opcional El tipo de contenido de los metadatos que deseas recuperar. Cuando no se especifica--content-type
, solo se muestra información básica, como los nombres de los recursos, la última vez que se actualizaron y a qué proyectos, carpetas y organizaciones pertenecen.-
RELATIONSHIP_TYPE_#
: Opcional Solo está disponible para los suscriptores de Security Command Center niveles Premium y Enterprise. Una lista separada por comas de tipos de relación de activos que quieres recuperar. Debes configurarCONTENT_TYPE
comoRELATIONSHIP
para que esto funcione. -
SNAPSHOT_TIME
: Opcional Es la hora en la que deseas tomar una instantánea de tus activos, en formato de fecha y hora de gcloud topic. El valor no debe superar los 35 días en el pasado. Cuándo No se especifica--snapshot-time
; se toma una instantánea en el momento actual. BUCKET_NAME
: Es el nombre del bucket de Cloud Storage al que se escribirá.FILENAME
: el El archivo en tu bucket de Cloud Storage en el que se realizará la escritura.
Consulta la referencia de gcloud CLI para todas las opciones.
Ejemplo
Ejecuta el siguiente comando para exportar los metadatos de resource
tal como estaban el 30 de enero de
2024 en el proyecto my-project
al archivo my-file.txt
en el
bucket de Cloud Storage my-bucket
.
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"
Respuesta de ejemplo
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
Método HTTP y URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:exportAssets
Encabezados:
X-Goog-User-Project: BILLING_PROJECT_ID
Cuerpo JSON de la solicitud:
{ "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "contentType": "CONTENT_TYPE", "relationshipTypes": [ "RELATIONSHIP_TYPE_1", "RELATIONSHIP_TYPE_2", "..." ], "readTime": "SNAPSHOT_TIME", "outputConfig": { "gcsDestination": { "uri": "gs://BUCKET_NAME/FILENAME" } } }
Ingresa los siguientes valores:
-
SCOPE_PATH
: Usa uno de los siguientes valores:Los valores permitidos son los siguientes:
-
projects/PROJECT_ID
, dondePROJECT_ID
es el ID del proyecto que tiene los metadatos del recurso que deseas exportar. -
projects/PROJECT_NUMBER
, dondePROJECT_NUMBER
es el número del proyecto que tiene los metadatos de activo que quieres exportar.Cómo encontrar un número de proyecto de Google Cloud
Consola de Google Cloud
Para encontrar el número de un proyecto de Google Cloud, completa los siguientes pasos:
-
Ve a la página Bienvenida en la consola de Google Cloud.
- Haz clic en el cuadro de lista de selector en la barra de menú.
-
Selecciona tu organización en el cuadro de lista y, luego, busca el nombre del proyecto. El nombre, el número y el ID del proyecto se muestran cerca de la sección de Bienvenida .
Se muestran hasta 4,000 recursos. Si no ves el proyecto que buscas, ve a la página Administrar recursos y filtra la lista con el nombre de ese proyecto.
gcloud CLI
Puedes recuperar un número de proyecto de Google Cloud con el siguiente comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, dondeFOLDER_ID
es el ID de la carpeta que tiene los metadatos del activo que deseas exportar.Cómo encontrar el ID de una carpeta de Google Cloud
Consola de Google Cloud
Para encontrar el ID de una carpeta de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de lista del selector en la barra de menú.
- Selecciona tu organización en el cuadro de lista.
- Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.
gcloud CLI
Puedes recuperar el ID de una carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente comando:
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)"
Donde TOP_LEVEL_FOLDER_NAME es una coincidencia de cadena parcial o completa para el nombre de la carpeta. Quita la marca
--format
para ver más información sobre las carpetas encontradas.El comando anterior no muestra los ID de las subcarpetas dentro de las carpetas. Para ello, sigue estos pasos: ejecuta el siguiente comando con el ID de una carpeta de nivel superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, dondeORGANIZATION_ID
es el ID de la organización que tiene los metadatos del activo que deseas exportar.Cómo encontrar el ID de una organización de Google Cloud
Consola de Google Cloud
Para encontrar el ID de una organización de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de lista del selector en la barra de menú.
- Selecciona tu organización en el cuadro de lista.
- Haz clic en la pestaña Todos. El ID de la organización se muestra junto a su nombre.
gcloud CLI
Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: Es el ID del proyecto en el que se encuentra el agente de servicio predeterminado del Inventario de activos de Cloud que tiene permisos para administrar tus conjuntos de datos y tablas de BigQuery. Obtén más información para configurar el proyecto de facturación. ASSET_TYPE_#
: Opcional Un array de tipos de recursos que se pueden buscar. Se admiten expresiones regulares compatibles con RE2. Si la expresión regular no coincide cualquier tipo de recurso compatible, se mostrará un errorINVALID_ARGUMENT
. Cuándo No se especificaassetTypes
, se muestran todos los tipos de recursos.CONTENT_TYPE
: Opcional El tipo de contenido de los metadatos que quieres recuperar. Cuando no se especificacontentType
, solo se muestra información básica, como los nombres de los activos, la última vez que se actualizaron y a qué proyectos, carpetas y organizaciones pertenecen.-
RELATIONSHIP_TYPE_#
: Opcional Solo disponible para Security Command Center Nivel Premium y Enterprise suscriptores. Es una lista separada por comas de los tipos de relaciones de activos que deseas recuperar. Debes configurarCONTENT_TYPE
comoRELATIONSHIP
para que esto funcione. -
SNAPSHOT_TIME
: Opcional La hora en la que deseas tomar una instantánea de tus activos, en formato RFC 3339. El valor no debe superar los 35 días en el pasado. Cuando no se especificareadTime
, se toma una instantánea a la hora actual. BUCKET_NAME
: Es el nombre del bucket de Cloud Storage al que se escribirá.FILENAME
: Es el archivo en el bucket de Cloud Storage al que se escribirá.
Consulta la referencia de REST para obtener opciones de estado.
Ejemplos de comandos
Ejecuta uno de los siguientes comandos para exportar tus metadatos de resource
como estaban en
30 de enero de 2024 en el proyecto my-project
, al archivo my-file.txt
en
el bucket de Cloud Storage my-bucket
.
curl (Linux, macOS o 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
Respuesta de ejemplo
{ "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#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Asset Inventory, consulta Bibliotecas cliente de Cloud Asset Inventory.
Para autenticarte en Cloud Asset Inventory, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Asset Inventory, consulta Bibliotecas cliente de Cloud Asset Inventory.
Para autenticarte en Cloud Asset Inventory, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Asset Inventory, consulta Bibliotecas cliente de Cloud Asset Inventory.
Para autenticarte en Cloud Asset Inventory, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Asset Inventory, consulta Bibliotecas cliente de Cloud Asset Inventory.
Para autenticarte en Cloud Asset Inventory, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Asset Inventory, consulta Bibliotecas cliente de Cloud Asset Inventory.
Para autenticarte en Cloud Asset Inventory, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Asset Inventory, consulta Bibliotecas cliente de Cloud Asset Inventory.
Para autenticarte en Cloud Asset Inventory, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Asset Inventory, consulta Bibliotecas cliente de Cloud Asset Inventory.
Para autenticarte en Cloud Asset Inventory, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Verifica el estado de una exportación
Las exportaciones tardan en completarse. Para verificar si se completó una exportación, puedes consultar operación con su ID de operación.
Ten en cuenta que, incluso si se completó la exportación, es posible que alguien haya realizado otra solicitud de exportación al mismo destino como una operación diferente. Se pueden realizar nuevas solicitudes de exportación al mismo destino después de que finalice una solicitud anterior o si transcurrieron más de 15 minutos. Solicitudes de exportación realizadas fuera de estas condiciones se rechazan por Cloud Asset Inventory.
gcloud
Para ver el estado de la exportación, completa las siguientes instrucciones:
Obtén el
OPERATION_PATH
, que incluye el ID de operación, de la respuesta a tu solicitud de exportación. ElOPERATION_PATH
se muestra en la respuesta al exportar, que tiene el siguiente formato:projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID
Para verificar el estado de la exportación, ejecuta el siguiente comando con
OPERATION_PATH
:gcloud asset operations describe OPERATION_PATH
REST
Para consultar el estado de tu exportación, sigue estas instrucciones:
Obtén el
OPERATION_PATH
, que incluye la operación. de la respuesta a tu solicitud de exportación. ElOPERATION_PATH
se muestra como el valor del camponame
en la respuesta a la exportación, que tiene el siguiente formato:projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID
Para verificar el estado de la exportación, realiza la siguiente solicitud.
REST
Método HTTP y URL:
GET https://cloudasset.googleapis.com/v1/OPERATION_PATH
Ejemplos de comandos
curl (Linux, macOS o 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
Respuesta de ejemplo
{ "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ómo ver la instantánea de un recurso
Para ver la instantánea de un recurso, haz lo siguiente:
Ve a la página Buckets de Cloud Storage en la consola de Google Cloud.
Haz clic en el nombre del bucket al que exportaste el resumen de tu recurso y, luego, haz clic en el nombre del archivo de exportación.
Haz clic en Download para descargar el resumen de tus recursos y ábrelo en tu con el editor de texto que prefieras.