Exporta metadatos de los recursos con Cloud Asset Inventory
En esta guía de inicio rápido, se muestra cómo exportar metadatos de elementos en un momento determinado con 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, 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Habilita la API necesaria.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
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 los 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 alcance 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 la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Elige tu organización en el cuadro Seleccionar una opción y, luego, busca el nombre del proyecto.
- Haz clic en el nombre del proyecto para cambiarlo. El número de proyecto se muestra en la tarjeta Información del proyecto.
gcloud CLI
Puedes recuperar el 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 de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción 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.
gcloud CLI
Puedes recuperar un ID de 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)"
En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia completa o parcial de strings. 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, 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 organización de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción 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 la organización.
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))"
-
QUERY
: Opcional Es la instrucción de la consulta. Consulta Sintaxis de consulta 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 recursos de Google Cloud cuyos nombres contenganImportant
como una palabraname=Important
para encontrar el recurso de Google Cloud cuyo nombre es exactamenteImportant
.displayName:Impor*
para encontrar recursos de Google Cloud cuyo nombre visible contengaImpor
como prefijolocation: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 recursos de Google Cloud que tengan una etiquetaenv
y su valor sea “prod”.labels.env:*
para encontrar recursos de Google Cloud que tengan una etiquetaenv
.kmsKeys:key
para encontrar recursos de Google Cloud encriptados con claves de encriptación administradas por el cliente cuyo nombre contengakey
como palabrasccSecurityMarks.key=value
para encontrar recursos de Google Cloud que están conectados con un par de marcas de seguridad cuya clave eskey
y su valor esvalue
.sccSecurityMarks.key:*
para encontrar recursos de Google Cloud conectados con un par de marcas de seguridad cuya clave eskey
.state:ACTIVE
para encontrar recursos de Google Cloud cuyo estado contengaACTIVE
como una palabraNOT state:ACTIVE
para encontrar recursos de Google Cloud cuyo estado no contengaACTIVE
como una palabra.createTime<1609459200
,createTime<2021-01-01
ocreateTime<"2021-01-01T00:00:00"
para encontrar recursos de Google Cloud que se crearon antes del 1 de enero de 2021 a las 00:00:00 UTC. 1609459200 es la marca de tiempo de época de 2021-01-01 00:00:00 UTC en segundos.updateTime>1609459200
,updateTime>2021-01-01
oupdateTime>"2021-01-01T00:00:00"
para encontrar 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 de época de 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 12,345. No se admite el ID del proyecto.folders:(123 or 456)
para encontrar recursos de Google Cloud que son descendientes de una carpeta de Google Cloud con números 123 o 456.organization:123
para encontrar recursos de Google Cloud que sean descendientes de la organización de Google Cloud con el número 123.parentFullResourceName:ImportantName
para encontrar recursos de Google Cloud cuyo nombre superior contengaImportantName
.parentAssetType:Project
para encontrar recursos de Google Cloud cuyo tipo de elemento superior contengaProject
.Important
para encontrar recursos de Google Cloud que contenganImportant
como palabra en cualquiera de los campos de búsquedaImpor*
para encontrar recursos de Google Cloud que contenganImpor
como prefijo en cualquiera de los campos de búsqueda.Important location:(us-west1 OR global)
para encontrar recursos de Google Cloud que contengan la palabra “Importante” en cualquiera de los campos de búsqueda y que también se encuentren en la regiónus-west1
o la ubicaciónglobal
.
ASSET_TYPE
: Opcional Una lista separada por comas de los tipos de elementos que se pueden buscar. Se admiten las expresiones regulares compatibles con RE2. Si la expresión regular no coincide con ningún tipo de elemento compatible, se mostrará 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. Los caracteres de espacio redundantes se ignoran. Ejemplo:"location DESC, name"
. Solo se puede ordenar los campos primitivos singulares de la respuesta:name
assetType
project
displayName
description
location
createTime
updateTime
state
parentFullResourceName
parentAssetType
No se admiten los demás campos, como los campos repetidos (por ejemplo,
networkTags
ykmsKeys
), los campos de asignación (por ejemplo,labels
) y los campos de estructura (por ejemplo,additionalAttributes
).READ_MASK
: Opcional Una lista de campos separados por comas que especifica qué campos se mostrarán 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"*"
.
Si quieres obtener más información para buscar recursos, consulta Busca recursos.
Buscar políticas de IAM
Para buscar políticas de Identity and Access Management (IAM), ejecuta 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 alcance 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 la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Elige tu organización en el cuadro Seleccionar una opción y, luego, busca el nombre del proyecto.
- Haz clic en el nombre del proyecto para cambiarlo. El número de proyecto se muestra en la tarjeta Información del proyecto.
gcloud CLI
Puedes recuperar el 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 de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción 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.
gcloud CLI
Puedes recuperar un ID de 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)"
En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia completa o parcial de strings. 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, 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 organización de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción 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 la organización.
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))"
-
QUERY
: Opcional Es la instrucción de la consulta. Consulta Sintaxis de consulta 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 cadena de consulta se compara con cada vinculación de política de IAM, incluidas las principales, las funciones y las 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 políticas de IAM, consulta Estructura de políticas.Ejemplos:
policy:amy@gmail.com
para encontrar vinculaciones de políticas de IAM que especifican el usuarioamy@gmail.com
.policy:roles/compute.admin
para encontrar vinculaciones de políticas de IAM que especifican la función de administrador de Compute.policy:comp*
para encontrar vinculaciones de políticas de IAM que contienencomp
como prefijo de cualquier palabra en 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 accesoiam.roles.get
a los permisos incluidos de una función, las vinculaciones de políticas que especifican 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 función. Ten en cuenta que si los emisores no tienen accesoiam.roles.get
a los permisos incluidos de una función, las vinculaciones de políticas que especifican esta función se descartarán de los resultados de la búsqueda.resource:organizations/123456
para encontrar vinculaciones de políticas de IAM configuradas 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 una 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 que también especifican el usuarioamy
.roles:roles/compute.admin
para encontrar vinculaciones de políticas de IAM que especifican la función de administrador de Compute.memberTypes:user
para encontrar vinculaciones de políticas de IAM que contienen el tipo de principaluser
.
ASSET_TYPE
: Opcional Una lista separada por comas de los 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 adjuntas a todos los tipos de recursos que se pueden buscar. Se admiten las expresiones regulares. Si la expresión regular no coincide con ningún tipo de elemento compatible, se mostrará 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. Los caracteres de espacio redundantes se ignoran. Ejemplo:"location DESC, name"
. Solo se puede ordenar los campos primitivos singulares de la respuesta:resource
assetType
project
No se admiten los demás campos, como los repetidos (por ejemplo,
folders
) y los que no son primitivos (por ejemplo,policy
).
Para obtener más información sobre cómo 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 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
por el ID del proyecto cuyos metadatos deseas exportar.BILLING_PROJECT_ID
: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permiso para escribir en tu bucket de Cloud Storage. No es obligatorio 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 muestra 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 de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.BUCKET_NAME
: Es el nombre del bucket de Cloud Storage en el que se escribirá.FILENAME
: Es el archivo del 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 de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción 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.
gcloud CLI
Puedes recuperar un ID de 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)"
En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia completa o parcial de strings. 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, 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 y que tiene permiso para escribir en tu bucket de Cloud Storage. No es obligatorio 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 muestra 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 de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.BUCKET_NAME
: Es el nombre del bucket de Cloud Storage en el que se escribirá.FILENAME
: Es el archivo del 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 organización de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción 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 la organización.
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 en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permiso para escribir en tu bucket de Cloud Storage. No es obligatorio 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 muestra 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 de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.BUCKET_NAME
: Es el nombre del bucket de Cloud Storage en el que se escribirá.FILENAME
: Es el archivo del 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 CLId después de ejecutar el comando de exportación.
gcloud asset operations describe OPERATION_PATH
Visualiza el resumen de elementos
Para ver la instantánea del recurso después de haberla exportado 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.