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.jobs.create Ejecuta trabajos (incluidas consultas) en el proyecto.
bigquery.jobs.listAll Genera una lista de todos los trabajos y recupera los metadatos de cualquier trabajo enviado por un usuario*.
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.get Obtiene datos y metadatos de cualquier trabajo*.
bigquery.jobs.update Cancela cualquier trabajo*.
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.update Actualiza los metadatos para un conjunto de datos.
bigquery.tables.create Crea tablas nuevas.
bigquery.tables.list Enumera las tablas y los metadatos de las tablas.
bigquery.tables.delete Borra las tablas.
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.export Exporta los datos de las tablas fuera de BigQuery.
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.routines.create (Beta) Crea rutinas nuevas (funciones y procedimientos almacenados).
bigquery.routines.list (Beta) Enumera rutinas y metadatos en rutinas.
bigquery.routines.delete (Beta) Borra rutinas.
bigquery.routines.get (Beta) Obtiene metadatos y definiciones de rutinas.
bigquery.routines.update (Beta)

Actualiza metadatos y definiciones de rutinas.

bigquery.transfers.get Obtiene los metadatos de las transferencias.
bigquery.transfers.update Crea, actualiza y borra las transferencias.
bigquery.savedqueries.create Crea 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.savedqueries.delete Borra las consultas guardadas.
bigquery.readsessions.create (Beta) Crea una nueva sesión de lectura a través de la API de almacenamiento de BigQuery.
bigquery.connections.create (Beta) Crea conexiones nuevas en un proyecto.
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.use (Beta) Usa una configuración de conexión para conectarse a una fuente de datos remota.
bigquery.connections.update (Beta) Actualiza una conexión y sus credenciales.
bigquery.connections.delete (Beta) Borra una conexión.
bigquery.reservations.create (Beta) Crea una reserva en un proyecto.
bigquery.reservations.list (Beta) Enumera todas las reservas en un proyecto.
bigquery.reservations.get (Beta) Recupera los detalles de una reserva.
bigquery.reservations.delete (Beta) Borra una reserva.
bigquery.reservations.update (Beta) Actualiza las propiedades de una reserva.
bigquery.capacityCommitments.create (Beta) Crea un compromiso de capacidad en el proyecto.
bigquery.capacityCommitments.list (Beta) Enumera todos los compromisos de capacidad en un proyecto.
bigquery.capacityCommitments.get (Beta) Recupera los detalles sobre un compromiso de capacidad.
bigquery.capacityCommitments.delete (Beta) Borra un compromiso de capacidad.
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 las asignaciones de reserva.
Para buscar una asignación de reserva en un proyecto, una carpeta o una organización determinados, necesitas bigquery.reservationAssignments.list en el recurso asignado.

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

Funciones de BigQuery

Función Cargo 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 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, el Editor de datos proporciona los 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 del proyecto o de la organización, esta función también puede crear conjuntos de datos nuevos.

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
Conjunto de datos
roles/
bigquery.dataOwner
Propietario de datos de BigQuery

Cuando se aplica a un conjunto de datos, el Propietario de datos 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
Conjunto de datos
roles/
bigquery.dataViewer
Visualizador de datos de BigQuery

Cuando se aplica a un conjunto de datos, el Visualizador de datos 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
Conjunto de datos
roles/
bigquery.jobUser
Usuario de trabajo de BigQuery Proporciona permisos para ejecutar trabajos, incluidas las consultas, dentro del proyecto. La función Usuario de trabajo puede enumerar y cancelar sus propios trabajos. bigquery.jobs.create
resourcemanager.projects.get resourcemanager.projects.list
Proyecto
roles/
bigquery.metadataViewer
Visualizador de metadatos de BigQuery

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

  • Crear una lista de todos los conjuntos de datos y leer los metadatos de todos los conjuntos de datos del proyecto
  • Crear una lista de 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 Beta Otorga acceso para crear y usar sesiones de lectura. bigquery.readsessions.*
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 te permite enumerar o cancelar tus 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.config.get
bigquery.datasets.create bigquery.datasets.get bigquery.datasets.getIamPolicy bigquery.jobs.create bigquery.jobs.list bigquery.models.list bigquery.readsessions.* 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