Puedes enumerar tus activos en Google Cloud proyectos, carpetas u organizaciones.
Antes de comenzar
Habilita la API de Cloud Asset Inventory en el proyecto desde el que ejecutas los comandos de Cloud Asset Inventory.
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.
Limitaciones
Cuando se enumeran los datos de la tabla de BigQuery, no se admiten todos los campos.
Los campos de recursos que cambian con frecuencia en los metadatos de BigQuery, como
numBytes
,numLongTermBytes
,numPhysicalBytes
ynumRows
, tienen asignados valores denull
.
Enumera tus activos
Console
Solo puedes ver los recursos con el RESOURCE
tipo de contenido en la consola de Google Cloud . Para ver otros tipos de contenido o filtrar por criterios más precisos, usa gcloud CLI, REST o una biblioteca cliente.
Para enumerar los metadatos de recursos de tu proyecto, carpeta u organización, completa los siguientes pasos:
-
En la consola de Google Cloud , ve a la página Inventario de recursos.
- Cambia al proyecto, la carpeta o la organización en los que deseas enumerar los recursos.
- Haz clic en la pestaña Recurso.
- En el panel Filtrar resultados, selecciona los tipos de recursos, los proyectos o las ubicaciones por los que deseas filtrar los resultados.
- Para ver los metadatos de un recurso, haz clic en su nombre visible en el panel de resultados.
gcloud
gcloud asset list \ --SCOPE \ --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \ --content-type=CONTENT_TYPE \ --relationship-types=RELATIONSHIP_TYPE_1,RELATIONSHIP_TYPE_2,... \ --snapshot-time="SNAPSHOT_TIME"
Ingresa los siguientes valores:
-
SCOPE
: Usa uno de los siguientes valores:-
project=PROJECT_ID
, dondePROJECT_ID
es el ID del proyecto que tiene el activo que deseas recuperar. -
folder=FOLDER_ID
, dondeFOLDER_ID
es el ID de la carpeta que tiene el activo que deseas recuperar.Cómo encontrar el ID de una carpeta Google Cloud
Google Cloud console
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 conmutador 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 Google Cloud ubicada 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)"
En el ejemplo anterior, 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 devuelve los IDs de las subcarpetas dentro de las carpetas. Para ello, 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 el activo que deseas recuperar.Cómo encontrar el ID de una organización de Google Cloud
Google Cloud console
Para encontrar el ID de una organización Google Cloud , completa los siguientes pasos:
-
Ve a la consola de Google Cloud .
- Haz clic en el cuadro de lista del conmutador 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 al nombre de la organización.
gcloud CLI
Puedes recuperar el ID de una organización Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
ASSET_TYPE_#
: Opcional Es una lista separada por comas de tipos de recursos que se pueden buscar. Se admiten expresiones regulares compatibles con RE2. Si la expresión regular no coincide con ningún tipo de recurso admitido, se muestra un errorINVALID_ARGUMENT
. Cuando no se especifica--asset-types
, se muestran todos los tipos de recursos.CONTENT_TYPE
: Opcional Tipo de contenido de los metadatos que deseas recuperar. Cuando no se especifica--content-type
, solo se devuelve 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 Requiere acceso al nivel Premium o Enterprise de Security Command Center, o a Gemini Cloud Assist. Es una lista separada por comas de los tipos de relaciones de activos que deseas recuperar. Debes establecerCONTENT_TYPE
enRELATIONSHIP
para que esto funcione. -
SNAPSHOT_TIME
: Opcional Fecha y hora en la que deseas tomar una instantánea de tus recursos, en formato de fecha y hora de gcloud topic. El valor no debe ser anterior a 35 días. Cuando no se especifica--snapshot-time
, se toma una instantánea a la hora actual.
Consulta la referencia de la CLI de gcloud para ver todas las opciones.
Ejemplo
El siguiente comando obtiene una instantánea de metadatos resource
de las instancias de Compute Engine al 30 de enero de 2024 (2024-01-30
) en el proyecto my-project
.
Antes de ejecutar este comando, asegúrate de cambiar la hora de la instantánea para que se encuentre dentro de los últimos 35 días y cambia el nombre del proyecto.
gcloud asset list \ --project=my-project \ --asset-types=compute.googleapis.com/Instance \ --content-type=resource \ --snapshot-time="2024-01-30"
Respuesta de ejemplo
--- ancestors: - projects/000000000000 - folders/000000000000 - organizations/000000000000 assetType: compute.googleapis.com/Instance name: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-name resource: data: ASSET_METADATA updateTime: '2024-01-30T00:00:00.000000Z'
REST
Método HTTP y URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH/assets
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", "pageSize": "PAGE_SIZE", "pageToken": "PAGE_TOKEN" }
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 el activo que deseas recuperar. -
projects/PROJECT_NUMBER
, dondePROJECT_NUMBER
es el número del proyecto que tiene el recurso que deseas recuperar.Cómo encontrar un Google Cloud número de proyecto
Google Cloud console
Para encontrar el número de un proyecto 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 del conmutador en la barra de menú.
-
Selecciona tu organización en el cuadro de lista y, luego, busca el nombre de tu proyecto. El nombre, el número y el ID del proyecto se muestran cerca del encabezado Bienvenido.
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 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 el activo que deseas recuperar.Cómo encontrar el ID de una carpeta Google Cloud
Google Cloud console
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 conmutador 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 Google Cloud ubicada 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)"
En el ejemplo anterior, 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 devuelve los IDs de las subcarpetas dentro de las carpetas. Para ello, 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 el activo que deseas recuperar.Cómo encontrar el ID de una organización de Google Cloud
Google Cloud console
Para encontrar el ID de una organización Google Cloud , completa los siguientes pasos:
-
Ve a la consola de Google Cloud .
- Haz clic en el cuadro de lista del conmutador 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 al nombre de la organización.
gcloud CLI
Puedes recuperar el ID de una organización Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
ASSET_TYPE_#
: Opcional Es un array de tipos de recursos que se pueden buscar. Se admiten expresiones regulares compatibles con RE2. Si la expresión regular no coincide con ningún tipo de recurso admitido, se muestra un errorINVALID_ARGUMENT
. Cuando no se especificaassetTypes
, se muestran todos los tipos de recursos.CONTENT_TYPE
: Opcional Tipo de contenido de los metadatos que deseas recuperar. Cuando no se especificacontentType
, solo se devuelve 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 Requiere acceso al nivel Premium o Enterprise de Security Command Center, o a Gemini Cloud Assist. Es una lista separada por comas de los tipos de relaciones de activos que deseas recuperar. Debes establecerCONTENT_TYPE
enRELATIONSHIP
para que esto funcione. -
SNAPSHOT_TIME
: Opcional La fecha y hora en la que deseas tomar una instantánea de tus activos, en formato RFC 3339. El valor no debe ser anterior a 35 días. Cuando no se especificareadTime
, se toma una instantánea en el momento actual. -
PAGE_SIZE
: Opcional Es la cantidad de resultados que se devolverán por página. La cantidad máxima es 500. Si el valor se establece en0
o en un valor negativo, se selecciona un valor predeterminado adecuado. Se devuelve unnextPageToken
para recuperar resultados posteriores. -
PAGE_TOKEN
: Opcional Las respuestas a solicitudes largas se separan en varias páginas. Cuando no se especificapageToken
, se devuelve la primera página. Se pueden llamar a las páginas posteriores usando elnextPageToken
de la respuesta anterior como el valor depageToken
.
Consulta la referencia de REST para ver todas las opciones.
Ejemplos de comandos
Los siguientes comandos obtienen una instantánea de los metadatos resource
de las instancias de Compute Engine a partir del 30 de enero de 2024 (2024-01-30T00:00:00Z
) en el proyecto my-project
.
Antes de ejecutar cualquiera de estos comandos, asegúrate de cambiar la hora de la instantánea para que se encuentre dentro de los últimos 35 días y cambia el nombre del proyecto.
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": ["compute.googleapis.com/Instance"], "contentType": "RESOURCE", "readTime": "2024-01-30T00:00:00Z" }' \ https://cloudasset.googleapis.com/v1/projects/my-project/assets
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": ["compute.googleapis.com/Instance"], "contentType": "RESOURCE", "readTime": "2024-01-30T00:00:00Z" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project/assets" | Select-Object -Expand Content
Respuesta de ejemplo
{ "readTime": "2024-01-30T00:00:00Z", "assets": [ { "name": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-name", "assetType": "compute.googleapis.com/Instance", "resource": { "version": "v1", "discoveryDocumentUri": "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest", "discoveryName": "Instance", "parent": "//cloudresourcemanager.googleapis.com/projects/000000000000", "data": { ASSET_METADATA }, "location": "us-central1-a" }, "ancestors": [ "projects/000000000000", "folders/000000000000", "organizations/000000000000" ], "updateTime": "2024-01-30T00:00:00.000000Z" } ] }
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.