Guía de control de acceso

En esta página, se describe cómo usar las funciones y los permisos de la administración de identidades y accesos (IAM) para controlar el acceso a los datos de Cloud Logging en los recursos de Google Cloud.

Descripción general

Los permisos y las funciones de IAM determinan tu capacidad para acceder a los datos de registro en la API de Logging, la Explorador de registros y la herramienta de línea de comandos de gcloud.

Una función es un grupo de permisos. No puedes otorgar permisos a un miembro directamente; en su lugar, les otorgas una función. Cuando otorgas una función a un miembro, le otorgas todos los permisos que contiene esa función. Puedes otorgar varias funciones al mismo miembro.

Para usar Logging dentro de un recurso de Google Cloud, como un proyecto, una carpeta, un bucket o una organización de Google Cloud, debes tener una función de IAM que contenga los permisos adecuados.

Funciones predefinidas

IAM proporciona funciones predefinidas para otorgar acceso detallado a recursos específicos de Google Cloud y evitar el acceso no deseado a otros recursos. Google Cloud crea y mantiene estas funciones y actualiza sus permisos de forma automática, según sea necesario, como cuando Logging agrega funciones nuevas.

En la siguiente tabla, se enumeran las funciones de Logging, los títulos de las funciones, sus descripciones, los permisos contenidos y el tipo de recurso de nivel más bajo en el que se pueden establecer las funciones. Se puede otorgar una función específica en este tipo de recurso o, en la mayoría de los casos, en cualquier tipo superior en la jerarquía de recursos.

Para obtener una lista de cada permiso individual contenido en una función, consulta Obtén los metadatos de la función.

Función Título Descripción Permisos Recurso más bajo
roles/logging.admin Administrador de Logging Proporciona todos los permisos necesarios para usar todas las funciones de Cloud Logging.
  • logging.buckets.copyLogEntries
  • logging.buckets.create
  • logging.buckets.delete
  • logging.buckets.get
  • logging.buckets.list
  • logging.buckets.undelete
  • logging.buckets.update
  • logging.cmekSettings.*
  • logging.exclusions.*
  • logging.fields.*
  • logging.locations.*
  • logging.logEntries.*
  • logging.logMetrics.*
  • logging.logServiceIndexes.*
  • logging.logServices.*
  • logging.logs.*
  • logging.notificationRules.*
  • logging.operations.*
  • logging.privateLogEntries.*
  • logging.queries.*
  • logging.sinks.*
  • logging.usage.*
  • logging.views.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Proyecto
roles/logging.bucketWriter Escritor de registros en bucket Puede escribir registros en un bucket de registros.
  • logging.buckets.write
Bucket
roles/logging.configWriter Escritor de configuración de registros Proporciona permisos para leer y escribir la configuración de las métricas basadas en registros y los receptores a fin de exportar registros.
  • logging.buckets.create
  • logging.buckets.delete
  • logging.buckets.get
  • logging.buckets.list
  • logging.buckets.undelete
  • logging.buckets.update
  • logging.cmekSettings.*
  • logging.exclusions.*
  • logging.locations.*
  • logging.logMetrics.*
  • logging.logServiceIndexes.*
  • logging.logServices.*
  • logging.logs.list
  • logging.operations.*
  • logging.sinks.*
  • logging.views.create
  • logging.views.delete
  • logging.views.get
  • logging.views.list
  • logging.views.update
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Proyecto
roles/logging.fieldAccessor Descriptor de acceso de campos de registro Puede leer los campos restringidos de un bucket de registros.
  • logging.fields.*
Bucket
roles/logging.logWriter Escritor de registros Proporciona los permisos para escribir entradas de registro.
  • logging.logEntries.create
Proyecto
roles/logging.privateLogViewer Visualizador de registros privado Proporciona los permisos de la función visualizador de registros y, además, brinda acceso de solo lectura a las entradas de registro en registros privados.
  • logging.buckets.get
  • logging.buckets.list
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.locations.*
  • logging.logEntries.list
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logServiceIndexes.*
  • logging.logServices.*
  • logging.logs.list
  • logging.privateLogEntries.*
  • logging.queries.create
  • logging.queries.delete
  • logging.queries.get
  • logging.queries.list
  • logging.queries.listShared
  • logging.queries.update
  • logging.sinks.get
  • logging.sinks.list
  • logging.usage.*
  • logging.views.access
  • logging.views.get
  • logging.views.list
  • resourcemanager.projects.get
Proyecto
roles/logging.viewAccessor Descriptor de acceso de vista de registros Puede leer los registros de una vista.
  • logging.logEntries.download
  • logging.views.access
  • logging.views.listLogs
  • logging.views.listResourceKeys
  • logging.views.listResourceValues
Proyecto
roles/logging.viewer Visor de registros Proporciona acceso para ver los registros.
  • logging.buckets.get
  • logging.buckets.list
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.locations.*
  • logging.logEntries.list
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logServiceIndexes.*
  • logging.logServices.*
  • logging.logs.list
  • logging.operations.get
  • logging.operations.list
  • logging.queries.create
  • logging.queries.delete
  • logging.queries.get
  • logging.queries.list
  • logging.queries.listShared
  • logging.queries.update
  • logging.sinks.get
  • logging.sinks.list
  • logging.usage.*
  • logging.views.get
  • logging.views.list
  • resourcemanager.projects.get
Proyecto

Consideraciones adicionales

Cuando decidas qué permisos y funciones se aplican a los casos prácticos de los miembros de tus recursos, ten en cuenta lo siguiente:

  • roles/logging.viewer (Visor de registros) te brinda acceso de solo lectura a todas las funciones de Logging, excepto los registros de Transparencia de acceso y los registros de auditoría de acceso a los datos que se encuentran en los depósitos _Required y _Default. ,

  • roles/logging.privateLogViewer (Visor de registros privado) incluye roles/logging.viewer, además de la capacidad de leer registros de Transparencia de acceso y registros de auditoría de acceso a los datos en los depósitos _Required y _Default.

    Ten en cuenta que, si estos registros privados se almacenan en buckets definidos por el usuario, cualquier usuario que tenga permisos para leer registros en esos buckets puede leer los registros privados. Para obtener más información sobre los buckets de registros, consulta Descripción general del enrutamiento y el almacenamiento.

  • Se puede otorgar roles/logging.logWriter (escritor de registros) a las cuentas de servicio a fin de otorgar a las aplicaciones los permisos suficientes para escribir registros. Esta función no otorga permisos de lectura.

  • Se puede otorgar roles/logging.bucketWriter (escritor de bucket s de registros) a las cuentas de servicio a fin de que Cloud Logging tenga los permisos suficientes para escribir registros en un bucket de registros. Para restringir esta función a un bucket específico, usa una condición de IAM; Consulta Enruta registros de un proyecto a otro bucket en un proyecto diferente para ver un ejemplo.

  • roles/logging.configWriter (Escritor de configuración de registros) te otorga los permisos para crear métricas, exclusiones, vistas y depósitos basados en registros y usar receptores. Si deseas usar el Explorador de registros (consola) para estas acciones, agrega roles/logging.viewer.

  • roles/logging.admin (Administrador de Logging) te otorga todos los permisos relacionados con Logging.

  • roles/logging.viewAccessor (accesor de vista de registros) te otorga permisos para descargar registros y leer registros, claves de recursos y valores en una vista de registro. Para restringir esta función a una vista en un bucket específico, usa una condición de IAM; Consulta Lee registros de un bucket para ver un ejemplo.

  • roles/logging.fieldAccessor (accesor de campo de registros) te otorga permisos para leer registros, claves de recursos y valores de un subconjunto de campos LogEntry de un bucket de registros determinado. Consulta Control de acceso a nivel de campo para obtener más detalles.

  • roles/viewer (Visualizador del proyecto) es lo mismo que roles/logging.viewer. La función te brinda acceso de solo lectura a todas las funciones de Logging, excepto los registros de Transparencia de acceso y los registros de auditoría de acceso a los datos que se encuentran en los depósitos _Required y _Default.

  • roles/editor (editor de proyectos) incluye los permisos de roles/logging.viewer, además de permisos para escribir entradas de registro, borrar registros y crear métricas basadas en registros. La función no te permite crear receptores o leer registros de Transparencia de acceso o auditorías de acceso a los datos en los depósitos _Required y _Default.

  • roles/owner (propietario del proyecto) te brinda acceso completo a Logging, incluida la lectura de registros de Transparencia de acceso y registros de auditoría de acceso a los datos.

Otorgando funciones

Para obtener información sobre cómo otorgar una función a un miembro, consulta Otorga, cambia y revoca el acceso a los recursos.

Puedes asignar varias funciones al mismo usuario. Para obtener una lista de los permisos contenidos en una función, consulta Obtén los metadatos de la función.

Si intentas acceder a un recurso de Google Cloud y no tienes los permisos necesarios, comunícate con el miembro que aparece como Propietario del recurso.

Funciones personalizadas

A fin de crear una función personalizada con permisos de Logging, haz lo siguiente:

Para obtener más información sobre las funciones personalizadas, consulta Comprende las funciones personalizadas de IAM.

Permisos de la API

Los métodos de la API de Logging requieren permisos específicos de IAM. En la siguiente tabla, se muestra una lista de los permisos que necesitan los métodos de la API.

Si te interesan los registros retenidos en organizaciones de Google Cloud, cuentas de facturación y carpetas, ten en cuenta que esos recursos tienen sus propios métodos de API para logs y sinks. En lugar de repetir todos los métodos de la tabla, solo se muestran los métodos projects de forma individual.

Método de Logging Permiso requerido Tipo de recurso
billingAccounts.logs.* logging.logs.* (Consulta projects.logs.*) cuentas de facturación
billingAccounts.sinks.* logging.sinks.* (Consulta projects.sinks.*.) cuentas de facturación
billingAccounts.locations.buckets.* logging.buckets.* (Consulta projects.locations.buckets.*.) cuentas de facturación
entries.list logging.logEntries.list o
logging.privateLogEntries.list
proyectos, organizaciones,
carpetas, cuentas de facturación
entries.tail logging.logEntries.list o
logging.privateLogEntries.list
proyectos, organizaciones,
carpetas, cuentas de facturación
entries.write logging.logEntries.create proyectos, organizaciones,
carpetas, cuentas de facturación
folders.logs.* logging.logs.* (Consulta projects.logs.*) carpetas
folders.sinks.* logging.sinks.* (Consulta projects.sinks.*) carpetas
folders.locations.buckets.* logging.buckets.* (Consulta projects.locations.buckets.*) carpetas
monitoredResourceDescriptors.list (ninguna) (ninguna)
organizations.logs.* logging.logs.* (Consulta projects.logs.*) organizaciones
organizations.sinks.* logging.sinks.* (Consulta projects.sinks.*) organizaciones
organizations.locations.buckets.* logging.buckets.* (Consulta projects.locations.buckets.*) organizaciones
projects.exclusions.create logging.exclusions.create proyectos
projects.exclusions.delete logging.exclusions.delete proyectos
projects.exclusions.get logging.exclusions.get proyectos
projects.exclusions.list logging.exclusions.list proyectos
projects.exclusions.patch logging.exclusions.update proyectos
projects.logs.list logging.logs.list proyectos
projects.logs.delete logging.logs.delete proyectos
projects.sinks.list logging.sinks.list proyectos
projects.sinks.get logging.sinks.get proyectos
projects.sinks.create logging.sinks.create proyectos
projects.sinks.update logging.sinks.update proyectos
projects.sinks.delete logging.sinks.delete proyectos
projects.locations.buckets.list logging.buckets.list proyectos
projects.locations.buckets.get logging.buckets.get proyectos
projects.locations.buckets.patch logging.buckets.update proyectos
projects.locations.buckets.create logging.buckets.create proyectos
projects.locations.buckets.delete logging.buckets.delete proyectos
projects.locations.buckets.undelete logging.buckets.undelete proyectos
projects.metrics.list logging.logMetrics.list proyectos
projects.metrics.get logging.logMetrics.get proyectos
projects.metrics.create logging.logMetrics.create proyectos
projects.metrics.update logging.logMetrics.update proyectos
projects.metrics.delete logging.logMetrics.delete projects

Permisos de Cloud Console

La siguiente tabla muestra una lista de los permisos necesarios para usar el Explorador de registros.

En la tabla, a.b.{x,y} significa a.b.x y a.b.y.

Actividad de Console Permisos necesarios
Acceso de solo lectura mínimo logging.logEntries.list
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
resourcemanager.projects.get
Agregar la capacidad de ver los registros de auditoría de acceso a datos Agregar logging.privateLogEntries.list
Agregar la habilidad para ver los registros de Transparencia de acceso Agregar logging.privateLogEntries.list
Agregar la capacidad de ver las métricas basadas en registros Agregar logging.logMetrics.{list, get}
Agregar la capacidad de ver receptores Agregar logging.sinks.{list, get}
Agregar la habilidad para ver el uso de los registros Agregar logging.usage.get
Agregar la habilidad de excluir registros Agregar logging.exclusions.{list, create, get, update, delete}
Agregar la capacidad de usar receptores Agregar logging.sinks.{list, create, get, update, delete}
Agregar la capacidad de crear métricas basadas en registros Agregar logging.logMetrics.{list, create, get, update, delete}
Agregar la capacidad de guardar consultas Agregar logging.queries.{list, create, get, update, delete}
Agregar la capacidad de compartir consultas Agregar logging.queries.share
Agregar la capacidad de usar consultas recientes Agregar logging.queries.{create, list}

Permisos de la línea de comandos

Los comandos de gcloud logging están controlados por los permisos de IAM.

Para usar uno de los comandos gcloud logging, debes tener el permiso serviceusage.services.use.

También debes tener la función de IAM que corresponda al recurso del registro y a tu caso de uso. Para obtener más información, consulta los permisos de la interfaz de línea de comandos.

Permisos de enrutamiento de registros

A fin de obtener información sobre cómo configurar los controles de acceso cuando creas y administras receptores para enrutar los registros, consulta Configura receptores: Configura los permisos de destino.

Ten en cuenta que la administración de los filtros de exclusión está integrada en la configuración de los receptores. Todos los permisos relacionados con la administración de receptores, incluida la configuración de filtros de exclusión, se incluyen en los permisos logging.sinks.*. Cuando crees una función personalizada que incluya permisos para administrar filtros de exclusión, agrega los permisos logging.sinks.* a la función, en lugar de agregar los permisos logging.exclusions.*.

Una vez que las entradas de registro se enrutan a un destino admitido, el acceso a las copias de registro se controla por completo mediante los permisos y las funciones de IAM en los destinos: Cloud Storage, BigQuery o Pub/Sub.

Permisos de métricas basadas en registros

A continuación, se muestra un resumen de las funciones y los permisos comunes que necesita un miembro del proyecto de Cloud para acceder a las métricas basadas en registros:

Niveles de acceso de Logging

Los permisos de acceso son el método heredado de especificar permisos para las cuentas de servicio en las instancias de VM de Compute Engine.

Los siguientes niveles de acceso aplican a la API de Logging:

Nivel de acceso Permisos otorgados
https://www.googleapis.com/auth/logging.read roles/logging.viewer
https://www.googleapis.com/auth/logging.write roles/logging.logWriter
https://www.googleapis.com/auth/logging.admin Acceso completo a la API de Logging.
https://www.googleapis.com/auth/cloud-platform Acceso completo a la API de Logging y a otras API habilitadas de Google Cloud.

Si deseas obtener información sobre el uso de este método heredado para configurar los niveles de acceso de tus cuentas de servicio, consulta Permisos de la cuenta de servicio.