En este documento, se describe cómo crear y administrar vistas de registro en tu buckets Cloud Logging con gcloud CLI. Las vistas de registro te brindan un control avanzado y detallado 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 permiten conceder 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 contribuya 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 qué registros que los usuarios pueden ver.
Puedes crear un máximo de 30 vistas de registro por bucket de registros.
Cómo controlar el acceso a una vista de registro
Cloud Logging usa políticas de IAM para controlar quién tiene acceso para registrar vistas. Las políticas de IAM pueden existir a nivel del recurso, proyecto carpeta y organización. Para Cloud Logging, puedes crear un Política de IAM para cada vista de registro. Para determinar si una principal está autorizada para una acción, IAM evalúa todas las políticas aplicables, con la primera evaluación a nivel de recurso.
Principales con la función de roles/logging.viewAccessor
en un
Los proyectos de Google Cloud pueden acceder a las vistas y los registros de cualquier bucket de registros.
en el proyecto.
Para otorgar a una principal acceso solo a una vista de registro específica, realiza una de las siguientes acciones: lo siguiente:
Crea una política de IAM para la vista de registro y, luego, agrega una IAM vinculada a esa política que otorga a la principal acceso a la vista de registro.
Si creas una gran cantidad de vistas de registro, te recomendamos este enfoque.
Otorga a la principal el rol de IAM de
roles/logging.viewAccessor
en el proyecto que contiene la vista de registro. pero adjuntar un Condición de IAM a restringir el otorgamiento a una vista de registro específica. Si omites el Luego, le otorgas a la principal acceso a todas las vistas de registro. El límite es de 20 vinculaciones de roles en el archivo de política para un proyecto de Google Cloud que incluyan la misma función y la misma principal, pero distintas 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
y una vista _Default
para el bucket de registros _Default
:
- Vista
_AllLogs
: Puedes ver todos los registros en el bucket de registros. - Vista de
_Default
: Puedes ver todos los registros de auditoría que no son de acceso a los datos en la bucket de registros.
No puedes modificar las vistas que Cloud Logging crea automáticamente.
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
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 utiliza el Función
source
. La funciónsource
muestra entradas de registro de un recurso en particular en las organizaciones, las carpetas y la jerarquía de proyectos de Google Cloud.Un ID de registro con el Función
log_id
. La funciónlog_id
muestra entradas de registro que coinciden con elLOG_ID
especificado. argumento delogName
.Un tipo de recurso válido que use el
resource.type=
FIELD_NAME comparación.
Por ejemplo, el siguiente filtro captura el registro stdout
de Compute Engine
entradas 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:
Si aún no lo has hecho, en el proyecto de Google Cloud adecuado, crear un bucket de Logging para el que quieres configurar una vista de registro personalizada.
-
A fin de obtener los permisos que necesitas para crear y administrar vistas de registro y otorgar acceso a vistas de registro, haz lo siguiente: solicita a tu administrador que te otorgue el los siguientes roles de IAM en tu proyecto:
-
Escritor de configuración de registros (
roles/logging.configWriter
) -
Para agregar una vinculación de función a un proyecto, haz lo siguiente:
Administrador de IAM del proyecto (
roles/resourcemanager.projectIamAdmin
) -
Para agregar una vinculación de función a una vista de registro, haz lo siguiente:
Administrador de Logging (
roles/logging.admin
)
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.
-
Escritor de configuración de registros (
Instala Google Cloud CLI.
Determina qué registros deseas incluir en la vista. Usas esta para especificar el filtro de la vista de registro.
Determina quién debe tener acceso a la vista de registro y si deseas para agregar vinculaciones a la política de IAM de la vista de registro o el proyecto de Google Cloud. Para obtener más información, consulta Cómo controlar el 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 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 del registro. Cuando está vacía, la vista del 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 el valor
descripción
"Compute logs"
.
Ejecuta el
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
Comando gcloud logging views list
.
A continuación, otorga a las principales acceso a tu vista de registro.
Otorga acceso a una vista de registro
Para restringir una principal a una vista de registro específica en un bucket de registros definido por el usuario, hay 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íticas de IAM de el proyecto de Google Cloud que almacena el bucket de registros, junto con un Condición de IAM.
Cuando creas una gran cantidad de vistas de registro, te recomendamos que controles el acceso con Archivo de política de IAM de la vista de registro.
Vista de registro: Cómo agregar vinculaciones de roles
En esta sección, se describe cómo usar la IAM archivo de políticas para una vista de registro que controle quién tiene acceso a las entradas de registro en esa vista de registro. Cuando usas este enfoque, agregas una vinculación a la archivo de políticas de la vista de registro, la vinculación otorga a la principal especificada 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 rol a una vista de registro
Para actualizar el archivo de políticas 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: Un identificador para la principal que deseas
a la que otorgas 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 tenerPRINCIPAL
, consulta Identificadores principales. - BUCKET_NAME: Es el nombre del bucket de registros.
- LOCATION: Es la ubicación del bucket de registros.
Ejecuta el
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 muestra 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 disponibles varios recursos diferentes:
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 Política de IAM para LogView de Cloud Logging.
Console
No compatible. Para agregar vinculaciones a una vista de registro, usa Google Cloud CLI.
Enumerar 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
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 vinculaciones, la respuesta solo contiene un etag
.
. A continuación, se muestra 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,
usar 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 rol a un proyecto de Google Cloud. y cómo enumerar las vinculaciones adjuntas a un proyecto. Cuando usas este enfoque, restringir el acceso de una principal a las entradas de registro almacenadas en vista de registro, debes agregar una condición de IAM al otorgamiento.
Agrega una vinculación de función a un proyecto
Para agregar una vinculación de rol al archivo de políticas de IAM de un proyecto de Google Cloud, completa los siguientes pasos.
gcloud
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"
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
Actualiza la política de IAM en el proyecto de Google Cloud: llamando al método
gcloud projects add-iam-policy-binding
.Antes de usar el siguiente comando, realiza los siguientes reemplazos:
- PROJECT_ID: Es el identificador del proyecto.
- PRINCIPAL: Un identificador para la principal que deseas
a la que otorgas 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 tenerPRINCIPAL
, consulta Identificadores principales.
Ejecuta el
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 los 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 Política de IAM para proyectos.
Console
En el proyecto en el que creaste el bucket de registros, haz lo siguiente:
-
En la consola de Google Cloud, ve a la página IAM:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es IAM y administrador.
Haz clic en
Grant access.En el campo Principales nuevas, agrega la cuenta de correo electrónico del usuario.
En el menú desplegable Seleccionar un rol, selecciona 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.
Haz clic en Agregar condición de IAM.
Ingresa un Título y una Descripción para la condición.
En el menú desplegable Tipo de condición, selecciona Recurso > Nombre.
En el menú desplegable Operador, selecciona es.
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
Haga clic en Guardar para agregar la condición.
Haz clic en Guardar para configurar los permisos.
Enumerar vinculaciones de roles en un proyecto
Para enumerar 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
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,
usar la fuente de datos
google_project_iam_policy
Console
En la consola de Google Cloud, ve a la página 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 todas las principales, sus roles de IAM, y las condiciones asociadas a esos roles.
Enumerar vistas de registros en un bucket de registros
Para enumerar las vistas de registros creadas para un bucket de registros, haz lo siguiente:
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
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 borra la vista de registro
cuando se creó el proyecto de Google Cloud. El siguiente resultado de ejemplo 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 vistas 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 del registro. Cuando está vacía, la vista del 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 el valor
descripción
"New description for the log view"
.
Ejecuta el
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
Comando gcloud logging views describe
.
Borra 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 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.
Ejecuta el
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 a la eliminación de un
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 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.
Ejecuta el
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. El siguiente es un ejemplo respuesta:
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 registro
Para ver registros en una vista de registro, asegúrate de tener
Descriptor de acceso de vista de registros (roles/logging.viewAccessor
)
para la vista de registro:
-
En la consola de Google Cloud, ve a la página Explorador de registros.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
En la barra de herramientas, haz clic en Define mejor el permiso, haz clic en Vista de registro y, luego, selecciona las vistas de registro.
Para obtener más información, consulta la Explorador de registros en la documentación de Google Cloud.
¿Qué sigue?
Para aprender a controlar el acceso a campos específicos en una entrada de registro, consulta Configura el acceso a nivel de campo.