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 de 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.

Información acerca de las vistas de registro

Las vistas de registro te permiten otorgarle a un usuario acceso solo a un subconjunto de los registros almacenados en un bucket de registros. Por ejemplo, imagina 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 aporte registros al bucket de registros. Luego, puedes otorgar a cada usuario acceso a una o más vistas de registro y, de esta manera, restringir los registros que pueden ver.

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

Controla el acceso a una vista de registro

Cloud Logging usa políticas de IAM para controlar quién tiene acceso a las vistas de registro. Las políticas de IAM pueden existir a nivel del recurso, el proyecto, la carpeta y la organización. En el caso de Cloud Logging, puedes crear una política de IAM para cada vista de registro. Para determinar si un principal está autorizado para realizar una acción, IAM evalúa todas las políticas aplicables, con la primera evaluación a nivel del recurso.

Las principales con el rol de roles/logging.viewAccessor en un proyecto de Google Cloud pueden acceder a las vistas y los registros de cualquier bucket de registros del proyecto.

Para otorgar acceso de principal solo a una vista de registro específica, realiza una de las siguientes acciones:

  • Crea una política de IAM para la vista de registro y, luego, agrega una vinculación de IAM a esa política que otorgue al principal acceso a la vista de registro.

    Si creas una gran cantidad de vistas de registro, te recomendamos este enfoque.

  • Otorga al principal el rol de IAM de roles/logging.viewAccessor en el proyecto que contiene la vista de registro, pero adjunta una condición de IAM para restringir la concesión a la vista de registro específica. Si omites la condición, le otorgas al principal acceso a todas las vistas de registro. Hay un límite de 20 vinculaciones de roles en el archivo de políticas de un proyecto de Google Cloud que incluyen el mismo rol y el mismo principal, pero diferentes expresiones condicionales.

Para obtener más información, consulta la sección de este documento titulada Otorga acceso a una vista de registro.

Vistas de registro creadas automáticamente

Cloud Logging crea automáticamente 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 en el bucket de registros.
  • Vista _Default: Puedes ver todos los registros de auditoría que no sean de acceso a los datos en el bucket de registros.

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

Filtro de vista de registro

Cada vista de registro contiene un filtro que determina qué entradas de registro son visibles en la vista. Los filtros pueden contener operadores AND y NOT lógicos. 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 las entradas de registro de un recurso en particular en las organizaciones, carpetas y jerarquía de los 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 que usa 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 más información 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 correspondiente, crea un bucket de registro para el que deseas configurar una vista de registro personalizada.

  2. Para obtener los permisos que necesitas para crear y administrar vistas de registro y otorgar acceso a ellas, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:

    Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

    También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

  3. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

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

  5. Determina quién debe tener acceso a la vista de registro y si deseas agregar vinculaciones a la política de IAM de la vista de registro o del proyecto de Google Cloud. Para obtener más información, consulta Controla el acceso a una vista de registro.

Crea una vista de registro

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

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

  • VIEW_ID: Es el identificador de la vista de registro.
  • BUCKET_NAME: Es el nombre del bucket de registros.
  • LOCATION: Es la ubicación del bucket de registros.
  • FILTER: Es un filtro que define la vista de registro. Cuando está vacía, 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.

A continuación, otorga acceso a los principales a tu vista de registro.

Otorga acceso a una vista de registro

Para restringir un principal a una vista de registro específica en un bucket de registros definido por el usuario, existen dos enfoques que puedes usar:

  • Puedes usar el archivo de política de IAM de la vista de registro.

  • Puedes usar el archivo de política de IAM del proyecto de Google Cloud que almacena el bucket de registros, junto con una condición de IAM.

Cuando creas una gran cantidad de vistas de registro, te recomendamos que controles el acceso con el archivo de política de IAM de la vista de registro.

Vista de registro: Agrega vinculaciones de roles

En esta sección, se describe cómo usar el archivo de políticas de IAM para una vista de registro para controlar quién tiene acceso a las entradas de registro en esa vista de registro. Cuando usas este enfoque, agregas una vinculación al archivo de política de la vista de registro, que otorga al principal especificado acceso a la vista de registro.

En esta sección, también se describe cómo enumerar la vinculación de roles contenida en el archivo de política de IAM para una vista de registro.

Agrega una vinculación de roles a una vista de registro

Para actualizar el archivo de política de IAM de una vista de registro, completa los siguientes pasos:

gcloud

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

  • VIEW_ID: Es el identificador de la vista de registro.
  • PRINCIPAL: Es un identificador para la principal a la que deseas otorgar el rol. Los identificadores principales suelen tener el siguiente formato: PRINCIPAL-TYPE:ID. Por ejemplo, user:my-user@example.com. Para obtener una lista completa de los formatos que puede tener PRINCIPAL, consulta Identificadores de principal.
  • BUCKET_NAME: Es el nombre del bucket de registros.
  • LOCATION: Es la ubicación del bucket de registros.

Ejecuta el comando gcloud logging views add-iam-policy-binding:

Linux, macOS o Cloud Shell

gcloud logging views add-iam-policy-binding VIEW_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --bucket=BUCKET_NAME --location=LOCATION 

Windows (PowerShell)

gcloud logging views add-iam-policy-binding VIEW_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --bucket=BUCKET_NAME --location=LOCATION 

Windows (cmd.exe)

gcloud logging views add-iam-policy-binding VIEW_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --bucket=BUCKET_NAME --location=LOCATION 

A continuación, se ilustra la respuesta cuando se agrega una sola vinculación:

Updated IAM policy for logging view [projects/PROJECT_ID/locations/global/buckets/BUCKET_NAME/views/VIEW_ID].
bindings:
- members:
  - PRINCIPAL
  role: roles/logging.viewAccessor
etag: BwYXfSd9-Gw=
version: 1

Terraform

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform. Para obtener más información, consulta la documentación de referencia del proveedor de Terraform.

Para aprovisionar asociaciones de IAM para una vista de registro con Terraform, hay varios recursos diferentes disponibles:

  • google_logging_log_view_iam_policy
  • google_logging_log_view_iam_binding
  • google_logging_log_view_iam_member

Para obtener más información, consulta la política de IAM para LogView de Cloud Logging.

Console

No compatible. Para agregar vinculaciones a una vista de registro, usa Google Cloud CLI.

Cómo ver una lista de vinculaciones de roles en una vista de registro

Para enumerar las vinculaciones de IAM de una vista de registro, completa los siguientes pasos.

gcloud

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

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

Ejecuta el comando gcloud logging views get-iam-policy:

Linux, macOS o Cloud Shell

gcloud logging views get-iam-policy VIEW_ID --bucket=BUCKET_NAME --location=LOCATION 

Windows (PowerShell)

gcloud logging views get-iam-policy VIEW_ID --bucket=BUCKET_NAME --location=LOCATION 

Windows (cmd.exe)

gcloud logging views get-iam-policy VIEW_ID --bucket=BUCKET_NAME --location=LOCATION 

Cuando una vista de registro no contiene ninguna vinculación, la respuesta solo contiene un campo etag. A continuación, se ilustra la respuesta cuando una vista de registro contiene una sola vinculación:

bindings:
- members:
  - PRINCIPAL
  role: roles/logging.viewAccessor
etag: BwYXfSd9-Gw=
version: 1

Terraform

Para enumerar las asociaciones de IAM para las vistas de registro con Terraform, usa la fuente de datos google_logging_log_view_iam_policy.

Console

No compatible. Para enumerar las vinculaciones de una vista de registro, usa Google Cloud CLI.

Proyecto de Google Cloud: Agrega vinculaciones de roles

En esta sección, se describe cómo agregar una vinculación de roles a un proyecto de Google Cloud y cómo enumerar las vinculaciones adjuntas a un proyecto. Cuando usas este enfoque, para restringir a un principal para que tenga acceso a las entradas de registro almacenadas en una vista de registro específica, debes agregar una condición de IAM a la concesión.

Agrega una vinculación de roles a un proyecto

Para agregar una vinculación de roles al archivo de política de IAM de un proyecto de Google Cloud, completa los siguientes pasos.

gcloud

  1. Crea un archivo JSON o YAML con tu condición.

    Por ejemplo, puedes crear un archivo llamado condition.yaml con el siguiente contenido:

    expression: "resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\""
    title: "My title"
    description: "My description"
    
  2. Opcional: Para verificar que el archivo JSON o YAML tenga el formato correcto, ejecuta el siguiente comando:

    gcloud alpha iam policies lint-condition --condition-from-file=condition.yaml
    
  3. Llama al método gcloud projects add-iam-policy-binding para actualizar la política de IAM en el proyecto de Google Cloud.

    Antes de usar el siguiente comando, realiza los siguientes reemplazos:

    • PROJECT_ID: Es el identificador del proyecto.
    • PRINCIPAL: Es un identificador para la principal a la que deseas otorgar el rol. Los identificadores principales suelen tener el siguiente formato: PRINCIPAL-TYPE:ID. Por ejemplo, user:my-user@example.com. Para obtener una lista completa de los formatos que puede tener PRINCIPAL, consulta Identificadores de principal.

    Ejecuta el comando gcloud projects add-iam-policy-binding:

    gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --condition-from-file=condition.yaml
    

    La respuesta al comando anterior incluye todas las vinculaciones de roles.

    - condition:
        description: My description
        expression: resource.name == "projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID"
        title: My title
      members:
      - PRINCIPAL
      role: roles/logging.viewAccessor
    

Terraform

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform. Para obtener más información, consulta la documentación de referencia del proveedor de Terraform.

Para aprovisionar asociaciones de IAM para proyectos con Terraform, hay varios recursos diferentes disponibles:

  • google_project_iam_policy
  • google_project_iam_binding
  • google_project_iam_member

Para obtener más información, consulta la política de IAM para proyectos.

Console

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

  1. En la consola de Google Cloud, ve a la página IAM:

    Ir a IAM

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es IAM y administrador.

  2. Haz clic en Grant access.

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

  4. En el menú desplegable Seleccionar un rol, selecciona Descriptor de acceso de vistas de registro.

    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.

Cómo enumerar la vinculación de roles en un proyecto

Para ver una lista de las vinculaciones de roles en un proyecto de Google Cloud, completa los siguientes pasos.

gcloud

Antes de usar el siguiente comando, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el identificador del proyecto.

Ejecuta el comando gcloud projects get-iam-policy:

gcloud projects get-iam-policy PROJECT_ID

La respuesta al comando anterior incluye todas las vinculaciones de roles.

- condition:
    description: My description
    expression: resource.name == "projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID"
    title: My title
  members:
  - PRINCIPAL
  role: roles/logging.viewAccessor

Terraform

Para enumerar las asociaciones de IAM para proyectos con Terraform, usa la fuente de datos google_project_iam_policy.

Console

En la consola de Google Cloud, ve a la página IAM:

Ir a IAM

Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es IAM y administrador.

En la página IAM, se enumeran todos los principales, sus roles de IAM y las condiciones asociadas a esos roles.

Cómo enumerar las vistas de registro en un bucket de registros

Para 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, realiza los siguientes reemplazos:

  • BUCKET_NAME: Es el nombre del bucket de registros.
  • LOCATION: Es 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 la respuesta son una lista de vistas de registro. Para cada vista de registro, se muestra el filtro junto con las fechas de creación y de la última actualización. Cuando las fechas de creación y actualización están vacías, la vista de registro se creó cuando se creó el proyecto de Google Cloud. En el siguiente ejemplo de resultado, 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

Actualiza 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 las vistas de registro.

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

  • VIEW_ID: Es el identificador de la vista de registro.
  • BUCKET_NAME: Es el nombre del bucket de registros.
  • LOCATION: Es la ubicación del bucket de registros.
  • FILTER: Es un filtro que define la vista de registro. Cuando está vacía, 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.

Borra una vista de registro

Cuando ya no necesites una vista de registro que creaste, puedes borrarla. Sin embargo, antes de borrar una vista de registro, te recomendamos que verifiques que otro recurso, como una búsqueda guardada, no haga referencia a ella.

No puedes borrar la vista de registro _Default en el bucket de registros _Default.

Para borrar una vista de registro, haz lo siguiente:

  1. Opción recomendada: Revisa tu proyecto de Google Cloud para asegurarte de que no se haga referencia a la vista de registro. Considera examinar lo siguiente:

    • Las consultas se ejecutan desde las páginas del Explorador de registros o Análisis de registros que se guardaron o compartieron.
    • Paneles personalizados
  2. Usa el comando gcloud logging views delete. Si no conoces el ID de la vista, consulta Cómo enumerar las vistas de registro.

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

    • VIEW_ID: Es el identificador de la vista de registro.
    • BUCKET_NAME: Es el nombre del bucket de registros.
    • LOCATION: Es 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, lo siguiente muestra la respuesta a la eliminación de una vista de registro llamada tester:

    Deleted [tester].
    

Describe 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 las vistas de registro.

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

  • VIEW_ID: Es el identificador de la vista de registro.
  • BUCKET_NAME: Es el nombre del bucket de registros.
  • LOCATION: Es 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 completamente calificado de la vista de registro. También incluye el filtro, cuando el campo de filtro no está vacío. A continuación, se muestra una respuesta de ejemplo:

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 los registros asociados con una vista de registros

Para ver los registros en una vista de registros, asegúrate de tener el rol Logs View Accessor (roles/logging.viewAccessor) de la vista de registros:

  1. En la consola de Google Cloud, ve a la página Explorador de registros.

    Ir al Explorador de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. En la barra de herramientas, haz clic en Definir mejor el alcance, en Vista de registro y, luego, selecciona las vistas de registro.

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

¿Qué sigue?

Para obtener información sobre cómo controlar el acceso a campos específicos en una entrada de registro, consulta Cómo configurar el acceso a nivel de campo.