Control de acceso con IAM

En este documento, se describe cómo usar roles y permisos de Identity and Access Management (IAM) para para controlar el acceso a los datos de registro la API de Logging, el el Explorador de registros Google Cloud CLI.

Descripción general

Los permisos de IAM y Los roles determinan tu capacidad para acceder a los registros en la API de Logging, en la Explorador de registros 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 en 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, una principal debe tener un de IAM que contiene los permisos adecuados.

Funciones predefinidas

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

En la siguiente tabla, se enumeran las funciones predefinidas de Logging. Para de cada rol, la tabla muestra el título del rol, la descripción permisos 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 de proyecto de Google Cloud o, en la mayoría de los casos, cualquier tipo de Jerarquía de Google Cloud. Para limitar el rol de Acceso a vistas de registros con mayor precisión a nivel de bucket, usa atributos de recursos para las condiciones de IAM.

Para obtener una lista de todas los permisos individuales contenidos en un rol, consulta Obtén los metadatos de la función.

Role Permissions

(roles/logging.admin)

Provides all permissions necessary to use all features of Cloud Logging.

Lowest-level resources where you can grant this role:

  • Project

logging.buckets.copyLogEntries

logging.buckets.create

logging.buckets.delete

logging.buckets.get

logging.buckets.list

logging.buckets.undelete

logging.buckets.update

logging.exclusions.*

  • logging.exclusions.create
  • logging.exclusions.delete
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.exclusions.update

logging.fields.access

logging.links.*

  • logging.links.create
  • logging.links.delete
  • logging.links.get
  • logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logEntries.*

  • logging.logEntries.create
  • logging.logEntries.download
  • logging.logEntries.list
  • logging.logEntries.route

logging.logMetrics.*

  • logging.logMetrics.create
  • logging.logMetrics.delete
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logMetrics.update

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.*

  • logging.logs.delete
  • logging.logs.list

logging.notificationRules.*

  • logging.notificationRules.create
  • logging.notificationRules.delete
  • logging.notificationRules.get
  • logging.notificationRules.list
  • logging.notificationRules.update

logging.operations.*

  • logging.operations.cancel
  • logging.operations.get
  • logging.operations.list

logging.privateLogEntries.list

logging.queries.*

  • logging.queries.deleteShared
  • logging.queries.getShared
  • logging.queries.listShared
  • logging.queries.share
  • logging.queries.updateShared
  • logging.queries.usePrivate

logging.settings.*

  • logging.settings.get
  • logging.settings.update

logging.sinks.*

  • logging.sinks.create
  • logging.sinks.delete
  • logging.sinks.get
  • logging.sinks.list
  • logging.sinks.update

logging.usage.get

logging.views.*

  • logging.views.access
  • logging.views.create
  • logging.views.delete
  • logging.views.get
  • logging.views.getIamPolicy
  • logging.views.list
  • logging.views.listLogs
  • logging.views.listResourceKeys
  • logging.views.listResourceValues
  • logging.views.setIamPolicy
  • logging.views.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/logging.bucketWriter)

Ability to write logs to a log bucket.

Lowest-level resources where you can grant this role:

  • Project

logging.buckets.write

(roles/logging.configWriter)

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:

  • Project

logging.buckets.create

logging.buckets.delete

logging.buckets.get

logging.buckets.list

logging.buckets.undelete

logging.buckets.update

logging.exclusions.*

  • logging.exclusions.create
  • logging.exclusions.delete
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.exclusions.update

logging.links.*

  • logging.links.create
  • logging.links.delete
  • logging.links.get
  • logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logMetrics.*

  • logging.logMetrics.create
  • logging.logMetrics.delete
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logMetrics.update

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.notificationRules.*

  • logging.notificationRules.create
  • logging.notificationRules.delete
  • logging.notificationRules.get
  • logging.notificationRules.list
  • logging.notificationRules.update

logging.operations.*

  • logging.operations.cancel
  • logging.operations.get
  • logging.operations.list

logging.settings.*

  • logging.settings.get
  • logging.settings.update

logging.sinks.*

  • logging.sinks.create
  • logging.sinks.delete
  • logging.sinks.get
  • logging.sinks.list
  • logging.sinks.update

logging.views.create

logging.views.delete

logging.views.get

logging.views.getIamPolicy

logging.views.list

logging.views.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/logging.fieldAccessor)

Ability to read restricted fields in a log bucket.

Lowest-level resources where you can grant this role:

  • Project

logging.fields.access

(roles/logging.linkViewer)

Ability to see links for a bucket.

logging.links.get

logging.links.list

(roles/logging.logWriter)

Provides the permissions to write log entries.

Lowest-level resources where you can grant this role:

  • Project

logging.logEntries.create

logging.logEntries.route

(roles/logging.privateLogViewer)

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:

  • Project

logging.buckets.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.links.get

logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logEntries.list

logging.logMetrics.get

logging.logMetrics.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.privateLogEntries.list

logging.queries.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.access

logging.views.get

logging.views.list

resourcemanager.projects.get

(roles/logging.viewAccessor)

Ability to read logs in a view.

Lowest-level resources where you can grant this role:

  • Project

logging.logEntries.download

logging.views.access

logging.views.listLogs

logging.views.listResourceKeys

logging.views.listResourceValues

(roles/logging.viewer)

Provides access to view logs.

Lowest-level resources where you can grant this role:

  • Project

logging.buckets.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.links.get

logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

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.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.get

logging.views.list

resourcemanager.projects.get

En las siguientes secciones, se brinda información adicional para ayudarte a decidir qué roles se aplican a las cuentas de los casos de uso.

Funciones de Logging

  • Para permitir que un usuario realice todas las acciones en Logging, otorga el permiso Administrador de Logging (roles/logging.admin).

  • Para permitir que un usuario cree y modifique configuraciones de registro, como receptores, buckets, vistas, vínculos, métricas basadas en registros o exclusiones, conceden al Rol de escritor de configuración de registros (roles/logging.configWriter).

  • Para permitir que un usuario lea registros en los buckets de _Required y _Default, haz lo siguiente: usar el Explorador de registros y la página Análisis de registros, otorgar uno de los siguientes roles:

    • Para acceder a todos los registros del bucket _Required y a las _Default en el bucket _Default, otorga la Visualizador de registros (roles/logging.viewer).
    • Para acceder a todos los registros en los buckets de _Required y _Default, haz lo siguiente: incluidos los registros de acceso a los datos, otorgar el rol de visualizador de registros privados (roles/logging.privateLogViewer).
  • Para permitir que un usuario lea registros en todas las vistas de registro de un proyecto, otórgale la función de IAM de 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 IAM para la vista de registro y, luego, agrega una IAM vinculada a esa política que otorga a la principal acceso a la vista de registro.

    • Otorga a la principal el rol de IAM de roles/logging.viewAccessor en el proyecto que contiene la vista de registro. pero adjuntar un Condición de IAM a restringir el otorgamiento a una 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 registros.

  • Para otorgar a un usuario acceso a campos restringidos de LogEntry, si los hay, haz lo siguiente: en un bucket determinado, otorga el Acceso al campo de registro de acceso (roles/logging.fieldAccessor). Para obtener más información, consulta Configura el acceso a nivel de 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 receptor enrute los registros a un bucket en un otro proyecto de Google Cloud, otórgale a la cuenta de servicio Rol de escritor de buckets 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, otorgas el rol de visualizador (roles/viewer).

    Este rol incluye todos los permisos otorgados por el Visualizador de registros (roles/logging.viewer).

  • Para otorgar acceso de editor a la mayoría de los servicios de Google Cloud, otorgas el rol de Editor (roles/editor).

    Este rol incluye todos los permisos otorgados por el 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, este rol no les permite a los usuarios crear leer registros de auditoría de acceso a los datos que se encuentran en el bucket _Default o leer registros que están en buckets de registros definidos por el usuario.

  • Para dar acceso completo a la mayoría de los servicios de Google Cloud, otorgas el rol de propietario (roles/owner).

Otorgando funciones

Para obtener información sobre cómo otorgar un rol a una principal, consulta Cómo otorgar, cambiar y revocar 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 recursos permisos, comunícate con la principal que aparece como Propietario de la 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 para 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}
Agregar la habilidad 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 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 capacidad de usar consultas guardadas privadas Agregar logging.queries.{list, create, get, update, delete}
Agrega la habilidad de usar las consultas guardadas compartidas Agregar logging.queries.{share, getShared, updateShared, deleteShared, listShared}
Agrega la habilidad de usar consultas recientes Agregar logging.queries.{create, list}

Permisos para la línea de comandos

Los comandos gcloud logging se y se controlan mediante permisos de IAM.

Para usar cualquiera de los comandos de gcloud logging, las principales deben tener lo siguiente: serviceusage.services.use.

Una principal también debe tener el rol de IAM que corresponde al recurso de registro y al caso de uso. Para obtener más información, consulta permisos de la interfaz de línea de comandos.

En la siguiente lista, se describen los roles predefinidos y los permisos correspondientes para administrar tus conjuntos de datos vinculados de BigQuery:

Los roles y permisos enumerados anteriormente solo se aplican a Páginas de Google Cloud Observability, como la página Análisis de registros. Si usas BigQuery para administrar tus conjuntos de datos, es posible que necesites BigQuery roles y permisos. Consulta Control de acceso con la IAM. para BigQuery para obtener más información.

Permisos para guardar consultas

En esta sección, se describen los roles predefinidos y los permisos para guardar, compartir y usar consultas en las páginas Explorador de registros o Análisis de registros. Usando configuración privada guardada búsquedas que solo tú puedes ver, así como consultas guardadas que se comparten con otros miembros del proyecto de Google Cloud requieren permisos diferentes:

  • A fin de obtener los permisos que necesitas para usar las consultas privadas guardadas, solicita a tu administrador que te otorgue el Rol de IAM de Visor de registros (roles/logging.viewer) en tu proyecto.

    Este rol predefinido contiene los permisos necesarios para usar las consultas privadas guardadas Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

    Permisos necesarios

    Se requieren los siguientes permisos para usar las consultas privadas guardadas:

    • logging.queries.list
    • logging.queries.create
    • logging.queries.get
    • logging.queries.update
    • logging.queries.delete
  • Si deseas obtener los permisos que necesitas para crear, actualizar y borrar consultas compartidas, sigue estos pasos: solicita a tu administrador que te otorgue el Rol de IAM Administrador de Logging (roles/logging.admin) en tu proyecto.

    Este rol predefinido contiene los permisos necesarios para crear, actualizar y borrar consultas compartidas Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

    Permisos necesarios

    Se requieren los siguientes permisos para crear, actualizar y borrar consultas compartidas:

    • logging.queries.share
    • logging.queries.updateShared
    • logging.queries.deleteShared
  • Para obtener los permisos que necesitas para enumerar y obtener consultas compartidas, solicita a tu administrador que te otorgue el Rol de IAM de Visor de registros (roles/logging.viewer) en tu proyecto.

    Este rol predefinido contiene los permisos necesarios para enumerar y obtener consultas compartidas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

    Permisos necesarios

    Se requieren los siguientes permisos para enumerar y obtener consultas compartidas:

    • logging.queries.listShared
    • logging.queries.getShared

Permisos para enrutar registros

Si deseas obtener información para 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 los filtros de exclusión está integrada en la configuración de los receptores. Todas los permisos relacionados con la administración de receptores, incluida la configuración de filtros de exclusión, incluido en los permisos logging.sinks.*. Cuando crees un rol personalizado incluye permisos para administrar filtros de exclusión, agrega logging.sinks.* permisos al rol en lugar de agregar logging.exclusions.* permisos.

Después de que tus entradas de registro se enrutan a un destino admitido, el acceso a las copias de los registros se controlan en su totalidad por los permisos de IAM y roles en los destinos: Cloud Storage, BigQuery o Pub/Sub

Permisos para métricas basadas en registros

A continuación, se muestra un resumen de los roles y permisos comunes que una principal necesita acceder a las métricas basadas en registros:

  • El Escritor de configuración de registros (roles/logging.configWriter) permite que las principales enumeren, creen, obtengan 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. Específicamente, una principal necesita los permisos logging.logMetrics.get y logging.logMetrics.list para ver las métricas existentes.

  • El Visualizador de Monitoring (roles/monitoring.viewer) contiene los permisos para leer datos de TimeSeries. Específicamente, un principal necesita El permiso monitoring.timeSeries.list para leer datos de series temporales

  • El Administrador de Logging (roles/logging.admin) Editor del proyecto (roles/editor) y Roles de Propietario del proyecto (roles/owner) contienen los permisos para crear métricas basadas en registros. En concreto, un principal necesita el permiso logging.logMetrics.create para crear basadas en registros.

Permisos para políticas de alertas basadas en registros

Para crear y administrar políticas de alertas basadas en registros, una principal necesita la los roles de Logging y Monitoring permisos:

  • A fin de obtener los permisos que necesitas para leer los registros y administrar las reglas de notificación de Logging, solicita a tu administrador que te otorgue el Rol de IAM Administrador de Logging (roles/logging.admin) en tu proyecto.

    Este rol predefinido contiene los permisos necesarios para leer los registros y administrar las reglas de notificación de Logging. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

    Permisos necesarios

    Se requieren los siguientes permisos para leer los registros y administrar las reglas de notificación de Logging:

    • logging.queries.listShared
    • logging.queries.getShared
  • A fin de obtener los permisos que necesitas para administrar las políticas de alertas basadas en registros y sus canales de notificaciones, solicita a tu administrador que te otorgue el los siguientes roles de IAM en tu proyecto:

    Estos roles predefinidos contienen los permisos necesarios para administrar políticas de alertas basadas en registros y sus canales de notificaciones. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

    Permisos necesarios

    Se requieren los siguientes permisos para administrar las políticas de alertas basadas en registros y sus canales de notificaciones:

    • logging.queries.listShared
    • logging.queries.getShared
  • Para obtener los permisos que necesitas para crear una política de alertas en Google Cloud CLI, solicita a tu administrador que te otorgue el Rol de IAM Consumidor de Service Usage (roles/serviceusage.serviceUsageConsumer) en tu proyecto.

    Este rol predefinido contiene los permisos necesarios para crear una política de alertas en Google Cloud CLI. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

    Permisos necesarios

    Se requieren los siguientes permisos para crear una política de alertas en Google Cloud CLI:

    • logging.queries.listShared
    • logging.queries.getShared

Niveles de acceso de Logging

Los permisos de acceso son método heredado de especificar permisos para las cuentas de servicio en tu 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 las contraseñas niveles de acceso, consulta Permisos de la cuenta de servicio.