En este documento, 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 registros en la API de Logging, el Explorador de registros y Google Cloud CLI.
Descripción general
Los permisos y las funciones de IAM determinan tu capacidad para acceder a los datos de registros en la API de Logging, el Explorador de registros y la Google Cloud CLI.
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 contiene ese rol. Puedes otorgar varios roles a la misma principal.
Para usar Logging dentro de un recurso de Google Cloud, como una organización, una carpeta, un bucket o un proyecto de Google Cloud, una principal debe tener un rol 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 de forma automática sus permisos según sea necesario, por ejemplo, cuando Logging agrega funciones nuevas.
En la siguiente tabla, se enumeran las funciones predefinidas de Logging. Para cada función, 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 las funciones. Puedes otorgar los roles predefinidos a nivel de proyecto de Google Cloud o, en la mayoría de los casos, a cualquier tipo de nivel superior en la jerarquía de Google Cloud. Para definir el alcance de la función de descriptor de acceso de vista de registros de forma más estrecha al nivel del bucket, usa los atributos de recursos para las condiciones de IAM.
Para obtener una lista de cada permiso individual contenido en una función, consulta Obtén 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:
|
logging.buckets.copyLogEntries logging.buckets.create logging.buckets.delete logging.buckets.get logging.buckets.list logging.buckets.undelete logging.buckets.update logging.exclusions.*
logging.fields.access logging.links.*
logging.locations.*
logging.logEntries.*
logging.logMetrics.*
logging.logServiceIndexes.list logging.logServices.list logging.logs.*
logging.notificationRules.*
logging.operations.*
logging.privateLogEntries.list logging.queries.*
logging.settings.*
logging.sinks.*
logging.usage.get logging.views.*
resourcemanager.projects.get resourcemanager.projects.list |
Logs Bucket Writer( Ability to write logs to a log bucket. Lowest-level resources where you can grant this role:
|
logging.buckets.write |
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:
|
logging.buckets.create logging.buckets.delete logging.buckets.get logging.buckets.list logging.buckets.undelete logging.buckets.update logging.exclusions.*
logging.links.*
logging.locations.*
logging.logMetrics.*
logging.logServiceIndexes.list logging.logServices.list logging.logs.list logging.notificationRules.*
logging.operations.*
logging.settings.*
logging.sinks.*
logging.views.create logging.views.delete logging.views.get logging.views.list logging.views.update resourcemanager.projects.get resourcemanager.projects.list |
Log Field Accessor( Ability to read restricted fields in a log bucket. Lowest-level resources where you can grant this role:
|
logging.fields.access |
Log Link Accessor( Ability to see links for a bucket. |
logging.links.get logging.links.list |
Logs Writer( Provides the permissions to write log entries. Lowest-level resources where you can grant this role:
|
logging.logEntries.create logging.logEntries.route |
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:
|
logging.buckets.get logging.buckets.list logging.exclusions.get logging.exclusions.list logging.links.get logging.links.list logging.locations.*
logging.logEntries.list logging.logMetrics.get logging.logMetrics.list logging.logServiceIndexes.list logging.logServices.list logging.logs.list logging.privateLogEntries.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.get logging.views.access logging.views.get logging.views.list resourcemanager.projects.get |
Logs View Accessor( Ability to read logs in a view. Lowest-level resources where you can grant this role:
|
logging.logEntries.download logging.views.access logging.views.listLogs logging.views.listResourceKeys logging. |
Logs Viewer( Provides access to view logs. Lowest-level resources where you can grant this role:
|
logging.buckets.get logging.buckets.list logging.exclusions.get logging.exclusions.list logging.links.get logging.links.list logging.locations.*
logging.logEntries.list logging.logMetrics.get logging.logMetrics.list logging.logServiceIndexes.list logging.logServices.list 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.get logging.views.get logging.views.list resourcemanager.projects.get |
En las siguientes secciones, se proporciona información adicional para ayudarte a decidir qué funciones 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 la función de administrador de Logging (
roles/logging.admin
).Para permitir que un usuario cree y modifique la configuración de registro, como receptores, buckets, vistas, vínculos, métricas basadas en registros o exclusiones, otorga la función de escritor de configuración de registros (
roles/logging.configWriter
).Para permitir que un usuario lea registros en los buckets
_Required
y_Default
, use el Explorador de registros y use la página Estadísticas de registros, otorgue uno de los siguientes roles:- Para acceder a todos los registros en el bucket
_Required
y acceder a la vista_Default
en el bucket_Default
, otorga la función de visualizador de registros (roles/logging.viewer
). - Para acceder a todos los registros en los buckets
_Required
y_Default
, incluidos los registros de acceso a los datos, otorga la función de visualizador de registros privados (roles/logging.privateLogViewer
).
- Para acceder a todos los registros en el bucket
Para permitir que un usuario lea registros que se almacenan en un bucket definido por el usuario, otorga la función de descriptor de acceso de vista de registros (
roles/logging.viewAccessor
). Puedes restringir la autorización a una vista de registro específica en un bucket específico mediante una condición de IAM. Consulta Lee registros de un bucket para ver un ejemplo.Para otorgarle a un usuario acceso a campos
LogEntry
restringidos, si los hay, en un bucket determinado, otorga la función de Descriptor de acceso de campos de registros (roles/logging.fieldAccessor
). Para obtener más información, consulta Configura el acceso a nivel de campo.Para permitir que un usuario escriba registros mediante la API de Logging, otorga la función de escritor de registros (
roles/logging.logWriter
). Este rol no otorga permisos de lectura.Para permitir que la cuenta de servicio de un receptor enrute los registros a un bucket en un proyecto de Google Cloud diferente, otorga a la cuenta de servicio la función de escritor de bucket de registros (
roles/logging.bucketWriter
). Si quieres obtener instrucciones para otorgar permisos a una cuenta de servicio, consulta Configura permisos de destino.
Funciones a nivel de proyecto
Para otorgar acceso de lectura a la mayoría de los servicios de Google Cloud, otorga la función de visualizador (
roles/viewer
).Esta función incluye todos los permisos que otorga la función de visor de registros (
roles/logging.viewer
).Para otorgar acceso de editor a la mayoría de los servicios de Google Cloud, otorga la función de editor (
roles/editor
).Esta función incluye todos los permisos que otorga la función de 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, esta función no permite que los usuarios creen receptores, lean registros de auditoría de acceso a los datos que se encuentren en el bucket_Default
ni lean registros que se encuentren en buckets de registros definidos por el usuario.Para otorgar acceso completo a la mayoría de los servicios de Google Cloud, otorga la función de propietario (
roles/owner
).
Otorgando funciones
Para obtener información sobre cómo otorgar una función a un principal, consulta Otorga, cambia y revoca el acceso a los recursos.
Puedes asignar varias funciones 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 la principal que aparece como Propietario del recurso.
Funciones personalizadas
A fin de crear una función personalizada con permisos de Logging, haz lo siguiente:
Para un rol que otorga permisos a la API de Logging, elige permisos entre Permisos de la API y, luego, sigue las instrucciones para crear un rol personalizado.
Si quieres un rol que otorga permisos para usar el Explorador de registros, elige entre grupos de permisos en Permisos de la consola y, luego, sigue las instrucciones para crear un rol personalizado.
Si deseas una función que otorga permisos para usar
gcloud logging
, consulta la sección Permisos de la línea de comandos en esta página y, luego, sigue las instrucciones a fin de crear una función personalizada.
Para obtener más información sobre las funciones personalizadas, consulta Comprende las funciones personalizadas de IAM.
Permisos para la API de Logging
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 almacenados en organizaciones, cuentas de facturación y carpetas de Google Cloud, 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 los métodos de projects
se muestran 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 ologging.privateLogEntries.list |
proyectos, organizaciones, carpetas, cuentas de facturación |
entries.tail |
logging.logEntries.list ologging.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 |
projects |
projects.exclusions.delete |
logging.exclusions.delete |
projects |
projects.exclusions.get |
logging.exclusions.get |
projects |
projects.exclusions.list |
logging.exclusions.list |
projects |
projects.exclusions.patch |
logging.exclusions.update |
projects |
projects.logs.list |
logging.logs.list |
projects |
projects.logs.delete |
logging.logs.delete |
projects |
projects.sinks.list |
logging.sinks.list |
projects |
projects.sinks.get |
logging.sinks.get |
projects |
projects.sinks.create |
logging.sinks.create |
projects |
projects.sinks.update |
logging.sinks.update |
projects |
projects.sinks.delete |
logging.sinks.delete |
projects |
projects.locations.buckets.list |
logging.buckets.list |
projects |
projects.locations.buckets.get |
logging.buckets.get |
projects |
projects.locations.buckets.patch |
logging.buckets.update |
projects |
projects.locations.buckets.create |
logging.buckets.create |
projects |
projects.locations.buckets.delete |
logging.buckets.delete |
projects |
projects.locations.buckets.undelete |
logging.buckets.undelete |
projects |
projects.metrics.list |
logging.logMetrics.list |
projects |
projects.metrics.get |
logging.logMetrics.get |
projects |
projects.metrics.create |
logging.logMetrics.create |
projects |
projects.metrics.update |
logging.logMetrics.update |
projects |
projects.metrics.delete |
logging.logMetrics.delete |
proyectos |
Permisos de la consola de Google Cloud
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 las métricas basadas en registros | Agregar logging.logMetrics. {list , get } |
Agrega la habilidad para ver los 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 } |
Agrega la habilidad de usar receptores | 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 } |
Agrega la habilidad de guardar consultas | Agregar logging.queries. {list , create , get , update , delete } |
Agregar la capacidad de compartir consultas | Agregar logging.queries.share |
Agrega la capacidad de usar consultas recientes | Agregar logging.queries. {create , list } |
Permisos para la línea de comandos
Los comandos gcloud logging
se controlan con permisos de IAM.
Para usar cualquiera de los comandos gcloud logging
, las principales deben tener el permiso serviceusage.services.use
.
Una principal también debe tener el rol de IAM que corresponde 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.
Permisos para conjuntos de datos de BigQuery vinculados
En la siguiente lista, se describen las funciones predefinidas y los permisos correspondientes para administrar tus conjuntos de datos vinculados de BigQuery:
Los roles de Administrador de Logging (
roles/logging.admin
) y Escritor de configuración de registros (roles/logging.configWriter
) contienen los siguientes permisos:logging.links.list
logging.links.create
logging.links.get
logging.links.delete
Los roles de Descriptor de acceso a vínculos de registros (
roles/logging.linkViewer
), visualizador de registros privados (roles/logging.privateLogViewer
) y visualizador de registros (roles/logging.viewer
) contienen los siguientes permisos:logging.links.list
logging.links.get
Las funciones y los permisos enumerados anteriormente solo se aplican a las páginas de Logging, como la página de Análisis de registros. Si usas la interfaz de BigQuery para administrar tus conjuntos de datos, es posible que necesites funciones y permisos de BigQuery diferentes. Consulta Control de acceso con la IAM para BigQuery a fin de obtener más información.
Permisos para enrutar registros
Si quieres obtener información sobre cómo configurar los controles de acceso cuando creas y administras receptores para enrutar registros, consulta Configura permisos de destino.
Ten en cuenta que la administración de filtros de exclusión se integra en la configuración de los receptores. Todos los permisos relacionados con la administración de los 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 los filtros de exclusión, agrega los permisos logging.sinks.*
a la función, en lugar de agregar los permisos logging.exclusions.*
.
Después de que tus entradas de registro se enrutan a un destino compatible, el acceso a las copias de registros se controla por completo mediante los permisos y las funciones de IAM en los destinos: Cloud Storage, BigQuery o Pub/Sub.
Permisos para métricas basadas en registros
A continuación, se muestra un resumen de las funciones y los permisos comunes que necesita una principal para acceder a las métricas basadas en registros:
La función de Escritor de configuración de registros (
roles/logging.configWriter
) permite a las principales enumerar, crear, obtener, actualizar y borrar métricas basadas en registros.La función Visor de registros (
roles/logging.viewer
) contiene permisos para ver las métricas existentes. En particular, una principal necesita los permisoslogging.logMetrics.get
ylogging.logMetrics.list
para ver las métricas existentes.La función Visualizador de Monitoring (
roles/monitoring.viewer
) contiene los permisos para leer datos de TimeSeries. En particular, una principal necesita el permisomonitoring.timeSeries.list
para leer datos de series temporales.Los roles Administrador de Logging (
roles/logging.admin
), Editor del proyecto (roles/editor
) y Propietario del proyecto (roles/owner
) contienen los permisos para crear métricas basadas en registros. Específicamente, una principal necesita el permisologging.logMetrics.create
para crear métricas basadas en registros.
Permisos para las alertas basadas en registros
Para crear y administrar alertas basadas en registros, una principal necesita funciones y permisos de Logging y Monitoring.
El Administrador de Logging (
roles/logging.admin
) contiene los permisos necesarios para leer registros y administrar reglas de notificación de Logging:logging.logs.list
logging.logEntries.list
logging.notificationRules.create
logging.notificationRules.update
Si no deseas otorgar esta función, haz lo siguiente:
- Otorga los roles de escritor de configuración de registros (
roles/logging.configWriter
) y visualizador de registros (roles/logging.viewer
). - Crea un rol personalizado y, luego, incluye estos permisos. Para obtener más información, consulta Crea y administra funciones personalizadas.
En conjunto, las funciones Editor de políticas de alertas de Monitoring (
roles/monitoring.alertPolicyEditor
) y Editor de canales de notificaciones de Monitoring (roles/monitoring.notificationChannelEditor
) incluyen los permisos necesarios para administrar las políticas de alertas y los canales de notificaciones que usan las alertas basadas en registros:monitoring.alertPolicies.{create, delete, get, list, update}
monitoring.notificationChannelDescriptors.{get, list}
monitoring.notificationChannels.{create, delete, get, list, sendVerificationCode, update, verify}
Las funciones Editor de Monitoring (
roles/monitoring.editor
) y Administrador de Monitoring (roles/monitoring.admin
) también contienen todos los permisos necesarios para administrar las políticas de alertas y los canales de notificaciones.Si no deseas otorgar ninguna de las funciones predeterminadas de Monitoring, crea una función personalizada y, luego, incluye los permisos de las funciones de Editor de políticas de alertas de Monitoring (
roles/monitoring.alertPolicyEditor
) y Editor de canales de notificaciones de Monitoring (roles/monitoring.notificationChannelEditor
).- Para obtener información sobre las funciones personalizadas, consulta Crea y administra funciones personalizadas.
- Para obtener más información sobre las funciones y los permisos de Monitoring, consulta Control de acceso con IAM.
Niveles de acceso de Logging
Los permisos de acceso son el método heredado 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. |
Si quieres 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.