Exporta metadatos de los recursos con Cloud Asset Inventory
En esta guía de inicio rápido, se muestra cómo exportar metadatos de activos en un momento determinado mediante Cloud Asset Inventory y los comandos gcloud asset
de Google Cloud CLI.
Antes de comenzar
Antes de comenzar a trabajar con Cloud Asset Inventory, debes habilitar la API de Cloud Asset Inventory, la Google Cloud CLI y asignar permisos. Google Cloud CLI interactúa con Cloud Asset Inventory y otros servicios de Google Cloud. Obtén más información sobre la CLI de gcloud.
Habilita la API de Cloud Asset Inventory y Google Cloud CLI
- Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
-
Habilita la API necesaria.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
-
Habilita la API necesaria.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
Configurar permisos
Para llamar a la API de Cloud Asset Inventory, primero debes configurar permisos.
Buscar recursos
Para buscar metadatos de recursos, ejecuta el siguiente comando.
gcloud asset search-all-resources \
--scope=SCOPE \
--query="QUERY" \
--asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
--order-by="ORDER_BY" \
--read-mask="READ_MASK"
Ingresa los siguientes valores:
SCOPE
: Opcional Un permiso puede ser un proyecto, una carpeta o una organización. La búsqueda se limita a los recursos de Google Cloud en este alcance. El emisor debe tener el permisocloudasset.assets.searchAllResources
en el permiso deseado. Si no se especifica, se usa la propiedad del proyecto configurada.Los valores permitidos son los siguientes:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Cómo encontrar un número de proyecto de Google Cloud
Consola
Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:
-
Ve a la página Panel en Google Cloud Console.
- Haz clic en el cuadro selector en la barra de menú.
- Selecciona tu organización en el cuadro Seleccionar desde y, luego, busca el nombre del proyecto.
- Haz clic en el nombre del proyecto para cambiar a ese proyecto. El número de proyecto se muestra en la tarjeta Información del proyecto.
CLI de gcloud
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
Cómo encontrar un ID de carpeta de Google Cloud
Consola
Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro selector en la barra de menú.
- Haz clic en el cuadro Seleccionar desde y, luego, selecciona tu organización.
- Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.
CLI de gcloud
Puedes recuperar un ID de carpeta de Google Cloud ubicado 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 puede ser una coincidencia de string completa o parcial. Quita la opción
--format
para ver más información sobre las carpetas encontradas.Para obtener el ID de una carpeta dentro de otra carpeta, enumera las subcarpetas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Cómo encontrar un ID de organización de Google Cloud
Consola
Para encontrar un ID de la organización de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro selector en la barra de menú.
- Haz clic en el cuadro Seleccionar desde y, luego, selecciona tu organización.
- Haga clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de esta.
CLI de gcloud
Puedes recuperar un ID de organización de Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
QUERY
: Opcional Es la declaración de la consulta. Consulta Sintaxis de las consultas para obtener más información. Si no se especifica o está vacío, Cloud Asset Inventory busca en todos los recursos delscope
especificado.Ejemplos:
name:Important
para encontrar los recursos de Google Cloud cuyo nombre contieneImportant
como palabra.name=Important
para encontrar el recurso de Google Cloud cuyo nombre es exactamenteImportant
.displayName:Impor*
para encontrar recursos de Google Cloud cuyo nombre visible contieneImpor
como prefijo.location:us-west*
para encontrar recursos de Google Cloud cuya ubicación contengaus
ywest
como prefijos.labels:prod
para encontrar recursos de Google Cloud cuyas etiquetas contenganprod
como clave o valor.labels.env:prod
para encontrar los recursos de Google Cloud que tienen una etiquetaenv
y su valor es “prod”.labels.env:*
para encontrar los recursos de Google Cloud que tienen una etiquetaenv
.kmsKeys:key
para encontrar recursos de Google Cloud encriptados con claves de encriptación administradas por el cliente cuyo nombre contienekey
como palabra.state:ACTIVE
para encontrar los recursos de Google Cloud cuyo estado contieneACTIVE
como palabra.NOT state:ACTIVE
para encontrar recursos de Google Cloud cuyo estado no contieneACTIVE
como palabra.createTime<1609459200
,createTime<2021-01-01
ocreateTime<"2021-01-01T00:00:00"
para encontrar recursos de Google Cloud creados antes del 1 de enero de 2021 a las 00:00:00 UTC. 1609459200 es la marca de tiempo del ciclo de entrenamiento 2021-01-01 00:00:00 UTC en segundos.updateTime>1609459200
,updateTime>2021-01-01
oupdateTime>"2021-01-01T00:00:00"
para encontrar los recursos de Google Cloud que se actualizaron después del 1 de enero de 2021 a las 00:00:00 UTC. 1609459200 es la marca de tiempo del ciclo de entrenamiento 2021-01-01 00:00:00 UTC en segundos.project:12345
para encontrar recursos de Google Cloud que pertenecen a un proyecto de Google Cloud con el número 12345. No se admite el ID del proyecto.folders:(123 or 456)
para encontrar recursos de Google Cloud que son descendientes de la carpeta de Google Cloud con números 123 o 456.organization:123
para encontrar recursos de Google Cloud que descienden de la organización de Google Cloud con el número 123.parentFullResourceName:ImportantName
para encontrar recursos de Google Cloud cuyo nombre superior contieneImportantName
.parentAssetType:Project
para encontrar recursos de Google Cloud cuyo tipo de elemento superior contieneProject
.Important
para buscar recursos de Google Cloud que contenganImportant
como palabra en cualquiera de los campos de búsqueda.Impor*
para encontrar recursos de Google Cloud que contenganImpor
como prefijo en cualquiera de los campos de búsquedaImportant location:(us-west1 OR global)
para encontrar los recursos de Google Cloud que contienen “Importante” como palabra en cualquiera de los campos de búsqueda y que también se encuentran en la regiónus-west1
oglobal
.
ASSET_TYPE
: Opcional Una lista separada por comas de tipos de recursos que se pueden buscar Se admiten expresiones regulares. Si la expresión regular no coincide con ningún tipo de elemento compatible, se muestra un errorINVALID_ARGUMENT
.ORDER_BY
: Opcional Una lista de campos separados por comas que especifica el orden de clasificación de los resultados. El orden predeterminado es ascendente. Agrega" DESC"
después del nombre del campo para indicar el orden descendente. Se ignoran los caracteres de espacio redundantes. Ejemplo:"location DESC, name"
. Solo se pueden ordenar los campos primitivos individuales de la respuesta:name
assetType
project
displayName
description
location
createTime
updateTime
state
parentFullResourceName
parentAssetType
No se admiten todos los demás campos, como los campos repetidos (por ejemplo,
networkTags
,kmsKeys
), los mapas de asignación (por ejemplo,labels
) y los campos de struct (por ejemplo,additionalAttributes
).READ_MASK
: Opcional Una lista de campos separados por comas que especifica qué campos se deben mostrar en los resultados. Si no se especifica, se muestran todos los campos, exceptoversionedResources
. Si solo se especifica"*"
, se muestran todos los campos. Ejemplos:"name,location"
,"name,versionedResources"
y"*"
.
Para obtener más información sobre cómo buscar recursos, consulta Cómo buscar recursos.
Buscar políticas de IAM
Para buscar políticas de Identity and Access Management (IAM), ejecute el siguiente comando.
gcloud asset search-all-iam-policies \
--scope=SCOPE \
--query="QUERY" \
--asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
--order-by="ORDER_BY"
Ingresa los siguientes valores:
SCOPE
: Opcional Un permiso puede ser un proyecto, una carpeta o una organización. La búsqueda se limita a los recursos de IAM en este alcance. El emisor debe tener el permisocloudasset.assets.searchAllIamPolicies
en el alcance deseado. Si no se especifica, se usa la propiedad del proyecto configurada.Los valores permitidos son los siguientes:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Cómo encontrar un número de proyecto de Google Cloud
Consola
Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:
-
Ve a la página Panel en Google Cloud Console.
- Haz clic en el cuadro selector en la barra de menú.
- Selecciona tu organización en el cuadro Seleccionar desde y, luego, busca el nombre del proyecto.
- Haz clic en el nombre del proyecto para cambiar a ese proyecto. El número de proyecto se muestra en la tarjeta Información del proyecto.
CLI de gcloud
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
Cómo encontrar un ID de carpeta de Google Cloud
Consola
Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro selector en la barra de menú.
- Haz clic en el cuadro Seleccionar desde y, luego, selecciona tu organización.
- Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.
CLI de gcloud
Puedes recuperar un ID de carpeta de Google Cloud ubicado 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 puede ser una coincidencia de string completa o parcial. Quita la opción
--format
para ver más información sobre las carpetas encontradas.Para obtener el ID de una carpeta dentro de otra carpeta, enumera las subcarpetas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Cómo encontrar un ID de organización de Google Cloud
Consola
Para encontrar un ID de la organización de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro selector en la barra de menú.
- Haz clic en el cuadro Seleccionar desde y, luego, selecciona tu organización.
- Haga clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de esta.
CLI de gcloud
Puedes recuperar un ID de organización de Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
QUERY
: Opcional Es la declaración de la consulta. Consulta Sintaxis de las consultas para obtener más información. Si no se especifica o está vacío, Cloud Asset Inventory busca en todas las políticas de IAM en elscope
especificado. La string de consulta se compara con cada vinculación de política de IAM, incluidos sus principales, funciones y condiciones de IAM. Las políticas de IAM que se muestran solo contienen las vinculaciones que coinciden con tu consulta. Para obtener más información sobre la estructura de la política de IAM, consulta Estructura de la política.Ejemplos:
policy:amy@gmail.com
para encontrar vinculaciones de políticas de IAM que especifiquen el usuarioamy@gmail.com
policy:roles/compute.admin
para encontrar vinculaciones de políticas de IAM que especifiquen la función de administrador de Computepolicy:comp*
para encontrar vinculaciones de políticas de IAM que contienencomp
como prefijo de cualquier palabra de la vinculación.policy.role.permissions:storage.buckets.update
para encontrar vinculaciones de políticas de IAM que especifiquen una función que contenga el permisostorage.buckets.update
Si los emisores no tienen acceso deiam.roles.get
a los permisos incluidos de una función, las vinculaciones de políticas que especifiquen esta función se descartarán de los resultados de la búsqueda.policy.role.permissions:upd*
para encontrar vinculaciones de políticas de IAM que especifiquen una función que contengaupd
como prefijo de cualquier palabra en el permiso de la función Ten en cuenta que, si los emisores no tienen acceso aiam.roles.get
a los permisos incluidos de una función, se quitarán las vinculaciones de políticas que especifiquen esta función de los resultados de la búsqueda.resource:organizations/123456
para encontrar vinculaciones de políticas de IAM establecidas en “organizations/123456”.resource=//cloudresourcemanager.googleapis.com/projects/myproject
para encontrar vinculaciones de políticas de IAM configuradas en el proyecto llamadomyproject
Important
para encontrar vinculaciones de políticas de IAM que contenganImportant
como palabra en cualquiera de los campos de búsqueda (excepto los permisos incluidos)resource:(instance1 OR instance2) policy:amy
para encontrar vinculaciones de políticas de IAM que se establecen en los recursosinstance1
oinstance2
y, también, especificar el usuarioamy
.roles:roles/compute.admin
para encontrar vinculaciones de políticas de IAM que especifiquen la función de administrador de ComputememberTypes:user
para encontrar vinculaciones de políticas de IAM que contengan el tipo principaluser
ASSET_TYPE
: Opcional Una lista separada por comas de tipos de elementos que se pueden buscar a los que se adjuntan las políticas de IAM. Si está vacío, Cloud Asset Inventory busca las políticas de IAM que están conectadas a todos los tipos de elementos que se pueden buscar. Se admiten expresiones regulares. Si la expresión regular no coincide con ningún tipo de elemento compatible, se muestra un errorINVALID_ARGUMENT
.ORDER_BY
: Opcional Una lista de campos separados por comas que especifica el orden de clasificación de los resultados. El orden predeterminado es ascendente. Agrega" DESC"
después del nombre del campo para indicar el orden descendente. Se ignoran los caracteres de espacio redundantes. Ejemplo:"location DESC, name"
. Solo se pueden ordenar los campos primitivos individuales de la respuesta:resource
assetType
project
No se admiten todos los otros campos, como los campos repetidos (por ejemplo,
folders
) y los campos no primitivos (por ejemplo,policy
).
Si quieres obtener más información para buscar políticas de IAM, consulta Busca políticas de IAM.
Exportar una instantánea de recursos a Cloud Storage
Para exportar todos los metadatos de los elementos en una marca de tiempo determinada a un archivo en un bucket de Cloud Storage, completa los siguientes pasos.
Crea un bucket nuevo si aún no tienes uno.
Para exportar metadatos de elementos en tu proyecto, ejecuta el siguiente comando. Este comando almacena la instantánea exportada en un archivo en
gs://BUCKET_NAME/FILENAME
.Proyectos
gcloud asset export \ --project=PROJECT_ID \ --billing-project=BILLING_PROJECT_ID \ --content-type=CONTENT_TYPE \ --snapshot-time="SNAPSHOT_TIME" \ --output-path="gs://BUCKET_NAME/FILENAME"
Ingresa los siguientes valores:
PROJECT_ID
: El ID del proyecto cuyos metadatos deseas exportarBILLING_PROJECT_ID
: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory que tiene permiso para escribir en tu bucket de Cloud Storage. No es necesario si ya cambiaste al proyecto de facturación congcloud config set project
. Obtén más información sobre los proyectos de facturación.CONTENT_TYPE
: Opcional El tipo de contenido del elemento que se exportará. Si no se especifica un tipo de contenido, solo se mostrará el nombre del elemento. Obtén más información sobre los tipos de contenido.SNAPSHOT_TIME
: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora que no supere los 35 días. Si no se proporciona, se toma una instantánea en el momento actual. Para obtener información sobre los formatos de hora, consulta fechas y horas de temas de gcloud.BUCKET_NAME
: Es el nombre del bucket de Cloud Storage en el que se escribirá.FILENAME
: Es el archivo en el bucket de Cloud Storage en el que se escribirá.
Carpetas
gcloud asset export \ --folder=FOLDER_ID \ --billing-project=BILLING_PROJECT_ID \ --content-type=CONTENT_TYPE \ --snapshot-time="SNAPSHOT_TIME" \ --output-path="gs://BUCKET_NAME/FILENAME"
Ingresa los siguientes valores:
FOLDER_ID
: El ID de la carpeta cuyos metadatos deseas exportar.Cómo encontrar un ID de carpeta de Google Cloud
Consola
Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro selector en la barra de menú.
- Haz clic en el cuadro Seleccionar desde y, luego, selecciona tu organización.
- Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.
CLI de gcloud
Puedes recuperar un ID de carpeta de Google Cloud ubicado 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 puede ser una coincidencia de string completa o parcial. Quita la opción
--format
para ver más información sobre las carpetas encontradas.Para obtener el ID de una carpeta dentro de otra carpeta, enumera las subcarpetas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
BILLING_PROJECT_ID
: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory que tiene permiso para escribir en tu bucket de Cloud Storage. No es necesario si ya cambiaste al proyecto de facturación congcloud config set project
. Obtén más información sobre los proyectos de facturación.CONTENT_TYPE
: Opcional El tipo de contenido del elemento que se exportará. Si no se especifica un tipo de contenido, solo se mostrará el nombre del elemento. Obtén más información sobre los tipos de contenido.SNAPSHOT_TIME
: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora que no supere los 35 días. Si no se proporciona, se toma una instantánea en el momento actual. Para obtener información sobre los formatos de hora, consulta fechas y horas de temas de gcloud.BUCKET_NAME
: Es el nombre del bucket de Cloud Storage en el que se escribirá.FILENAME
: Es el archivo en el bucket de Cloud Storage en el que se escribirá.
Organizaciones
gcloud asset export \ --organization=ORGANIZATION_ID \ --billing-project=BILLING_PROJECT_ID \ --content-type=CONTENT_TYPE \ --snapshot-time="SNAPSHOT_TIME" \ --output-path="gs://BUCKET_NAME/FILENAME"
Ingresa los siguientes valores:
ORGANIZATION_ID
: El ID de la organización cuyos metadatos deseas exportar.Cómo encontrar un ID de organización de Google Cloud
Consola
Para encontrar un ID de la organización de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro selector en la barra de menú.
- Haz clic en el cuadro Seleccionar desde y, luego, selecciona tu organización.
- Haga clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de esta.
CLI de gcloud
Puedes recuperar un ID de 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 en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory que tiene permiso para escribir en tu bucket de Cloud Storage. No es necesario si ya cambiaste al proyecto de facturación congcloud config set project
. Obtén más información sobre los proyectos de facturación.CONTENT_TYPE
: Opcional El tipo de contenido del elemento que se exportará. Si no se especifica un tipo de contenido, solo se mostrará el nombre del elemento. Obtén más información sobre los tipos de contenido.SNAPSHOT_TIME
: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora que no supere los 35 días. Si no se proporciona, se toma una instantánea en el momento actual. Para obtener información sobre los formatos de hora, consulta fechas y horas de temas de gcloud.BUCKET_NAME
: Es el nombre del bucket de Cloud Storage en el que se escribirá.FILENAME
: Es el archivo en el bucket de Cloud Storage en el que se escribirá.
Opcional: Para verificar el estado de la exportación, ejecuta el siguiente comando. Se muestra en gcloud CLI después de ejecutar el comando de exportación.
gcloud asset operations describe OPERATION_PATH
Cómo ver la instantánea del elemento
Para ver la instantánea del elemento después de exportarlo a Cloud Storage, completa los siguientes pasos.
Ve a la página Buckets de Cloud Storage en la consola de Google Cloud.
Abre el archivo en el que exportaste los metadatos.
El archivo de exportación enumera los elementos y sus nombres de recursos.
¿Qué sigue?
Obtén más información sobre Cloud Asset Inventory.
Obtén información sobre cómo obtener el historial de elementos.