Configura vistas de registro en un bucket de registros

En este documento, se describe cómo crear y administrar vistas de registro en tus buckets de Cloud Logging con gcloud CLI. Las vistas de registro te brindan un control avanzado y detallado sobre quién tiene acceso a los registros en tus buckets de registros.

Para obtener información general sobre el modelo de almacenamiento de Logging, consulta Descripción general del enrutamiento y el almacenamiento.

Acerca de las vistas de registro

Las vistas de registro te permiten otorgar a un usuario acceso solo a un subconjunto de los registros almacenados en un bucket de registros. Por ejemplo, considera una situación en la que almacenas los registros de tu organización en un proyecto central. Puedes crear una vista de registro para cada proyecto que contribuye con registros al bucket de registros. Luego, puedes otorgar a cada usuario acceso a una o más vistas de registro y, por lo tanto, restringir los registros que pueden ver los usuarios.

Cloud Logging crea de forma automática una vista _AllLogs para cada bucket de registros y una vista _Default para el bucket de registros _Default:

  • Vista _AllLogs: Puedes ver todos los registros del bucket de registros.
  • Vista _Default: Puedes ver todos los registros de auditoría de acceso a los datos en el bucket de registros.

No puedes modificar las vistas que Cloud Logging crea automáticamente. Sin embargo, puedes borrar la vista _AllLogs.

Puedes crear un máximo de 30 vistas de registros por bucket de registros.

Cada vista de registro contiene un filtro que restringe las entradas de registro que son visibles en la vista. Los filtros pueden contener operadores lógicos AND y NOT. Sin embargo, no pueden incluir operadores OR lógicos. Los filtros pueden comparar cualquiera de los siguientes valores:

  • Una fuente de datos que usa la función source. La función source muestra entradas de registro de un recurso específico en la jerarquía de organizaciones, carpetas y proyectos de Google Cloud.

  • Un ID de registro con la función log_id. La función log_id muestra entradas de registro que coinciden con el argumento LOG_ID determinado del campo logName.

  • Un tipo de recurso válido mediante la comparación resource.type= FIELD_NAME.

Por ejemplo, el siguiente filtro captura las entradas de registro stdout de Compute Engine de un proyecto de Google Cloud llamado myproject:

source("projects/myproject") AND resource.type = "gce_instance" AND log_id("stdout")

Para obtener detalles sobre la sintaxis de filtrado, consulta Comparaciones.

Antes de comenzar

Antes de crear o actualizar una vista de registro, completa los siguientes pasos:

  1. Si aún no lo hiciste, en el proyecto de Google Cloud adecuado, crea un bucket de Logging para el que desees configurar una vista de registro personalizada.

  2. Si quieres obtener los permisos que necesitas para crear, ver, actualizar y borrar vistas de registro, pídele a tu administrador que te otorgue el rol de IAM Escritor de configuración de registros (roles/logging.configWriter) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

    Es posible que también puedas obtener los permisos necesarios a través de los roles personalizados o de otros roles predefinidos.

  3. Instala Google Cloud CLI.

  4. Determina qué registros deseas incluir en la vista. Usarás esta información para especificar el filtro de la vista de registro.

  5. Determina quién debe tener acceso a la vista de registro. Las principales con la función de roles/logging.viewAccessor pueden ver los registros en cualquier vista de registro. Sin embargo, Cloud Logging admite condiciones de IAM. Las condiciones te permiten otorgar a una principal acceso a una vista de registro específica. Para obtener más información, consulta Cómo otorgar acceso a una vista de registro.

Crea una vista de registro

Para crear una vista de registro, usa el comando gcloud logging views update. Puedes crear un máximo de 30 vistas de registros por bucket de registros.

Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:

  • VIEW_ID: Es el identificador de la vista de registro.
  • BUCKET_NAME: Es el nombre del bucket de registros.
  • LOCATION: La ubicación del bucket de registros
  • FILTER: Es un filtro que define la vista de registro. Cuando está vacío, la vista de registro incluye todos los registros. Por ejemplo, para filtrar por registros de instancias de VM de Compute Engine, ingresa "resource.type=gce_instance".
  • DESCRIPTION: Es una descripción de la vista de registro. Por ejemplo, puedes ingresar lo siguiente para la descripción "Compute logs".

Ejecuta el comando gcloud logging views create:

Linux, macOS o Cloud Shell

gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (PowerShell)

gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (cmd.exe)

gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Este comando no proporciona una respuesta. Para confirmar los cambios, puedes ejecutar el comando gcloud logging views list.

Enumerar vistas de registro en un bucket de registros

A fin de enumerar las vistas de registro creadas para un bucket de registros, usa el comando gcloud logging views list.

Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:

  • BUCKET_NAME: Es el nombre del bucket de registros.
  • LOCATION: La ubicación del bucket de registros

Ejecuta el comando gcloud logging views list:

Linux, macOS o Cloud Shell

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

Windows (PowerShell)

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

Windows (cmd.exe)

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

Los datos de respuesta son una lista de vistas de registro. Para cada vista de registro, el filtro se muestra junto con las fechas de creación y última actualización. Cuando las fechas de creación y actualización están vacías, se creó la vista de registro cuando se creó el proyecto de Google Cloud. En el siguiente resultado de ejemplo, se muestra que hay dos IDs de vista, _AllLogs y compute, en el bucket de registros que se consultó:

VIEW_ID: _AllLogs
FILTER:
CREATE_TIME:
UPDATE_TIME:

VIEW_ID: compute
FILTER: resource.type="gce_instance"
CREATE_TIME: 2024-02-20T17:41:17.405162921Z
UPDATE_TIME: 2024-02-20T17:41:17.405162921Z

Otorga acceso a una vista de registro

Las principales con la función roles/logging.viewAccessor en un proyecto de Google Cloud pueden ver los registros en cualquier vista de registro. Sin embargo, Cloud Logging admite condiciones de IAM. Las condiciones te permiten otorgar a una principal acceso a una vista de registro específica.

Las condiciones de IAM se especifican en la vinculación de función para un proyecto de Google Cloud. Existe un límite de 20 vinculaciones de funciones en una política de permisos que incluyen la misma función y la misma principal, pero diferentes expresiones condicionales.

Para agregar usuarios a una vista a fin de permitirles acceder a los registros, completa los siguientes pasos.

gcloud

  1. Obtén la política de IAM del proyecto y escríbela en un archivo local en formato JSON. Antes de ejecutar el siguiente comando, reemplaza PROJECT_ID por el ID del proyecto que contiene el bucket de registros:

    gcloud projects get-iam-policy PROJECT_ID --format json > output.json
    
  2. Edita el archivo JSON que creaste y agrega una condición de IAM que permita al usuario leer desde el bucket de registros que creaste.

    En el siguiente ejemplo, se especifica una vinculación que otorga la función "roles/logging.viewAccessor" a los miembros especificados, pero solo para una vista de registro única:

    {
      "bindings": [
        {
          "members": [
            "user:username@gmail.com"
          ],
          "role": "roles/logging.viewAccessor",
          "condition": {
              "title": "Bucket reader condition example",
              "description": "Grants logging.viewAccessor role to user username@gmail.com for the VIEW_ID log view.",
              "expression":
                "resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\""
          }
        }
      ],
      "etag": "BwWd_6eERR4=",
      "version": 3
    }
  3. Actualiza la política de IAM:

    gcloud projects set-iam-policy PROJECT_ID output.json
    

Console

En el proyecto en el que creaste el bucket de registros, haz lo siguiente:

  1. En el panel de navegación de la consola de Google Cloud, elige IAM:

    Ir a IAM

  2. Haz clic en Otorgar acceso.

  3. En el campo Principales nuevas, agrega la cuenta de correo electrónico del usuario.

  4. En el menú desplegable Selecciona un rol, selecciona Descriptor de acceso de vista de registros.

    Esta función les proporciona a los usuarios acceso de lectura a todas las vistas. Para limitar el acceso de los usuarios a un depósito específico, agrega una condición basada en el nombre del recurso.

    1. Haz clic en Agregar condición de IAM.

    2. Ingresa un Título y una Descripción para la condición.

    3. En el menú desplegable Tipo de condición, selecciona Recurso > Nombre.

    4. En el menú desplegable Operador, selecciona es.

    5. En el campo Valor, ingresa el ID de la vista de registros, incluida la ruta de acceso completa a la vista.

      Por ejemplo:

      projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID
    6. Haga clic en Guardar para agregar la condición.

  5. Haz clic en Guardar para configurar los permisos.

Actualizar una vista de registro

Para actualizar o modificar una vista de registro, usa el comando gcloud logging views update. Si no conoces el ID de la vista, consulta Cómo enumerar vistas de registro.

Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:

  • VIEW_ID: Es el identificador de la vista de registro.
  • BUCKET_NAME: Es el nombre del bucket de registros.
  • LOCATION: La ubicación del bucket de registros
  • FILTER: Es un filtro que define la vista de registro. Cuando está vacío, la vista de registro incluye todos los registros. Por ejemplo, para filtrar por registros de instancias de VM de Compute Engine, ingresa "resource.type=gce_instance".
  • DESCRIPTION: Es una descripción de la vista de registro. Por ejemplo, puedes ingresar lo siguiente para la descripción "New description for the log view".

Ejecuta el comando gcloud logging views update:

Linux, macOS o Cloud Shell

gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (PowerShell)

gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (cmd.exe)

gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Este comando no proporciona una respuesta. Para confirmar los cambios, puedes ejecutar el comando gcloud logging views describe.

Borrar una vista de registro

Para borrar una vista de registro, usa el comando gcloud logging views delete. Si no conoces el ID de la vista, consulta Cómo enumerar vistas de registro.

Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:

  • VIEW_ID: Es el identificador de la vista de registro.
  • BUCKET_NAME: Es el nombre del bucket de registros.
  • LOCATION: La ubicación del bucket de registros

Ejecuta el comando gcloud logging views delete:

Linux, macOS o Cloud Shell

gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (PowerShell)

gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (cmd.exe)

gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

La respuesta confirma la eliminación. Por ejemplo, a continuación se muestra la respuesta para borrar una vista de registro llamada tester:

Deleted [tester].

Describir una vista de registro

Para recuperar información detallada sobre una vista de registro, usa el comando gcloud logging views describe. Si no conoces el ID de la vista, consulta Cómo enumerar vistas de registro.

Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:

  • VIEW_ID: Es el identificador de la vista de registro.
  • BUCKET_NAME: Es el nombre del bucket de registros.
  • LOCATION: La ubicación del bucket de registros

Ejecuta el comando gcloud logging views describe:

Linux, macOS o Cloud Shell

gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (PowerShell)

gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (cmd.exe)

gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

La respuesta siempre incluye la descripción y el nombre completo de la vista de registro. También incluye el filtro, cuando el campo de filtro no está vacío. La siguiente es una respuesta de muestra:

createTime: '2024-02-20T17:41:17.405162921Z'
filter: resource.type="gce_instance"
name: projects/my-project/locations/global/buckets/my-bucket/views/compute
updateTime: '2024-02-20T17:41:17.405162921Z'

Visualiza registros asociados con una vista de registro

Si deseas ver los registros en una vista de registro, asegúrate de tener la función Descriptor de acceso de vista de registros (roles/logging.viewAccessor) para la vista de registro:

  1. En el panel de navegación de la consola de Google Cloud, elige Logging y, luego, Explorador de registros:

    Ir al Explorador de registros

  2. Haz clic en Define mejor el permiso para mostrar el panel Define mejor el permiso. Desde aquí, puedes seleccionar el bucket y la vista de registro que deseas usar para ver tus registros.

El panel define mejor el alcance

Para obtener más información, consulta la documentación sobre el Explorador de registros.

¿Qué sigue?

Configura el acceso a nivel de campo.