En este documento se explica cómo usa Cloud Logging los roles y permisos de Gestión de Identidades y Accesos (IAM) para controlar el acceso a los recursos de Logging. Tus roles de gestión de identidades y accesos determinan si puedes realizar acciones como crear receptores o cubos de registro, leer datos de registro almacenados en un cubo de registro o acceder a páginas como el explorador de registros. Si emites un comando de la API Logging o de la CLI de Google Cloud, tus roles de gestión de identidades y accesos determinarán si tienes permiso para ejecutar el comando.
Información general
Tus roles de gestión de identidades y accesos determinan las acciones que puedes realizar en Logging. Un rol es un conjunto de permisos. Cuando asignas un rol a una entidad, le concedes todos los permisos que contiene el rol. Puedes conceder varios roles al mismo principal.
Los roles de IAM se asignan a un recurso, como un Google Cloud proyecto, una carpeta, un segmento o una organización. Por ejemplo, puedes asignar a una principal el rol Lector de registros (roles/logging.viewer
) en un proyecto Google Cloud concreto.
En las secciones Roles predefinidos y Roles de registro de esta página se proporciona información detallada sobre los roles y permisos de registro. En otras secciones de esta página se proporciona información sobre los roles o permisos de casos prácticos específicos.
En el resto de esta sección se resume cómo puedes conceder a una entidad acceso a segmentos de registro o solo a algunas de las entradas de registro de un segmento de registro. También se describe cómo puedes restringir el acceso a algunos campos LogEntry
.
Conceder acceso a los contenedores de registro
El rol Visualizador de registros (roles/logging.viewer
) permite que una entidad de seguridad acceda a todos los datos de registro almacenados en los segmentos de registro _Required
y _Default
, excepto a los registros de acceso a datos. Si una entidad necesita acceder a los registros de acceso a los datos, concédele el rol Visualizador de registros privados (roles/logging.privateLogViewer
).
En el caso de los segmentos de registro personalizados, puede conceder acceso a la vista _AllLogs
o a una vista de registro personalizada. El registro crea automáticamente la vista _AllLogs
, que incluye todas las entradas de registro del contenedor de registro. Para conceder acceso a una vista de registro, añade una vinculación de gestión de identidades y accesos a la política de gestión de identidades y accesos asociada a la vista de registro o al proyecto. Para obtener más información, consulta Controlar el acceso a una vista de registro.
Logging también admite etiquetas en los contenedores de registro, lo que puede ayudarte a comprender tus costes. También puedes usar etiquetas para evitar que un usuario elimine un segmento de registro. Para obtener más información, consulta Usar etiquetas para gestionar el acceso a los segmentos de registro.
Conceder acceso a algunas entradas de registro de un segmento de registros
Para conceder a una entidad principal acceso solo a algunas de las entradas de registro almacenadas en un contenedor de registro, cree una vista de registro y, a continuación, conceda a la entidad principal acceso a la vista de registro. Por ejemplo, puede crear una vista de registro en el _Default
contenedor de registro que solo incluya entradas de registro cuyo tipo de recurso sea una instancia de Compute Engine.
Para obtener más información sobre cómo crear vistas de registro y las diferentes estrategias que puedes usar para conceder acceso a la vista, consulta el artículo Configurar vistas de registro en un segmento de registro.
Restringir el acceso a campos LogEntry
específicos
Para restringir el acceso a campos específicos de la estructura de datos LogEntry
, configura controles de acceso a nivel de campo en el segmento de registro que almacena tus datos. Por ejemplo, en tu _Default
, puedes restringir el jsonPayload
de la estructura de datos LogEntry
y, a continuación, conceder acceso a ese campo a tus administradores. Para obtener más información, consulte Configurar controles de acceso a nivel de campo.
No puedes restringir los campos de un contenedor de registros que se haya actualizado para usar Analíticas de registros. Del mismo modo, si un contenedor de registros contiene un campo restringido, no podrá actualizarlo para usar Analíticas de registros.
Funciones predefinidas
Gestión de identidades y accesos proporciona roles predefinidos para conceder acceso granular a recursos Google Cloud específicos y evitar el acceso no deseado a otros recursos. Google Cloud crea y mantiene estos roles, y actualiza automáticamente sus permisos según sea necesario, por ejemplo, cuando Logging añade nuevas funciones.
En la siguiente tabla se enumeran los roles predefinidos de Logging. En cada rol, la tabla muestra el título, la descripción, los permisos incluidos y el tipo de recurso de nivel más bajo en el que se pueden conceder los roles. Puedes asignar los roles predefinidos a nivel de proyecto o, en la mayoría de los casos, a cualquier tipo superior en la jerarquía de recursos. Google Cloud Para restringir el rol de acceso de lector de registros a una vista de registros de un contenedor, usa atributos de recursos para las condiciones de gestión de identidades y accesos.
Para obtener una lista de todos los permisos individuales que contiene un rol, consulta Obtener los metadatos del rol.
Role | Permissions |
---|---|
Logging Admin( Provides all permissions necessary to use all features of Cloud Logging. Lowest-level resources where you can grant this role:
|
|
Logs Bucket Writer( Ability to write logs to a log bucket. Lowest-level resources where you can grant this role:
|
|
Logs Configuration Writer( Provides permissions to read and write the configurations of logs-based metrics and sinks for exporting logs. Lowest-level resources where you can grant this role:
|
|
Log Field Accessor( Ability to read restricted fields in a log bucket. Lowest-level resources where you can grant this role:
|
|
Log Link Accessor( Ability to see links for a bucket. |
|
Logs Writer( Provides the permissions to write log entries. Lowest-level resources where you can grant this role:
|
|
Private Logs Viewer( Provides permissions of the Logs Viewer role and in addition, provides read-only access to log entries in private logs. Lowest-level resources where you can grant this role:
|
|
Cloud Logging Service Agent( Grants a Cloud Logging Service Account the ability to create and link datasets. |
|
SQL Alert Writer Beta( Ability to write SQL Alerts. |
|
Logs View Accessor( Ability to read logs in a view. Lowest-level resources where you can grant this role:
|
|
Logs Viewer( Provides access to view logs. Lowest-level resources where you can grant this role:
|
|
En las siguientes secciones se proporciona información adicional para ayudarte a decidir qué roles se aplican a los casos prácticos de tus principales.
Roles de registro
Para permitir que un usuario realice todas las acciones en Logging, asígnale el rol Administrador de almacenamiento de registros (
roles/logging.admin
).Para permitir que un usuario cree y modifique configuraciones de registro, concédele el rol Editor de configuración de registros (
roles/logging.configWriter
). Este rol te permite crear o modificar cualquiera de los siguientes elementos:- Sumideros de registros
- Segmentos de registro
- Vistas de registro
- Conjuntos de datos vinculados
- Ámbitos de registro
Este rol no es suficiente para crear métricas basadas en registros ni políticas de alertas basadas en registros. Para obtener información sobre los roles necesarios para llevar a cabo estas tareas, consulta Permisos de las métricas basadas en registros y Permisos de las políticas de alertas basadas en registros.
Para permitir que un usuario lea los registros de los segmentos
_Required
y_Default
o que use las páginas Explorador de registros y Analíticas de registros, asigne uno de los siguientes roles:- Para acceder a todos los registros del segmento
_Required
y a la vista_Default
del segmento_Default
, asigna el rol Lector de registros (roles/logging.viewer
). - Para acceder a todos los registros de los segmentos
_Required
y_Default
, incluidos los registros de acceso a datos, asigna el rol Visualizador de registros privados (roles/logging.privateLogViewer
).
- Para acceder a todos los registros del segmento
Para permitir que un usuario lea los registros de todas las vistas de registro de un proyecto, concédele el rol de gestión de identidades y accesos
roles/logging.viewAccessor
en el proyecto.Para permitir que un usuario solo lea los registros de una vista de registro específica, tienes dos opciones:
Crea una política de gestión de identidades y accesos para la vista de registro y, a continuación, añade un enlace de gestión de identidades y accesos a esa política que conceda al principal acceso a la vista de registro.
Concede a la entidad principal el rol de gestión de identidades y accesos
roles/logging.viewAccessor
en el proyecto que contiene la vista de registro, pero adjunta una condición de gestión de identidades y accesos para restringir la concesión a la vista de registro específica.
Para obtener información sobre cómo crear vistas de registro y conceder acceso, consulta el artículo Configurar vistas de registro en un segmento de registro.
- Para dar acceso a un usuario a los campos
LogEntry
restringidos, si los hay, en un determinado contenedor de registro, asigna el rol Accesor de campos de registro (roles/logging.fieldAccessor
). Para obtener más información, consulta Configurar el acceso a nivel de campo.
Para permitir que un usuario escriba registros mediante la API Logging, otórgale el rol Escritor de registros (
roles/logging.logWriter
). Este rol no concede permisos de visualización.Para permitir que la cuenta de servicio de un sumidero envíe registros a un segmento de otro proyecto, asigna a la cuenta de servicio el rol Escritor del segmento de registros (
roles/logging.bucketWriter
). Google Cloud Para obtener instrucciones sobre cómo conceder permisos a una cuenta de servicio, consulta Definir permisos de destino.
Roles a nivel de proyecto
Para dar acceso de lectura a la mayoría de los servicios de Google Cloud , asigna el rol Lector (
roles/viewer
).Este rol incluye todos los permisos que concede el rol Lector de registros (
roles/logging.viewer
).Para dar acceso de edición a la mayoría de los Google Cloud servicios, asigna el rol Editor (
roles/editor
).Este rol incluye todos los permisos concedidos por el rol Lector de registros (
roles/logging.viewer
) y los permisos para escribir entradas de registro, eliminar registros y crear métricas basadas en registros. Sin embargo, este rol no permite a los usuarios crear receptores, leer registros de auditoría de acceso a datos que estén en el bucket_Default
ni leer registros que estén en buckets de registro definidos por el usuario.Para dar acceso completo a la mayoría de los servicios de Google Cloud , asigna el rol Propietario (
roles/owner
).
Conceder roles
Para saber cómo asignar un rol a un principal, consulta Conceder, cambiar y revocar el acceso.
Puedes conceder varias funciones a un mismo usuario. Para obtener una lista de los permisos incluidos en un rol, consulta Obtener los metadatos del rol.
Si intentas acceder a un Google Cloud recurso y no tienes los permisos necesarios, ponte en contacto con la entidad de seguridad que aparece como propietario del recurso.
Roles personalizados
Para crear un rol personalizado con permisos de registro, sigue estos pasos:
Para asignar permisos de la API Logging a un rol, elige permisos de Permisos de API y sigue las instrucciones para crear un rol personalizado.
Para crear un rol que conceda permisos para usar el Explorador de registros, elige uno de los grupos de permisos de Permisos de la consola y sigue las instrucciones para crear un rol personalizado.
Para ver un rol que conceda permisos para usar
gcloud logging
, consulta la sección Permisos de línea de comandos de esta página y, a continuación, sigue las instrucciones para crear un rol personalizado.
Para obtener más información sobre los roles personalizados, consulta el artículo Conocer los roles personalizados de gestión de identidades y accesos.
Permisos de Cloud Logging
En la siguiente tabla se muestra una lista parcial de los permisos necesarios para usar funciones específicas de Cloud Logging. Esta tabla puede ayudarte a identificar los permisos que necesitas para usar páginas como el explorador de registros.
En la tabla, a.b.{x,y}
significa a.b.x
y a.b.y
.
Actividad de la consola | Permisos obligatorios |
---|---|
Acceso mínimo de solo lectura | logging.logEntries.list |
Ver registros de auditoría de acceso a datos | logging.privateLogEntries.list |
Ver métricas basadas en registros | logging.logMetrics.{list, get} |
Ver sumideros | logging.sinks.{list, get} |
Ver el uso de los registros | logging.usage.get |
Descargar registros | logging.logEntries.{list, download}
Solo se necesita uno de estos permisos para descargar los registros. Los roles que contienen los permisos para descargar registros deben concederse a nivel de proyecto. No puedes descargar registros si se concede un rol que contenga estos permisos en el archivo de política de gestión de identidades y accesos de una vista de registro. |
Mostrar y ver ámbitos de registro | logging.logScopes.{get, list} |
Ver el ámbito de registro predeterminado | observability.scopes.get |
Excluir registros | logging.exclusions.{list, create, get, update, delete}
Cuando crees un rol personalizado que incluya permisos para gestionar filtros de exclusión, añade los permisos |
Crear y usar receptores | logging.sinks.{list, create, get, update, delete}
Cuando creas un receptor, también debes asignar a la cuenta de servicio un rol de gestión de identidades y accesos que le permita escribir entradas de registro en el destino. Para obtener más información, consulta Definir permisos de destino. Una vez que las entradas de registro se hayan enrutado a un destino admitido, el acceso a ellas se controlará por completo mediante los permisos y roles de gestión de identidades y accesos del destino. |
Crear alertas basadas en registros | Consulta los roles necesarios para crear y usar políticas de alertas basadas en registros. |
Crear métricas basadas en registros | logging.logMetrics.{list, create, get, update, delete}
Para obtener información sobre otros roles de IAM que necesitas crear y usar métricas basadas en registros, consulta Roles necesarios para crear y usar métricas basadas en registros. |
Guardar y usar consultas privadas | logging.queries.usePrivate logging.queries.{listShared,getShared} |
Guardar y usar consultas compartidas | logging.queries.{share, getShared, updateShared, deleteShared,
listShared} |
Usar consultas recientes | logging.queries.{create, list} |
Crear y gestionar ámbitos de registro | logging.logScopes.{create, delete, get, list, update} |
Definir y gestionar el ámbito de registro predeterminado | observability.scopes.{get, update} |
Crear y gestionar vistas de analíticas | observability.analyticsViews.{create, delete, get, list, update} |
Crear y gestionar conjuntos de datos vinculados | logging.links.{create, delete, get, list}
Es posible que necesites roles de gestión de identidades y accesos adicionales para consultar el conjunto de datos vinculado. Por ejemplo, estos permisos no te dan acceso a la interfaz de BigQuery. Para obtener más información, consulta el artículo sobre el control de acceso con gestión de identidades y accesos en BigQuery. |
Permisos para la línea de comandos
Los comandos de gcloud logging
se controlan mediante permisos de gestión de identidades y accesos.
Para usar cualquiera de los comandos gcloud logging
, las entidades deben tener el permiso serviceusage.services.use
.
Un principal también debe tener el rol de gestión de identidades y accesos que corresponda al recurso del registro y al caso práctico. Para obtener más información, consulta los permisos de la interfaz de línea de comandos.
Roles necesarios para crear y usar métricas basadas en registros
A continuación, se incluye un resumen de los roles y permisos habituales que necesita una entidad para acceder a las métricas basadas en registros:
El rol Editor de configuración de registros (
roles/logging.configWriter
) permite a los principales enumerar, crear, obtener, actualizar y eliminar métricas basadas en registros.El rol Lector de registros (
roles/logging.viewer
) incluye permisos para ver las métricas. En concreto, una entidad necesita los permisoslogging.logMetrics.get
ylogging.logMetrics.list
para ver las métricas.El rol Lector de Monitoring (
roles/monitoring.viewer
) contiene los permisos para leer datos de TimeSeries. En concreto, una entidad necesita el permisomonitoring.timeSeries.list
para leer datos de series temporales.Los roles Administrador de Logging (
roles/logging.admin
), Editor de proyectos (roles/editor
) y Propietario del proyecto (roles/owner
) tienen los permisos necesarios para crear métricas basadas en registros. En concreto, un principal necesita el permisologging.logMetrics.create
para crear métricas basadas en registros.
Roles necesarios para crear y usar políticas de alertas basadas en registros
Para crear y gestionar políticas de alertas basadas en registros, una entidad de seguridad necesita los siguientes roles y permisos de Logging y Monitoring:
-
Para obtener los permisos que necesitas para crear políticas de alertas basadas en registros en Monitoring y las reglas de notificaciones de Logging asociadas, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en tu proyecto:
-
Editor de políticas de alertas de Monitoring (
roles/monitoring.alertPolicyEditor
) -
Editor de configuración de registros (
roles/logging.configWriter
)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para crear políticas de alertas basadas en registros en Monitoring y para crear las reglas de notificaciones de Logging asociadas. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para crear políticas de alertas basadas en registros en Monitoring y las reglas de notificaciones de Logging asociadas, se necesitan los siguientes permisos:
-
monitoring.alertPolicies.create
-
logging.notificationRules.create
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
-
Editor de políticas de alertas de Monitoring (
Si creas la política de alertas en la CLI de Google Cloud, también se requiere el siguiente rol o permiso:
-
Para obtener el permiso que necesitas para crear una política de alertas con la CLI de Google Cloud, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Consumidor de uso de servicio (
roles/serviceusage.serviceUsageConsumer
) en tu proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.Este rol predefinido contiene el permiso
serviceusage.services.use
, que es necesario para crear una política de alertas mediante la CLI de Google Cloud.También puedes obtener este permiso con roles personalizados u otros roles predefinidos.
Si tu Google Cloud proyecto ya tiene canales de notificaciones, puedes configurar tu política de alertas para que use un canal que ya tengas sin necesidad de añadir roles ni permisos. Sin embargo, si necesitas crear un canal de notificaciones para tu política de alertas basada en registros, se requiere el siguiente rol o permiso:
-
Para obtener el permiso que necesitas para crear un canal de notificaciones para una política de alertas basada en registros, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Editor de NotificationChannel de Monitoring (
roles/monitoring.notificationChannelEditor
) en tu proyecto.Este rol predefinido contiene el permiso
monitoring.notificationChannels.create
, que es necesario para crear un canal de notificaciones de una política de alertas basada en registros.
Permisos de las políticas de alertas basadas en SQL
Las políticas de alertas basadas en SQL evalúan los resultados de una consulta de SQL ejecutada en datos de grupos de entradas de registro. Para obtener información sobre los roles necesarios para crear y gestionar políticas de alertas basadas en SQL, consulta la sección Antes de empezar del artículo Monitorizar los resultados de consultas SQL con una política de alertas.
Permisos de acceso de registro
Los permisos de acceso son el método antiguo de especificar los permisos de las cuentas de servicio de tus instancias de VM de Compute Engine.
Los siguientes permisos de acceso se aplican a la API Logging:
Permiso de acceso | Permisos concedidos |
---|---|
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 Logging. |
https://www.googleapis.com/auth/cloud-platform | Acceso completo a la API Logging y a todas las demás APIs habilitadas. Google Cloud |
Para obtener información sobre cómo usar este método antiguo para definir los niveles de acceso de tus cuentas de servicio, consulta Ámbitos de acceso.