Comienza a usar Cloud Asset Inventory

En esta guía de inicio rápido, se muestra cómo exportar los metadatos de los elementos en un momento determinado con Cloud Asset Inventory y los comandos gcloud asset del SDK de Cloud.

Antes de comenzar

Antes de que puedas comenzar a trabajar con Cloud Asset Inventory, debes habilitar la API de Cloud Asset Inventory, el SDK de Cloud y asignar permisos. El SDK de Cloud proporciona la herramienta de línea de comandos de gcloud para interactuar con Cloud Asset Inventory y otros servicios de Google Cloud. Obtén más información sobre la herramienta de gcloud.

Habilita la API de Cloud Asset Inventory y el SDK de Cloud

  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. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyecto

  3. Habilita la API necesaria.

    Habilita la API

  4. Instala e inicializa el SDK de Cloud.

Configurar permisos

Para llamar a la API de Cloud Asset Inventory, primero debes configurar los permisos.

Buscar recursos

  1. Para buscar metadatos de recursos, ejecuta el siguiente comando de gcloud asset search-all-resources.

     gcloud asset search-all-resources \
        --scope SCOPE \
        --query QUERY \
        --asset-types ASSET_TYPES,… \
        --order-by ORDER_BY
    

    Todas las siguientes marcas son opcionales:

    • (Opcional) SCOPE: Un permiso puede ser un proyecto, una carpeta o una organización. La búsqueda está limitada a los recursos de Google Cloud dentro de este alcance. El emisor debe tener el permiso cloudasset.assets.searchAllResources en el alcance deseado. Si no se especifica, se usará la propiedad del proyecto configurado. Para encontrar el proyecto configurado, ejecuta gcloud config get-value project. Para cambiar la configuración, ejecuta gcloud config set project PROJECT_ID.

      Los valores permitidos son los siguientes:

      • projects/PROJECT_ID (p. ej., "projects/foo-bar")
      • projects/PROJECT_NUMBER (p. ej., "projects/12345678")
      • folders/FOLDER_NUMBER (p. ej., "folders/1234567")
      • organizations/ORGANIZATION_NUMBER (p. ej., "organizations/123456")
    • QUERY: la declaración de la consulta (opcional). Consulta cómo construir una consulta para obtener más información. Si no se especifica o está vacía, buscará todos los recursos dentro del scope especificado.

      Ejemplos:

      • name:Important para encontrar recursos de Google Cloud cuyo nombre contenga “Importante” como palabra.
      • name=Important para encontrar el recurso de Google Cloud cuyo nombre es exactamente "Importante".
      • displayName:Impor* para encontrar recursos de Google Cloud cuyo nombre comercial contenga “Impax” como prefijo.
      • location:us-west* para encontrar recursos de Google Cloud cuya ubicación contenga los términos “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 tengan una etiqueta “env” y su valor sea “prod”.
      • labels.env:* para encontrar recursos de Google Cloud que tengan una etiqueta “env”.
      • kmsKey:key para encontrar recursos de Google Cloud encriptados con una clave de encriptación administrada por el cliente cuyo nombre contenga “clave” como palabra.
      • 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 contenga "ACTIVE".
      • createTime<1609459200, createTime<2021-01-01 o createTime<"2021-01-01T00:00:00" para encontrar recursos de Google Cloud que se crearon antes de “2021-01-01 00:00:00 UTC”. 1609459200 es la marca de tiempo en ciclo de entrenamiento “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 recursos de Google Cloud que se actualizaron después de “2021-01-01 00:00:00 UTC”. 1609459200 es la marca de tiempo del ciclo de entrenamiento de “2021-01-01 00:00:00 UTC” en segundos.
      • project:12345 para encontrar recursos de Google Cloud que pertenezcan 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 sean descendientes de la 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 principal contenga ImportantName.
      • parentAssetType:Project para encontrar recursos de Google Cloud cuyo tipo de elemento principal contenga Project.
      • Important para encontrar recursos de Google Cloud que contengan la palabra "Importante" como palabra en cualquiera de los campos de búsqueda.
      • Impor* para encontrar recursos de Google Cloud que contengan "Impor" como un 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 palabra en cualquiera de los campos de búsqueda y también se encuentran en la región "us-west1" o en la ubicación "global" las rutas "a GCP".
    • ASSET_TYPES (Opcional) Es una lista de tipos de recursos para buscar. Si no se especifica o está vacía, buscará todos los tipos de recursos que se pueden buscar. Ejemplo: "cloudresourcemanager.googleapis.com/Project,compute.googleapis.com/Instance" para buscar recursos de instancias de proyecto y de VM. También se admiten expresiones regulares. Por ejemplo: recursos de instantáneas "compute.googleapis.com.*" cuyo tipo de elemento comienza con "compute.googleapis.com". Consulta RE2 para ver todas las sintaxis de expresión regular compatibles. Si la expresión regular no coincide con ningún tipo de elemento compatible, se mostrará un error INVALID_ARGUMENT.

    • ORDER_BY (opcional): Es una lista de campos separados por comas que especifican 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 los campos de string de la respuesta se pueden ordenar, incluidos name, displayName, description y location.

    Para obtener más información sobre cómo buscar recursos, consulta Busca recursos.

  2. Para buscar políticas de IAM, ejecuta el siguiente comando de gcloud asset search-all-iam-policies.

     gcloud asset search-all-iam-policies \
        --scope SCOPE \
        --query QUERY \
    

    Aquí:

    • (Opcional) SCOPE: Un permiso puede ser un proyecto, una carpeta o una organización. La búsqueda se limita a las políticas de administración de identidades y accesos (IAM) dentro de este alcance. El emisor debe tener el permiso cloudasset.assets.searchAllIamPolicies en el alcance deseado. Si no se especifica, se usará la propiedad del proyecto configurado. Para encontrar el proyecto configurado, ejecuta gcloud config get-value project. Para cambiar la configuración, ejecuta gcloud config set project PROJECT_ID.

      Los valores permitidos son los siguientes:

      • projects/PROJECT_ID (p. ej., "projects/foo-bar")
      • projects/PROJECT_NUMBER (p. ej., "projects/12345678")
      • folders/FOLDER_NUMBER (p. ej., "folders/1234567")
      • organizations/ORGANIZATION_NUMBER (p. ej., "organizations/123456")
    • QUERY: la declaración de la consulta (opcional). Consulta cómo construir una consulta para obtener más información. Si no se especifica o está vacía, buscará todas las políticas de IAM dentro del scope especificado. Ten en cuenta que la string de consulta se compara con cada vinculación de política de IAM, incluidos sus miembros, funciones y condiciones de IAM. Las políticas de IAM que se muestran solo contendrán las vinculaciones que coinciden con tu consulta. Para obtener más información sobre la estructura de políticas de IAM, consulta la documentación de la política de IAM.

      Ejemplos:

      • policy:amy@gmail.com para encontrar vinculaciones de política de IAM que especifiquen el usuario “amy@gmail.com”.
      • policy:roles/compute.admin para encontrar vinculaciones de política de IAM que especifiquen la función de administrador de Compute.
      • policy:comp* para encontrar vinculaciones de política de IAM que contengan “comp” como prefijo de cualquier palabra en la vinculación.
      • policy.role.permissions:storage.buckets.update para encontrar vinculaciones de política de IAM que especifiquen una función que contenga el permiso “storage.buckets.update”. Ten en cuenta que si los emisores no tienen acceso de iam.roles.get a los permisos incluidos en una función, las vinculaciones de políticas que especifican esta función se quitarán de los resultados de la búsqueda.
      • policy.role.permissions:upd* para encontrar vinculaciones de política de IAM que especifiquen una función que contenga "uped" como un prefijo de cualquier palabra en el permiso de función. Ten en cuenta que, si los emisores no tienen acceso iam.roles.get a los permisos incluidos en una función, las vinculaciones de política que especifican esta función se quitarán de los resultados de la búsqueda.
      • resource:organizations/123456 para encontrar vinculaciones de políticas de IAM que se establecen en "organizations/123456".
      • resource=//cloudresourcemanager.googleapis.com/projects/myproject para encontrar vinculaciones de política de IAM que se configuren en el proyecto llamado "myproject".
      • Important para encontrar vinculaciones de políticas de IAM que contengan la palabra "Importante" 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 recursos “instance1” o “instance2” y también especifican el usuario “amy”.

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

  1. Crea un depósito nuevo si tu proyecto no tiene un depósito de Cloud Storage existente que esté disponible para almacenar datos exportados.

  2. Para exportar metadatos de elementos dentro de tu proyecto, ejecuta el siguiente comando. Este comando almacena la instantánea exportada en un depósito de Cloud Storage en gs://YOUR_BUCKET/NEW_FILE.

    gcloud asset export \
       --content-type CONTENT_TYPE \
       --project PROJECT_ID \
       --snapshot-time SNAPSHOT_TIME \
       --output-path "gs://YOUR_BUCKET/NEW_FILE"
    

    Aquí:

    • (Opcional)CONTENT_TYPE El tipo de contenido del activo que se exportará. Si no se especifica un tipo de contenido, solo se mostrará el nombre del elemento. Los tipos de ejemplo incluyen resource, que exporta metadatos de recursos. iam-policy, que exporta la política de IAM para cada elemento secundario del recurso especificado, y así sucesivamente. Otras opciones incluyen org-policy, access-policy y os-inventory. Consulta la sección de marcas opcionales gcloud asset export para obtener más información.
    • PROJECT_ID: El ID del proyecto a partir del cual se exportan los metadatos. Este proyecto puede ser el proyecto en el que está habilitada la API de Cloud Asset Inventory y en el que ejecutas la exportación, o bien un proyecto diferente.
    • SNAPSHOT_TIME (opcional): El valor debe ser la hora actual o una hora pasada a partir de la que deseas tomar una instantánea de tus elementos. De forma predeterminada, se toma una instantánea a la hora actual. Consulta gcloud topic datetimes para obtener información sobre los formatos de tiempo, por ejemplo: --snapshot-time 2021-05-25T10:49:41Z Nota: Si especificas una hora de instantánea, no puede exceder los 35 días. en el pasado.
  3. Para exportar los elementos de una organización o carpeta, puedes usar una de las siguientes marcas en lugar de la marca --project:

    • --organization=ORGANIZATION_ID
    • --folder=FOLDER_ID
  4. (Opcional) Para verificar el estado de la exportación, ejecuta el siguiente comando. Se muestra en la herramienta de gcloud después de ejecutar el comando de exportación.

    gcloud asset operations describe projects/PROJECT_ID/operations/ExportAssets/CONTENT_TYPE/OPERATION_NUMBER
    

Visualiza la instantánea de un recurso

Para ver una instantánea de elementos después de exportarla a Cloud Storage, completa los siguientes pasos.

  1. Ir a la página Navegador de Cloud Storage
    Abrir la página Navegador de Cloud Storage

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

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

¿Qué sigue?