En este documento, se describe cómo usar las funciones y los permisos de Identity and Access Management (IAM) para controlar el acceso a los datos de registros en la API de Logging, el Explorador de registros y Google Cloud CLI.
Descripción general
Los permisos y los roles de IAM determinan tu capacidad para acceder a los datos de registros en la API de Logging, el Explorador de registros y la CLI de Google Cloud.
Un rol es un conjunto de permisos. No puedes otorgar permisos principales directamente. En su lugar, les otorgas una función. Cuando otorgas un rol a una principal, le otorgas todos los permisos que el rol contiene. Puedes otorgar varios roles a la misma principal.
Para usar Logging dentro de un recurso de Google Cloud, como un proyecto, una carpeta, un bucket o una organización de Google Cloud, un principal debe tener un rol de IAM que contenga los permisos adecuados.
Funciones predefinidas
IAM proporciona roles predefinidos 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 estos roles y actualiza sus permisos automáticamente, según sea necesario, como cuando Logging agrega funciones nuevas.
En la siguiente tabla, se enumeran los roles predefinidos de Logging. Para cada rol, la tabla muestra el título, la descripción, los permisos contenidos y el tipo de recurso de nivel más bajo en el que se pueden otorgar los roles. Puedes otorgar los roles predefinidos a nivel del proyecto de Google Cloud o, en la mayoría de los casos, a cualquier tipo superior en la jerarquía de recursos. Para restringir el rol de Acceso a la vista de registros a una vista de registros en un bucket, usa los atributos de recursos para las condiciones de IAM.
Para obtener una lista de todos los permisos individuales que contiene un rol, consulta Cómo obtener los metadatos de la función.
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:
|
|
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 de uso de tus principales.
Funciones de Logging
Para permitir que un usuario realice todas las acciones en Logging, otorga el rol de Administrador de Logging (
roles/logging.admin
).Para permitir que un usuario cree y modifique configuraciones de registro, otorga el rol de escritor de configuración de registros (
roles/logging.configWriter
). Este rol te permite crear o modificar cualquiera de los siguientes elementos:- Receptores de registros
- Buckets de registros
- Vistas de registro
- Conjuntos de datos vinculados
- Alcances 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 estas tareas, consulta Permisos para las métricas basadas en registros y Permisos para las políticas de alertas basadas en registros.
Para permitir que un usuario lea registros en los buckets
_Required
y_Default
, o para usar las páginas Explorador de registros y Análisis de registros, otorga uno de los siguientes roles:- Para obtener acceso a todos los registros del bucket
_Required
y a la vista_Default
en el bucket_Default
, otorga el rol de Visualizador de registros (roles/logging.viewer
). - Para obtener acceso a todos los registros de los buckets
_Required
y_Default
, incluidos los registros de acceso a los datos, otorga el rol de Visor de registros privados (roles/logging.privateLogViewer
).
- Para obtener acceso a todos los registros del bucket
Para permitir que un usuario lea registros en todas las vistas de registro de un proyecto, otorgue el rol de IAM de
roles/logging.viewAccessor
en el proyecto.Para permitir que un usuario solo lea registros en una vista de registro específica, tienes dos opciones:
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.
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.
Para obtener información sobre cómo crear vistas de registro y otorgar acceso, consulta Configura vistas de registro en un bucket de registro.
- Para otorgarle a un usuario acceso a campos
LogEntry
restringidos, si los hay, en un bucket de registros determinado, otórgale el rol de Accesor de campos de registros (roles/logging.fieldAccessor
). Para obtener más información, consulta Configura el acceso a nivel del campo.
Para permitir que un usuario escriba registros con la API de Logging, otorga el rol de escritor de registros (
roles/logging.logWriter
). Este rol no otorga permisos de lectura.Para permitir que la cuenta de servicio de un destino dirija registros a un bucket en un proyecto de Google Cloud diferente, otorga a la cuenta de servicio el rol de escritor de bucket de registros (
roles/logging.bucketWriter
). Para obtener instrucciones sobre cómo otorgar permisos a una cuenta de servicio, consulta Cómo establecer permisos de destino.
Funciones a nivel del proyecto
Para otorgar acceso de lectura a la mayoría de los servicios de Google Cloud, otorga el rol de Visualizador (
roles/viewer
).Este rol incluye todos los permisos otorgados por el rol de visor de registros (
roles/logging.viewer
).Para otorgar acceso de editor a la mayoría de los servicios de Google Cloud, otorga el rol de editor (
roles/editor
).Este rol incluye todos los permisos otorgados por el rol Visualizador de registros (
roles/logging.viewer
) y los permisos para escribir entradas de registro, borrar registros y crear métricas basadas en registros. Sin embargo, este rol no permite que los usuarios creen receptores, lean registros de auditoría de acceso a los datos que se encuentran en el bucket_Default
ni lean registros que se encuentran en buckets de registro definidos por el usuario.Para otorgar acceso completo a la mayoría de los servicios de Google Cloud, otorga el rol de propietario (
roles/owner
).
Otorgando funciones
Para obtener información sobre cómo otorgar un rol a un principal, consulta Otorga, cambia y revoca el acceso a los recursos.
Se puede asignar varios roles al mismo usuario. Para obtener una lista de los permisos que contiene una función, consulta la página sobre cómo obtener 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 administrador que aparece como el Propietario del recurso.
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 de Permisos de la API y, luego, sigue las instrucciones para crear una función personalizada.
Si deseas una función que otorgue permisos para usar el Explorador de registros, elige entre los grupos de permisos en Permisos de la consola y, luego, sigue las instrucciones para crear una función personalizada.
Para obtener un rol que otorgue permisos para usar
gcloud logging
, consulta la sección Permisos de línea de comandos en esta página y, luego, sigue las instrucciones para crear un rol personalizado.
Para obtener más información sobre las funciones personalizadas, consulta Comprende las funciones personalizadas de IAM.
Permisos de Cloud Logging
La siguiente tabla es una lista parcial de los permisos necesarios para 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 Console | Permisos necesarios |
---|---|
Acceso de solo lectura mínimo | logging.logEntries.list |
Cómo ver los registros de auditoría de acceso a los datos | logging.privateLogEntries.list |
Cómo ver las métricas basadas en registros | logging.logMetrics.{list, get} |
Cómo ver los receptores | logging.sinks.{list, get} |
Consulta el uso de registros | logging.usage.get |
Descargar registros | logging.logEntries.{list, download}
Solo uno de estos permisos es necesario para descargar registros. Los roles que contienen los permisos para descargar registros deben otorgarse a nivel del proyecto. No puedes descargar registros si se otorga un rol que contiene estos permisos en el archivo de política de IAM de una vista de registros. |
Cómo ver el alcance de registro predeterminado | observability.scopes.get |
Excluye registros | logging.exclusions.{list, create, get, update, delete}
Cuando crees un rol personalizado que incluya permisos para
administrar filtros de exclusión, agrega los permisos |
Crea y usa receptores | logging.sinks.{list, create, get, update, delete}
Cuando crees un receptor, también debes otorgarle a la cuenta de servicio un rol de IAM que le permita escribir entradas de registro en el destino. Para obtener más información, consulta Configura los permisos de destino. Una vez que tus entradas de registro se enrutan a un destino compatible, el acceso a ellas se controla por completo con los permisos y roles de IAM en el destino. |
Crea alertas basadas en registros | Consulta Roles necesarios para crear y usar políticas de alertas basadas en registros. |
Crea métricas basadas en registros | logging.logMetrics.{list, create, get, update, delete}
Si deseas obtener información sobre otros roles de IAM que necesitas para crear y usar métricas basadas en registros, consulta Roles necesarios para crear y usar métricas basadas en registros. |
Guarda y usa consultas privadas | logging.queries.usePrivate logging.queries.{listShared,getShared} |
Guarda y usa consultas compartidas | logging.queries.{share, getShared, updateShared, deleteShared,
listShared} |
Usa consultas recientes | logging.queries.{create, list} |
Establece y administra el ámbito de registro predeterminado | observability.scopes.{get, update} |
Permisos de la línea de comandos
Los comandos gcloud logging
están controlados por los permisos de IAM.
Para usar uno de los comandos gcloud logging
, los principales deben tener el permiso serviceusage.services.use
.
Un principal también debe tener el rol de IAM correspondiente al recurso del registro y al caso de uso. 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 las funciones y los permisos comunes que un principal necesita para acceder a las métricas basadas en registros:
El rol de Escritor de configuración de registros (
roles/logging.configWriter
) permite que los principales enumeren, creen, obtengan, actualicen y borren métricas basadas en registros.El rol de Visualizador de registros (
roles/logging.viewer
) contiene permisos para ver las métricas existentes. Específicamente, un principal necesita los permisoslogging.logMetrics.get
ylogging.logMetrics.list
para ver las métricas existentes.El rol de Visualizador de Monitoring (
roles/monitoring.viewer
) contiene los permisos para leer los datos de TimeSeries. Específicamente, un usuario principal necesita el permisomonitoring.timeSeries.list
para leer datos de series temporales.Los roles de Administrador de Logging (
roles/logging.admin
), Editor de proyectos (roles/editor
) y Propietario del proyecto (roles/owner
) contienen los permisos para crear métricas basadas en registros. Específicamente, 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 administrar políticas de alertas basadas en registros, un principal 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 la supervisión y crear las reglas de notificación de registro asociadas, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
-
Editor de AlertPolicy de Monitoring (
roles/monitoring.alertPolicyEditor
) -
Escritor de configuración de registros (
roles/logging.configWriter
)
Para obtener más información sobre cómo otorgar roles, consulta Administra 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 notificación de registro asociadas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear políticas de alertas basadas en registros en Monitoring y para crear las reglas de notificación de Logging asociadas:
-
monitoring.alertPolicies.create
-
logging.notificationRules.create
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
-
Editor de AlertPolicy de Monitoring (
Si creas tu política de alertas en Google Cloud CLI, también se requiere el siguiente rol o permiso:
-
Para obtener el permiso que necesitas para crear una política de alertas con la Google Cloud CLI, pídele a tu administrador que te otorgue el rol de IAM de Consumidor de Service Usage (
roles/serviceusage.serviceUsageConsumer
) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.Este rol predefinido contiene el permiso
serviceusage.services.use
, que se requiere para crear una política de alertas con Google Cloud CLI.También puedes obtener este permiso con roles personalizados o con otros roles predefinidos.
Si tu proyecto de Google Cloud ya tiene canales de notificación, puedes configurar tu política de alertas para usar un canal existente sin roles ni permisos adicionales. 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, pídele a tu administrador que te otorgue el rol de IAM de editor de NotificationChannel de Monitoring (
roles/monitoring.notificationChannelEditor
) en tu proyecto.Este rol predefinido contiene el permiso
monitoring.notificationChannels.create
, que se requiere para crear un canal de notificación para una política de alertas basada en registros.
Permisos para las políticas de alertas basadas en SQL
Las políticas de alertas basadas en SQL evalúan los resultados de una consulta en SQL que se ejecuta en datos de grupos de entradas de registro. Para obtener información sobre los roles necesarios para crear y administrar políticas de alertas basadas en SQL, consulta la sección Antes de comenzar en Supervisa los resultados de tus consulta en SQL con una política de alertas.
Niveles de acceso de Logging
Los niveles de acceso son el método heredado que se usa a fin de especificar permisos para las cuentas de servicio en 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 | 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. |
Para obtener información sobre cómo usar este método heredado para establecer los niveles de acceso de tus cuentas de servicio, consulta Permisos de acceso.