Guía de control de acceso

En esta página, se describe cómo Cloud Logging usa Cloud Identity and Access Management para controlar el acceso a los datos de registro en los recursos de Google Cloud.

Resumen

Los permisos y las funciones de Cloud IAM determinan cómo puedes usar la API de Logging, el visor de registros de Google Cloud Console y la herramienta de línea de comandos de gcloud.

Los registros se encuentran en depósitos de registros dentro de los proyectos, las organizaciones, las carpetas y las cuentas de facturación de Google Cloud. Cada uno de estos recursos de Google Cloud puede tener su propio conjunto de miembros con sus propio conjunto de funciones y permisos de Cloud Logging.

Para usar Logging con los datos de registro en un proyecto de Google Cloud, debes ser miembro y tener una función de Cloud IAM que te otorgue permiso para usar Logging. Las siguientes funciones de Cloud IAM se aplican a Logging:

  • roles/logging.viewer (Visor de registros) te otorga acceso de solo lectura a todas las funciones de Logging, excepto a los registros de Transparencia de acceso y a los registros de auditoría de acceso a datos.

  • roles/logging.privateLogViewer (Visor de registros privado) incluye roles/logging.viewer, además de la posibilidad de leer registros de Transparencia de acceso y registros de auditoría de acceso a datos.

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

  • roles/logging.configWriter (Escritor de configuración de registros) otorga los permisos para crear métricas basadas en registros y exclusiones, y también exportar receptores. Si deseas usar el visor de registros (consola) para estas acciones, agrega roles/logging.viewer.

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

  • roles/viewer (Visor del proyecto) es lo mismo que roles/logging.viewer. La función te otorga 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 datos.

  • roles/editor (Editor del proyecto) 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 de exportación ni leer registros de Transparencia de acceso ni registros de auditoría de acceso a datos.

  • funciones/propietarios (Propietario del proyecto) te da acceso completo a Logging, incluidos los registros de Transparencia de acceso y los registros de auditoría de acceso a datos.

Para obtener más detalles sobre las funciones de Logging, consulta Permisos y funciones en esta página.

Otorga funciones

Para otorgarle una función a un miembro, debes tener el conjunto de permisos que se encuentra en roles/owner (Propietario del proyecto). Para obtener información sobre cómo otorgar funciones, consulta la página Cómo otorgar, cambiar y revocar el acceso a los recursos.

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

Permisos y funciones

En la siguiente tabla se enumeran las funciones de Cloud IAM que otorgan acceso a Cloud Logging. Cada función tiene un conjunto específico de permisos de registro. Las funciones pueden asignarse a miembros de los tipos de recursos de la lista.

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

Nombre de la función Título de la función Permisos de Logging Tipo de recurso
roles/
logging.viewer
Visor de registros logging.logEntries.list
logging.logMetrics.{list, get}
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.sinks.{list, get}
logging.buckets.{list, get}
logging.usage.get
resourcemanager.projects.get
proyecto, organización,
carpeta, cuenta de facturación
roles/
logging.privateLogViewer
Visor de registros privado Permisos roles/logging.viewer, más:
logging.privateLogEntries.list
proyecto, organización,
carpeta, cuenta de facturación
roles/
logging.logWriter
Escritor de registros logging.logEntries.create proyecto, organización,
carpeta, cuenta de facturación
roles/
logging.configWriter
Escritor de configuración de registros logging.buckets.{list, create, get, update, delete}
logging.exclusions.{list, create, get, update, delete}
logging.logMetrics.{list, create, get, update, delete}
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.sinks.{list, create, get, update, delete}
resourcemanager.projects.{get, list}
proyecto, organización,
carpeta, cuenta de facturación
roles/
logging.admin
Administrador de Logging logging.exclusions.{list, create, get, update, delete}
logging.logEntries.{create, list}
logging.logMetrics.{list, create, get, update, delete}
logging.logs.{delete,list}
logging.logServiceIndexes.list
logging.logServices.list
logging.privateLogEntries.list
logging.sinks.{list, create, get, update, delete}
logging.buckets.{list, get, update}
resourcemanager.projects.get
logging.usage.get
proyecto, organización,
carpeta, cuenta de facturación
roles/viewer Lector logging.logEntries.list
logging.logMetrics.{list, get}
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.sinks.{list, get}
resourcemanager.projects.get
proyecto
roles/editor Editor Permisos de Logging roles/viewer, más:
logging.logEntries.create
logging.logMetrics. {create, update, delete}
logging.logs.delete
proyecto
roles/owner Propietario Permisos de Logging roles/editor, más:
logging.privateLogEntries.list
logging.sinks. {create, update, delete}`
proyecto

Funciones personalizadas

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

  • Para una función que otorga permisos a la API de Logging, elige los permisos en la sección Permisos de la API.

  • Si deseas una función que otorgue permisos para usar el visor de registros, elige entre los grupos de permisos en Permisos de la consola.

  • Si deseas una función que otorgue permisos para usar gcloud logging, ve a la descripción general de la herramienta gcloud.

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

Permisos de la API

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

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.buckets.*.) cuentas de facturación
entries.list 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.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.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.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 proyectos

Permisos de Console

La siguiente tabla muestra una lista de los permisos necesarios para usar el Visor 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 capacidad de ver los registros de Transparencia de acceso Agregar logging.privateLogEntries.list
Agrega la habilidad para ver las métricas basadas en registros Agregar logging.logMetrics.{list, get}
Agregar la habilidad para ver exportaciones 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 habilidad de exportar registros Agregar logging.sinks.{list, create, get, update, delete}
Agregar la habilidad de crear métricas basadas en registros Agregar logging.logMetrics.{list, create, get, update, delete}

Permisos de la línea de comandos

Los comandos gcloud logging están controlados por los permisos de Cloud Identity and Access Management.

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

También debes tener la función de Cloud IAM correspondiente a la ubicación del registro y a tu caso práctico. Para obtener más información, consulta los permisos de la interfaz de línea de comandos.

Accede a registros exportados

Si deseas crear un receptor, para poder exportar registros, debes tener los permisos de roles/logging.configWriter, roles/logging.admin o roles/owner.

Una vez que un receptor comienza a exportar registros, tiene acceso completo a todas las entradas de registro nuevas. Los receptores pueden exportar entradas de registro privadas, incluidos los registros de Transparencia de acceso y los registros de auditoría de acceso a datos.

Una vez que se exportan las entradas de registro, el acceso a las copias exportadas se controla en su totalidad con los permisos y las funciones de Cloud IAM en los siguientes destinos: Cloud Storage, BigQuery o Pub/Sub.

Niveles de acceso de Logging

Los permisos de acceso son el método heredado que se usa a fin de especificar permisos para tus 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 role/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.

Recomendaciones

Ahora que las funciones de Cloud IAM están disponibles, una práctica razonable es otorgar a todas tus instancias de VM el permiso “Acceso completo a todas las API habilitadas de Google Cloud”:

https://www.googleapis.com/auth/cloud-platform
    

Puedes otorgar funciones específicas de Cloud IAM en la cuenta de servicio de tu instancia de VM a fin de restringir el acceso a API específicas. Si deseas obtener más detalles, consulta Permisos de la cuenta de servicio.