Exporta metadatos de los recursos con Cloud Asset Inventory

En esta guía de inicio rápido, aprenderás a exportar metadatos de activos en un momento dado mediante Cloud Asset Inventory y los comandos gcloud asset de Google Cloud CLI

Antes de comenzar

Antes de que puedas comenzar a trabajar con Cloud Asset Inventory, debes habilitar el 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. Aprendizaje más información sobre la gcloud CLI.

Habilita la API de Cloud Asset Inventory y Google Cloud CLI

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the required API.

    Enable the API

  4. Install the Google Cloud CLI.
  5. To initialize the gcloud CLI, run the following command:

    gcloud init
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Enable the required API.

    Enable the API

  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    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 permiso puede ser un proyecto, una carpeta en una organización. La búsqueda se limita a los recursos de Google Cloud incluidos en esta del proyecto. El emisor debe tener el permiso cloudasset.assets.searchAllResources en el permiso deseado. Si no se especifica, el propiedad de proyecto configurada y control sobre el uso de sus datos.

    Los valores permitidos son los siguientes:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Cómo encontrar un número de proyecto de Google Cloud

      Console

      Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:

      1. Ve a la página Panel en la consola de Google Cloud.

        Ir al panel

      2. Haz clic en el cuadro de selector en la barra de menú.
      3. Selecciona tu organización en el cuadro Seleccionar una opción y, luego, busca tu el nombre del proyecto.
      4. Haz clic en el nombre del proyecto para cambiar a él. El número de proyecto se muestra Tarjeta Información del 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

      Cómo encontrar el ID de una carpeta de Google Cloud

      Console

      Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de selector en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. Busca el nombre de tu 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)"

      Donde TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadena completa o parcial. Quita el --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

      Console

      Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de selector en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. 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))"

  • QUERY: Opcional La instrucción de la consulta. Consulta Sintaxis de consultas para obtener más información. Si no se especifica o está vacía, Cloud Asset Inventory busca todos los recursos en el scope especificado.

    Ejemplos:

    • name:Important para encontrar recursos de Google Cloud cuyo nombre contenga Important como una palabra.

    • name=Important para encontrar el recurso de Google Cloud cuyo nombre es exactamente Important

    • displayName:Impor* para encontrar los recursos de Google Cloud cuyo nombre visible contiene Impor como prefijo.

    • location:us-west* para encontrar los recursos de Google Cloud cuya ubicación contiene us y west como prefijos.

    • labels:prod para encontrar recursos de Google Cloud cuyas etiquetas contengan prod como clave o valor.

    • labels.env:prod para encontrar recursos de Google Cloud que tienen una etiqueta env y su valor es "prod".

    • labels.env:* para encontrar los recursos de Google Cloud que tienen una etiqueta env.

    • kmsKeys:key para encontrar recursos de Google Cloud encriptados con administración las claves de encriptación cuyo nombre contiene key como palabra.

    • sccSecurityMarks.key=value para encontrar los recursos de Google Cloud que están conectados con un par de marcas de seguridad cuya clave es key y su valor es value.

    • sccSecurityMarks.key:* para encontrar recursos de Google Cloud que estén adjuntos con un par de marcas de seguridad cuya clave sea key.

    • state:ACTIVE para encontrar recursos de Google Cloud cuyo estado contenga ACTIVE como una palabra.

    • NOT state:ACTIVE para encontrar recursos de Google Cloud cuyo estado no contienen ACTIVE como una palabra.

    • createTime<1609459200 o createTime<2021-01-01 o createTime<"2021-01-01T00:00:00" para encontrar los recursos de Google Cloud que se creada antes del 1-1-2021 a las 00:00:00 UTC. 1609459200 es la marca de tiempo de época del 2021-01-01 00:00:00 UTC en segundos.

    • updateTime>1609459200 o updateTime>2021-01-01 o updateTime>"2021-01-01T00:00:00" para encontrar los recursos de Google Cloud que se se actualiza después del 1-1-2021 a las 00:00:00 UTC. 1609459200 es la marca de tiempo de época del 2021-01-01 00:00:00 UTC en segundos.

    • project:12345 para encontrar recursos de Google Cloud que pertenecen a una cuenta 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 desciendan de la carpeta de Google Cloud con números 123 o 456.

    • organization:123 para encontrar recursos de Google Cloud que descendienten de la organización de Google Cloud con el número 123.

    • parentFullResourceName:ImportantName para encontrar recursos de Google Cloud cuyo el nombre del elemento superior contiene ImportantName.

    • parentAssetType:Project para encontrar los recursos de Google Cloud cuyo el tipo de recurso contiene Project.

    • Important para encontrar recursos de Google Cloud que contengan Important como una en cualquiera de los campos de búsqueda.

    • Impor* para encontrar recursos de Google Cloud que contengan Impor 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" como una palabra en cualquiera de los campos de búsqueda también se encuentra en la región us-west1 o en la ubicación global.

  • ASSET_TYPE: Opcional Una lista separada por comas de de recursos que se pueden buscar. Las expresiones regulares compatibles con RE2 son las siguientes: no es compatible. Si la expresión regular no coincide con ningún tipo de recurso admitido, se muestra un error INVALID_ARGUMENT.

  • ORDER_BY: Opcional Una lista de campos separados por comas especificando el orden de clasificación de los resultados. El orden predeterminado es ascendente. Agrega " DESC" después del nombre del campo para indicar un orden descendente. Redundante se ignoran los caracteres de espacio. Ejemplo: "location DESC, name". Solo singular los campos primitivos en la respuesta se pueden ordenar:

    • name

    • assetType

    • project

    • displayName

    • description

    • location

    • createTime

    • updateTime

    • state

    • parentFullResourceName

    • parentAssetType

    Todos los demás campos, como los campos repetidos (por ejemplo, networkTags, kmsKeys), asigna campos (por ejemplo, labels) y campos struct (por ejemplo, ejemplo, additionalAttributes).

  • READ_MASK: Opcional Es una lista de campos separados por comas que especifican qué campos se deben mostrar en los resultados. Si no se especifica, todas excepto que se muestra versionedResources. Si solo se especifica "*", se devuelven todos los campos. Ejemplos: "name,location", "name,versionedResources" y "*".

Para obtener más información sobre cómo 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 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 permiso cloudasset.assets.searchAllIamPolicies en el alcance deseado. Si no se especifica, el propiedad de proyecto configurada y control sobre el uso de sus datos.

    Los valores permitidos son los siguientes:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Cómo encontrar un número de proyecto de Google Cloud

      Console

      Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:

      1. Ve a la página Panel en la consola de Google Cloud.

        Ir al panel

      2. Haz clic en el cuadro de selector en la barra de menú.
      3. Selecciona tu organización en el cuadro Seleccionar una opción y, luego, busca tu el nombre del proyecto.
      4. Haz clic en el nombre del proyecto para cambiar a él. El número de proyecto se muestra Tarjeta Información del 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

      Cómo encontrar el ID de una carpeta de Google Cloud

      Console

      Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ve a la consola de Google Cloud

      2. Haz clic en el cuadro de selector en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. Busca el nombre de tu 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)"

      Donde TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadena completa o parcial. Quita el --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

      Console

      Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ve a la consola de Google Cloud

      2. Haz clic en el cuadro de selector en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. 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))"

  • QUERY: Opcional La instrucción de la consulta. Consulta Sintaxis de consultas para obtener más información. Si no se especifica o está vacío, Cloud Asset Inventory busca en todos los políticas en el scope especificado. La cadena de consulta se compara con cada vinculación de política de IAM, incluidos sus principales, funciones y condiciones de IAM. Solo las políticas de IAM que se muestran contienen las vinculaciones que coinciden con tu consulta. Para obtener más información 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 especifica el usuario amy@gmail.com.

    • policy:roles/compute.admin para encontrar vinculaciones de políticas de IAM que especifica el rol Administrador de Compute.

    • policy:comp* para encontrar vinculaciones de políticas de IAM que contengan comp como prefijo de cualquier palabra de la vinculación

    • policy.role.permissions:storage.buckets.update para encontrar la IAM vinculaciones de políticas que especifiquen un rol que contiene storage.buckets.update permiso. Si los emisores no tienen acceso iam.roles.get a los permisos incluidos en una función, las vinculaciones de políticas que especifiquen esta función se quitarán de los resultados de la búsqueda.

    • policy.role.permissions:upd* para encontrar vinculaciones de políticas de IAM que especifiquen un rol que contenga upd como prefijo de cualquier palabra en el rol permiso. Ten en cuenta que si los emisores no tienen acceso de iam.roles.get a un los permisos incluidos en el rol, se limitarán las vinculaciones de se eliminó de los resultados de búsqueda.

    • resource:organizations/123456 para encontrar vinculaciones de políticas de IAM configurados en “organizations/123456”.

    • resource=//cloudresourcemanager.googleapis.com/projects/myproject para encontrar las vinculaciones de políticas de IAM que se establecen myproject

    • Important para encontrar vinculaciones de políticas de IAM que contengan Important como una palabra en cualquiera de los campos de búsqueda (excepto los permisos incluidos).

    • resource:(instance1 OR instance2) policy:amy para encontrar la IAM las vinculaciones de políticas que se establecen en los recursos instance1 o instance2, y también especifica el usuario amy.

    • roles:roles/compute.admin para encontrar vinculaciones de políticas de IAM que especifica el rol Administrador de Compute.

    • memberTypes:user para encontrar vinculaciones de políticas de IAM que contengan el tipo de principal user.

  • ASSET_TYPE: Opcional Es una lista separada por comas de los tipos de recursos 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 se adjuntan a todos tipos de recursos. Expresiones regulares compatibles. Si la expresión regular no coincide con ningún recurso admitido , se muestra un error INVALID_ARGUMENT.

  • ORDER_BY: Opcional Una lista de campos separados por comas especificando el orden de clasificación de los resultados. El orden predeterminado es ascendente. Agrega " DESC" después del nombre del campo para indicar un orden descendente. Redundante se ignoran los caracteres de espacio. Ejemplo: "location DESC, name". Solo se pueden ordenar los campos primitivos singulares en la respuesta:

    • resource

    • assetType

    • project

    Todos los demás campos, como los campos repetidos (por ejemplo, folders) y los campos no primitivos (por ejemplo, policy) no son compatibles.

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 activos de forma una marca de tiempo determinada a un archivo en un bucket de Cloud Storage, completa los siguientes pasos: pasos.

  1. Crea un bucket nuevo si no tienes uno. que ya existe.

  2. Para exportar metadatos de activos en tu proyecto, ejecuta el siguiente comando. Esta 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: Es el ID del proyecto cuyos metadatos deseas exportar.

    • BILLING_PROJECT_ID: Opcional El ID del proyecto 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 realizaste ya has cambiado al proyecto de facturación con gcloud config set project Obtén más información sobre los proyectos de facturación.

    • CONTENT_TYPE: Opcional Es el tipo de contenido del activo que se exportará. Si no se especifica un tipo de contenido, solo se el nombre de usuario. Obtén más información sobre los tipos de contenido.

    • SNAPSHOT_TIME: Opcional La hora a la que si quieres tomar una instantánea de tus recursos. El valor debe ser el hora actual o de no más de 35 días en el pasado. Si no se proporciona, se toma una instantánea a la hora actual. Para obtener información sobre consulta gcloud topic datetimes.

    • BUCKET_NAME: Es el nombre del El bucket de Cloud Storage en el que se escribirá.

    • FILENAME: Es el archivo de tu 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 cuyo metadatos que quieres exportar.

      Cómo encontrar un ID de carpeta de Google Cloud

      Console

      Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de selector en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. Busca el nombre de tu 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)"

      Donde TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadena completa o parcial. Quita el --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 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 realizaste ya has cambiado al proyecto de facturación con gcloud config set project Obtén más información sobre los proyectos de facturación.

    • CONTENT_TYPE: Opcional Es el tipo de contenido del activo que se exportará. Si no se especifica un tipo de contenido, solo se el nombre de usuario. Obtén más información sobre los tipos de contenido.

    • SNAPSHOT_TIME: Opcional La hora a la que si quieres tomar una instantánea de tus recursos. El valor debe ser la hora actual o una hora que no sea superior a 35 días. Cuando no se toma una instantánea en ese momento. Para obtener información sobre consulta gcloud topic datetimes.

    • BUCKET_NAME: Es el nombre del El bucket de Cloud Storage en el que se escribirá.

    • FILENAME: Es el archivo de tu 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

      Console

      Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de selector en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. 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 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 realizaste ya has cambiado al proyecto de facturación con gcloud config set project Obtén más información sobre los proyectos de facturación.

    • CONTENT_TYPE: Opcional El tipo de contenido de el recurso que se exportará. Si no se especifica un tipo de contenido, solo se el nombre de usuario. Obtén más información sobre los tipos de contenido.

    • SNAPSHOT_TIME: Opcional La hora a la que si quieres tomar una instantánea de tus recursos. El valor debe ser el hora actual o de no más de 35 días en el pasado. Cuando no se toma una instantánea en ese momento. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.

    • BUCKET_NAME: Es el nombre del El bucket de Cloud Storage en el que se escribirá.

    • FILENAME: Es el archivo de tu El bucket de Cloud Storage en el que se escribirá.

  3. Opcional: Para verificar el estado de la exportación, ejecuta el siguiente comando. Integra se muestra en gcloud CLI después de ejecutar el comando de exportación.

    gcloud asset operations describe OPERATION_PATH
    

Visualiza el resumen de recursos

Sigue estos pasos para ver la instantánea del recurso después de exportarlo a Cloud Storage: completa los siguientes pasos.

  1. Ve a la página Buckets de Cloud Storage en la consola de Google Cloud.

    Ir a Buckets

  2. Abre el archivo en el que exportaste los metadatos.

El archivo de exportación enumera los recursos y sus nombres de recurso.

¿Qué sigue?