Funciones y permisos predefinidos

En esta página, se proporciona información sobre las funciones y permisos de Cloud Identity and Access Management en BigQuery.

En esta página, se incluyen funciones y permisos relevantes para cada uno de los productos complementarios de BigQuery:

  • BigQuery ML
  • Servicio de transferencia de datos de BigQuery
  • BigQuery BI Engine

Para obtener información adicional sobre los controles de acceso en BigQuery ML, consulta Control de acceso en la documentación de BigQuery ML.

Descripción general

Cuando una identidad llama a una API de Google Cloud, BigQuery requiere que la identidad tenga los permisos adecuados para usar el recurso. Puedes otorgar permisos si asignas funciones a un usuario, a un grupo o una cuenta de servicio.

En esta página, se describen las funciones de Cloud IAM en BigQuery que puedes otorgar a las identidades para acceder a los recursos de BigQuery.

Tipos de funciones de Cloud IAM

Existen tres tipos de funciones en Cloud Identity and Access Management:

  • Las funciones básicas, que incluyen las de Propietario, Editor y Visualizador que existían antes de la introducción de Cloud Identity and Access Management.

  • Las funciones predefinidas proporcionan acceso detallado a un servicio específico y las administra Google Cloud. Las funciones predefinidas están destinadas a brindar compatibilidad con patrones de control de acceso y casos prácticos comunes.

  • Las funciones personalizadas proporcionan acceso detallado según una lista de permisos especificada por el usuario.

Para determinar si se incluyen uno o más permisos en una función básica, predefinida o personalizada, puedes usar uno de los métodos siguientes:

Cuando asignas funciones predefinidas y básicas a un usuario, los permisos otorgados son una unión de los permisos de cada función.

Si deseas obtener información adicional sobre el uso de Cloud IAM para acceder a los recursos, consulta cómo conceder, cambiar y revocar el acceso a los recursos en la documentación de Cloud Identity and Access Management.

Para obtener información sobre la creación de funciones personalizadas, consulta la creación y administración de funciones personalizadas en la documentación de Cloud Identity and Access Management.

Funciones predefinidas de Cloud IAM y permisos en BigQuery

Para otorgar acceso a un recurso de BigQuery, debes asignar una o más funciones a un usuario, grupo o cuenta de servicio. Cuando asignas funciones a nivel de organización y de proyecto, otorgas permiso para ejecutar trabajos de BigQuery o administrar todos los recursos de BigQuery de un proyecto.

También puedes asignar funciones a nivel de conjunto de datos para proporcionar acceso solo a uno o más conjuntos de datos. En la jerarquía de políticas de Cloud IAM, los conjuntos de datos de BigQuery son recursos secundarios de los proyectos. Las tablas y las vistas son recursos secundarios de los conjuntos de datos y heredan los permisos del conjunto de datos principal.

Para obtener más información la asignación de funciones a nivel de conjunto de datos, consulta el control de acceso a los conjuntos de datos.

Permisos de BigQuery

En la tabla siguiente, se describen los permisos disponibles en BigQuery.

Permiso Descripción
bigquery.bireservations.get (Beta) Lee las reservas de BI Engine.
bigquery.bireservations.update (Beta) Actualiza las reservas de BI Engine.
bigquery.capacityCommitments.create (Beta) Crea un compromiso de capacidad en el proyecto.
bigquery.capacityCommitments.delete (Beta) Borra un compromiso de capacidad.
bigquery.capacityCommitments.get (Beta) Recupera los detalles sobre un compromiso de capacidad.
bigquery.capacityCommitments.list (Beta) Enumera todos los compromisos de capacidad en un proyecto.
bigquery.capacityCommitments.update (Beta) Actualiza todos los compromisos de capacidad de un proyecto.
bigquery.connections.create (Beta) Crea conexiones nuevas en un proyecto.
bigquery.connections.delete (Beta) Borra una conexión.
bigquery.connections.get (Beta) Obtiene metadatos de conexión. Se excluyen las credenciales.
bigquery.connections.list (Beta) Enumera las conexiones en un proyecto.
bigquery.connections.update (Beta) Actualiza una conexión y sus credenciales.
bigquery.connections.use (Beta) Usa una configuración de conexión para conectarse a una fuente de datos remota.
bigquery.datasets.create Crea conjuntos de datos vacíos nuevos.
bigquery.datasets.delete Borra un conjunto de datos.
bigquery.datasets.get Obtiene los metadatos sobre un conjunto de datos.
bigquery.datasets.getIamPolicy Lee la política de Cloud IAM.
bigquery.datasets.setIamPolicy Cambia la política de Cloud IAM.
bigquery.datasets.update Actualiza los metadatos para un conjunto de datos.
bigquery.jobs.create Ejecuta trabajos (incluidas consultas) en el proyecto.
bigquery.jobs.get Obtiene datos y metadatos de cualquier trabajo*.
bigquery.jobs.list Genera una lista de todos los trabajos y recupera los metadatos de cualquier trabajo enviado por un usuario*. Para los trabajos que enviaron otros usuarios, se ocultan los detalles y los metadatos.
bigquery.jobs.listAll Genera una lista de todos los trabajos y recupera los metadatos de cualquier trabajo enviado por un usuario*.
bigquery.jobs.update Cancela cualquier trabajo*.
bigquery.models.create Crea modelos nuevos.
bigquery.models.delete Borra modelos.
bigquery.models.getData Obtiene datos del modelo. Para obtener metadatos del modelo, necesitas bigquery.models.getMetadata.
bigquery.models.getMetadata Obtiene metadatos del modelo. Para obtener datos del modelo, necesitas bigquery.models.getData.
bigquery.models.list Enumera modelos y metadatos en modelos.
bigquery.models.updateData Actualiza los datos del modelo. Para actualizar los metadatos del modelo, necesitas bigquery.models.updateMetadata.
bigquery.models.updateMetadata Actualiza los metadatos del modelo. Para actualizar los datos del modelo, necesitas bigquery.models.updateData.
bigquery.models.create y bigquery.models.getData Realiza operaciones de AA: ML.PREDICT, ML.WEIGHTS, ML.TRAINING_INFO y ML.FEATURE_INFO
bigquery.readsessions.create (Beta) Crea una nueva sesión de lectura a través de la API de almacenamiento de BigQuery.
bigquery.readsessions.getData (Beta) Lee datos de una sesión de lectura a través de la API de BigQuery Storage.
bigquery.readsessions.update (Beta) Actualiza una sesión de lectura a través de la API de BigQuery Storage.
bigquery.reservations.create (Beta) Crea una reserva en un proyecto.
bigquery.reservations.delete (Beta) Borra una reserva.
bigquery.reservations.get (Beta) Recupera los detalles de una reserva.
bigquery.reservations.list (Beta) Enumera todas las reservas en un proyecto.
bigquery.reservations.update (Beta) Actualiza las propiedades de una reserva.
bigquery.reservationAssignments.create (Beta)

Crea una asignación de reserva. Este permiso es obligatorio en el proyecto del propietario y el recurso asignado.
Para mover una asignación de reserva, necesitas bigquery.reservationAssignments.create en el nuevo proyecto del propietario y el recurso asignado.

bigquery.reservationAssignments.delete (Beta)

Borra una asignación de reserva. Este permiso es obligatorio en el proyecto del propietario y el recurso asignado.
Para mover una asignación de reserva, necesitas bigquery.reservationAssignments.delete en el anterior proyecto del propietario y el recurso asignado.

bigquery.reservationAssignments.list (Beta) Enumera todas las asignaciones de reservas de un proyecto.
bigquery.reservationAssignments.search (Beta) Busca una asignación de reserva de una carpeta, organización o proyecto determinado.
bigquery.routines.create (Beta) Crea rutinas nuevas (funciones y procedimientos almacenados).
bigquery.routines.delete (Beta) Borra rutinas.
bigquery.routines.get (Beta) Obtiene metadatos y definiciones de rutinas.
bigquery.routines.list (Beta) Enumera rutinas y metadatos en rutinas.
bigquery.routines.update (Beta)

Actualiza metadatos y definiciones de rutinas.

bigquery.savedqueries.create Crea consultas guardadas.
bigquery.savedqueries.delete Borra las consultas guardadas.
bigquery.savedqueries.get Obtiene los metadatos de las consultas guardadas.
bigquery.savedqueries.list Enumera las consultas guardadas.
bigquery.savedqueries.update Actualiza las consultas guardadas.
bigquery.tables.create Crea tablas nuevas.
bigquery.tables.delete Borra tablas.
bigquery.tables.export Exporta los datos de las tablas fuera de BigQuery.
bigquery.tables.get Obtiene metadatos de tablas.
Para obtener datos de tablas, necesitas bigquery.tables.getData.
bigquery.tables.getData Obtiene datos de tablas. Este permiso es necesario para consultar los datos de la tabla.
Para obtener los metadatos de la tabla, necesitas bigquery.tables.get.
bigquery.tables.list Enumera las tablas y los metadatos de las tablas.
bigquery.tables.setCategory Establece etiquetas de política en el esquema de tabla.
bigquery.tables.update

Actualiza los metadatos de la tabla.
Para actualizar los datos de la tabla, necesitas bigquery.tables.updateData.

bigquery.tables.updateData

Actualiza los datos de la tabla.
Para actualizar los metadatos de la tabla, necesitas bigquery.tables.update.

bigquery.transfers.get Obtiene los metadatos de las transferencias.
bigquery.transfers.update Crea, actualiza y borra las transferencias.

* En cualquier trabajo que crees, tendrás de forma automática el equivalente a los permisos bigquery.jobs.get y bigquery.jobs.update para ese trabajo.

Funciones predefinidas de Cloud IAM en BigQuery

En la tabla siguiente, se enumeran las funciones predefinidas de Cloud IAM en BigQuery y todos los permisos correspondientes que se incluyen en cada función. Ten en cuenta que cada permiso es aplicable a un tipo de recurso específico.

Función Título Descripción Permisos Recurso más bajo
roles/bigquery.admin Administrador de BigQuery Proporciona permisos para administrar todos los recursos dentro del proyecto. Puede administrar todos los datos dentro del proyecto y puede cancelar trabajos de otros usuarios que se ejecutan dentro del proyecto.
  • bigquery.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Proyecto
roles/bigquery.connectionAdmin Administrador de conexión de BigQuery Beta
  • bigquery.connections.*
roles/bigquery.connectionUser Usuario de conexión de BigQuery Beta
  • bigquery.connections.get
  • bigquery.connections.getIamPolicy
  • bigquery.connections.list
  • bigquery.connections.use
roles/bigquery.dataEditor Editor de datos de BigQuery

Cuando se aplica a un conjunto de datos, dataEditor proporciona permisos para lo siguiente:

  • Leer los metadatos del conjunto de datos y hacer una lista de las tablas del conjunto de datos.
  • Crear, actualizar, obtener y borrar las tablas del conjunto de datos

Cuando se aplica a nivel de proyecto o de la organización, esta función también puede crear nuevos conjuntos de datos.

  • bigquery.datasets.create
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.datasets.updateTag
  • bigquery.models.*
  • bigquery.routines.*
  • bigquery.tables.create
  • bigquery.tables.delete
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.list
  • bigquery.tables.update
  • bigquery.tables.updateData
  • bigquery.tables.updateTag
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Dataset
roles/bigquery.dataOwner Propietario de datos de BigQuery

Cuando se aplica a un conjunto de datos, dataOwner proporciona permisos para lo siguiente:

  • Leer, actualizar y borrar el conjunto de datos.
  • Crear, actualizar, obtener y borrar las tablas del conjunto de datos

Cuando se aplica a nivel del proyecto o de la organización, esta función también puede crear conjuntos de datos nuevos.

  • bigquery.datasets.*
  • bigquery.models.*
  • bigquery.routines.*
  • bigquery.tables.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Dataset
roles/bigquery.dataViewer Lector de datos de BigQuery

Cuando se aplica a un conjunto de datos, dataViewer proporciona permisos para lo siguiente:

  • Leer los metadatos del conjunto de datos y hacer una lista de las tablas del conjunto de datos.
  • Leer datos y metadatos de las tablas del conjunto de datos

Cuando se aplica a nivel del proyecto o de la organización, esta función también puede enumerar todos los conjuntos de datos en el proyecto. Sin embargo, se requieren funciones adicionales para permitir la ejecución de los trabajos.

  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.models.getData
  • bigquery.models.getMetadata
  • bigquery.models.list
  • bigquery.routines.get
  • bigquery.routines.list
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Dataset
roles/bigquery.jobUser Usuario de trabajo de BigQuery Proporciona permisos para ejecutar trabajos, incluidas las consultas, dentro del proyecto. Esta función puede verificar la existencia de todos los trabajos, enumerar sus propios trabajos y cancelar sus propios trabajos.
  • bigquery.jobs.create
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Proyecto
roles/bigquery.metadataViewer Lector de metadatos de BigQuery

Cuando se aplica a nivel de proyecto o de la organización, metadataViewer proporciona permisos para lo siguiente:

  • Enumerar todos los conjuntos de datos y leer los metadatos de todos los conjuntos de datos del proyecto.
  • Listar todas las tablas y vistas, y leer los metadatos de todas las tablas y vistas del proyecto.

Se requieren funciones adicionales para permitir la ejecución de trabajos.

  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.models.getMetadata
  • bigquery.models.list
  • bigquery.routines.get
  • bigquery.routines.list
  • bigquery.tables.get
  • bigquery.tables.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Proyecto
roles/bigquery.readSessionUser Usuario de sesión de lectura de BigQuery Acceso para crear y usar sesiones de lectura
  • bigquery.readsessions.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.resourceAdmin Administrador de recursos de BigQuery Beta Administra todos los recursos de BigQuery.
  • bigquery.bireservations.*
  • bigquery.capacityCommitments.*
  • bigquery.jobs.get
  • bigquery.jobs.list
  • bigquery.jobs.listAll
  • bigquery.reservationAssignments.*
  • bigquery.reservations.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.user Usuario de BigQuery Proporciona permisos para ejecutar trabajos, incluidas las consultas, dentro del proyecto. La función de usuario puede enumerar sus propios trabajos, cancelar sus propios trabajos y enumerar conjuntos de datos dentro de un proyecto. Además, te permite crear conjuntos de datos nuevos dentro del proyecto; al creador se le otorga la función bigquery.dataOwner para estos conjuntos nuevos.
  • bigquery.bireservations.get
  • bigquery.capacityCommitments.get
  • bigquery.capacityCommitments.list
  • bigquery.config.get
  • bigquery.datasets.create
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.jobs.create
  • bigquery.jobs.list
  • bigquery.models.list
  • bigquery.readsessions.*
  • bigquery.reservationAssignments.list
  • bigquery.reservationAssignments.search
  • bigquery.reservations.get
  • bigquery.reservations.list
  • bigquery.routines.list
  • bigquery.savedqueries.get
  • bigquery.savedqueries.list
  • bigquery.tables.list
  • bigquery.transfers.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Proyecto

Funciones básicas de BigQuery

Para obtener información sobre las funciones básicas de BigQuery, consulta los permisos y funciones básicas de BigQuery.

Funciones personalizadas de BigQuery

Para crear una función personalizada de Cloud IAM en BigQuery, sigue los pasos descritos en la documentación de funciones personalizadas de Cloud IAM.

Próximos pasos