Control de acceso con la IAM
En esta página, se proporciona información sobre los permisos y las funciones de administración de identidades y accesos (IAM) de BigQuery. Antes de configurar el control de acceso para BigQuery, puedes familiarizarte con cómo administrar el acceso a Google Cloud con IAM.
Es posible que también necesites una guía detallada sobre los roles y los permisos de los siguientes servicios de BigQuery:
Descripción general
Cuando una identidad (un usuario o una cuenta de servicio) 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 roles a un usuario, a un grupo o a una cuenta de servicio.
En esta página, se describen las funciones de IAM de BigQuery que puedes otorgar a las identidades para acceder a los recursos de BigQuery.
Tipos de funciones de IAM
Puedes administrar los siguientes tipos de roles en IAM:
- 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 según una lista de permisos especificada por el usuario.
Para determinar si se incluyen uno o más permisos en un rol, puedes usar uno de los siguientes métodos:
- La referencia de búsqueda en los permisos de IAM
- El comando
gcloud iam roles describe
- El método
roles.get()
en la API de IAM
Cuando asignas varios tipos de roles a un usuario, los permisos otorgados son una unión de los permisos de cada rol.
Si deseas obtener información adicional sobre el uso de IAM para acceder a los recursos, consulta Otorga, cambia y revoca el acceso a los recursos en la documentación de IAM.
Para obtener información sobre las funciones personalizadas, consulta Crea y administra funciones personalizadas en la documentación de IAM.
Funciones predefinidas de IAM y permisos en BigQuery
Los permisos no se asignan directamente a los usuarios, grupos o cuentas de servicio. En cambio, a los usuarios, grupos o cuentas de servicio se les otorga acceso a roles predefinidos o personalizados para darles permisos a fin de que realicen acciones en los recursos.
Puedes otorgar acceso en los siguientes niveles de recursos de BigQuery:
- Nivel de organización o proyecto de Google Cloud
- Nivel de conjunto de datos
- Nivel de tabla o vista
Funciones aplicadas a nivel de la organización o del proyecto de Cloud
Cuando asignas funciones a nivel de organización y de proyecto, otorgas permiso para ejecutar trabajos de BigQuery o acceder a todos los recursos de BigQuery de un proyecto.
Funciones aplicadas a nivel del conjunto de datos
Puedes asignar funciones a nivel del conjunto de datos para proporcionar acceso a un conjunto de datos específico, sin proporcionar acceso completo a los recursos del proyecto. En la jerarquía de políticas de IAM, los conjuntos de datos de BigQuery son recursos secundarios de los proyectos. Para obtener más información sobre la asignación de funciones a nivel de conjunto de datos, consulta la página sobre el control de acceso a los conjuntos de datos.
Funciones aplicadas a recursos individuales dentro de conjuntos de datos
Puedes asignar funciones de forma individual a ciertos tipos de recursos dentro de conjuntos de datos, sin proporcionar acceso completo a los recursos del conjunto de datos.
Las funciones se pueden aplicar a recursos individuales de los siguientes tipos:
- tablas
- vistas
Las funciones no se pueden aplicar a recursos individuales de los siguientes tipos:
- routines
- models
Para obtener más información sobre cómo asignar funciones a nivel de tabla o vista, consulta Controla el acceso a tablas o vistas.
Permisos de BigQuery
En la tabla siguiente, se describen los permisos disponibles en BigQuery.
Permiso | Descripción |
---|---|
bigquery.bireservations.get |
Lee las reservas de BI Engine. |
bigquery.bireservations.update |
Actualiza las reservas de BI Engine. |
bigquery.capacityCommitments.create |
Crea un compromiso de capacidad en el proyecto. |
bigquery.capacityCommitments.delete |
Borra un compromiso de capacidad. |
bigquery.capacityCommitments.get |
Recupera los detalles sobre un compromiso de capacidad. |
bigquery.capacityCommitments.list |
Enumera todos los compromisos de capacidad en un proyecto. |
bigquery.capacityCommitments.update |
Actualiza todos los compromisos de capacidad de un proyecto. |
bigquery.config.update |
Crea una configuración. |
bigquery.config.get |
Obtén detalles sobre una configuración. |
bigquery.connections.create |
Crea conexiones nuevas en un proyecto. |
bigquery.connections.delete |
Borra una conexión. |
bigquery.connections.get |
Obtiene metadatos de conexión. Se excluyen las credenciales. |
bigquery.connections.list |
Enumera las conexiones en un proyecto. |
bigquery.connections.update |
Actualiza una conexión y sus credenciales. |
bigquery.connections.updateTag |
Actualiza las etiquetas de una conexión. |
bigquery.connections.use |
Usa una configuración de conexión para conectarse a una fuente de datos remota. |
bigquery.connections.delegate |
Delega la conexión para crear funciones remotas y tablas externas autorizadas. |
bigquery.dataPolicies.create |
Crea políticas de datos nuevas. Este permiso se encuentra en vista previa. |
bigquery.dataPolicies.delete |
Borra políticas de datos. Este permiso se encuentra en vista previa. |
bigquery.dataPolicies.get |
Obtiene metadatos sobre las políticas de datos. Este permiso se encuentra en vista previa. |
bigquery.dataPolicies.getIamPolicy |
Lee los permisos de IAM de una política de datos. Este permiso se encuentra en vista previa. |
bigquery.dataPolicies.list |
Muestra la lista de políticas de datos de un proyecto. Este permiso se encuentra en vista previa. |
bigquery.dataPolicies.maskedGet |
Observa los datos enmascarados de una columna que tiene una etiqueta de política asociada con una política de datos. Este permiso se encuentra en vista previa. |
bigquery.dataPolicies.setIamPolicy |
Configura los permisos de IAM de una política de datos Este permiso se encuentra en vista previa. |
bigquery.dataPolicies.update |
Actualiza los metadatos de una política de datos. Este permiso se encuentra en vista previa. |
bigquery.datasets.create |
Crea conjuntos de datos vacíos nuevos. |
bigquery.datasets.createTagBinding |
Crea vinculaciones de etiquetas en un conjunto de datos. |
bigquery.datasets.delete |
Borra un conjunto de datos. |
bigquery.datasets.deleteTagBinding |
Borra vinculaciones de etiquetas en un conjunto de datos. |
bigquery.datasets.get |
Obtiene los metadatos sobre un conjunto de datos. |
bigquery.datasets.getIamPolicy |
Lee los permisos de IAM de un conjunto de datos. |
bigquery.datasets.link |
Crea un conjunto de datos vinculado. |
bigquery.datasets.listTagBindings |
Obtén una lista de las vinculaciones de etiquetas en un conjunto de datos. |
bigquery.datasets.setIamPolicy |
Cambia los permisos de IAM de un conjunto de datos. |
bigquery.datasets.update |
Actualiza los metadatos para un conjunto de datos. |
bigquery.datasets.updateTag (Beta) |
Actualiza las etiquetas de un conjunto de datos. |
bigquery.jobs.create |
Ejecuta trabajos (incluidas consultas) en el proyecto. |
bigquery.jobs.get |
Obtiene datos y metadatos de cualquier trabajo*.1 |
bigquery.jobs.list |
Enumera 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 |
Enumera todos los trabajos y recupera los metadatos de cualquier trabajo enviado por un usuario. |
bigquery.jobs.listExecutionMetadata (Beta) |
Enumera todos los metadatos de ejecución de trabajos (sin información sensible) en cualquier trabajo enviado por un usuario. Solo se puede aplicar a nivel de la organización y la usa la IU para administrar. |
bigquery.jobs.delete |
Borra metadatos para un trabajo. |
bigquery.jobs.update |
Cancela cualquier trabajo.1 |
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.export |
Exporta un modelo. |
bigquery.readsessions.create |
Crea una nueva sesión de lectura a través de la API de BigQuery Storage Read. |
bigquery.readsessions.getData |
Lee datos de una sesión de lectura a través de la API de BigQuery Storage Read. |
bigquery.readsessions.update |
Actualizar una sesión de lectura a través de la API de Storage Read |
bigquery.reservations.create |
Crea una reserva en un proyecto. |
bigquery.reservations.delete |
Borra una reserva. |
bigquery.reservations.get |
Recupera los detalles de una reserva. |
bigquery.reservations.list |
Enumera todas las reservas en un proyecto. |
bigquery.reservations.update |
Actualiza las propiedades de una reserva. |
bigquery.reservationAssignments.create |
Crea una asignación de reserva. Este permiso es obligatorio en el proyecto del propietario y el recurso asignado. |
bigquery.reservationAssignments.delete |
Borra una asignación de reserva. Este permiso es obligatorio en el proyecto del propietario y el recurso asignado. |
bigquery.reservationAssignments.list |
Enumera todas las asignaciones de reservas de un proyecto. |
bigquery.reservationAssignments.search |
Busca una asignación de reserva de una carpeta, organización o proyecto determinado. |
bigquery.rowAccessPolicies.create |
Crea una política de acceso nueva a nivel de las filas en una tabla. |
bigquery.rowAccessPolicies.delete |
Borra una política de acceso a nivel de las filas de una tabla. |
bigquery.rowAccessPolicies.getFilteredData |
Obtiene datos en una tabla que deseas que solo esté visibles para las principales de la lista de beneficiarios de las políticas de acceso a nivel de las filas. Recomendamos que este permiso solo se otorgue en un recurso de política de acceso a nivel de las filas. |
bigquery.rowAccessPolicies.list |
Enumera todas las políticas de acceso a nivel de las filas en una tabla. |
bigquery.rowAccessPolicies.overrideTimeTravelRestrictions |
Accede a los datos históricos de una tabla que tiene o tuvo políticas de acceso a nivel de fila antes. |
bigquery.rowAccessPolicies.getIamPolicy |
Obtén los permisos de IAM de una política de acceso de fila. |
bigquery.rowAccessPolicies.setIamPolicy |
Configura los permisos de IAM de la política de acceso de fila. |
bigquery.rowAccessPolicies.update |
Vuelve a crear una política de acceso a nivel de las filas. |
bigquery.routines.create |
Crea rutinas nuevas (funciones y procedimientos almacenados). |
bigquery.routines.delete |
Borra rutinas. |
bigquery.routines.get |
Obtiene metadatos y definiciones de rutinas. |
bigquery.routines.list |
Enumera rutinas y metadatos en rutinas. |
bigquery.routines.update |
Actualiza metadatos y definiciones de rutinas. |
bigquery.routines.updateTag |
Actualiza las etiquetas de una rutina. |
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.createIndex |
Crea índices de búsqueda en tablas. |
bigquery.tables.createSnapshot
|
Crea nuevas instantáneas de tablas. |
bigquery.tables.delete |
Borra tablas. |
bigquery.tables.deleteIndex |
Quita índices de búsqueda en las tablas. |
bigquery.tables.deleteSnapshot
|
Borra instantáneas de 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.getIamPolicy |
Lee la política de IAM de una tabla. |
bigquery.tables.list |
Enumera las tablas y los metadatos de las tablas. |
bigquery.tables.restoreSnapshot
|
Restablece las instantáneas tablas. |
bigquery.tables.setCategory |
Establece etiquetas de política en el esquema de tabla. |
bigquery.tables.setIamPolicy |
Cambia la política de IAM de una tabla. |
bigquery.tables.update |
Actualiza los metadatos de la tabla. |
bigquery.tables.updateData |
Actualiza los datos de la tabla. |
bigquery.tables.updateTag (Beta) |
Actualiza las etiquetas de una tabla. |
bigquery.transfers.get |
Obtiene los metadatos de las transferencias. |
bigquery.transfers.update |
Crea, actualiza y borra las transferencias. |
1 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 IAM de BigQuery
En la siguiente tabla, se enumeran las funciones predefinidas de IAM de BigQuery con una lista correspondiente de todos los permisos que se incluyen en cada función. Ten en cuenta que cada permiso es aplicable a un tipo de recurso específico.
Función | Permisos |
---|---|
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. Recursos de nivel más bajo en los que puedes otorgar esta función:
|
|
Administrador de conexión de BigQuery
|
|
Usuario de conexión de BigQuery
|
|
Editor de datos de BigQuery
Cuando se aplica a una tabla o vista, esta función proporciona permisos para lo siguiente:
Esta función no se puede aplicar a modelos ni rutinas individuales. Cuando se aplica a un conjunto de datos, esta función proporciona permisos para lo siguiente:
Cuando se aplica a nivel del proyecto o de la organización, esta función también puede crear conjuntos de datos nuevos. Recursos de nivel más bajo en los que puedes otorgar esta función:
|
|
Propietario de datos de BigQuery
Cuando se aplica a una tabla o vista, esta función proporciona permisos para lo siguiente:
Esta función no se puede aplicar a modelos ni rutinas individuales. Cuando se aplica a un conjunto de datos, esta función proporciona permisos para lo siguiente:
Cuando se aplica a nivel del proyecto o de la organización, esta función también puede crear conjuntos de datos nuevos. Recursos de nivel más bajo en los que puedes otorgar esta función:
|
|
Visualizador de datos de BigQuery
Cuando se aplica a una tabla o vista, esta función proporciona permisos para lo siguiente:
Esta función no se puede aplicar a modelos ni rutinas individuales. Cuando se aplica a un conjunto de datos, esta función proporciona permisos para lo siguiente:
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. Recursos de nivel más bajo en los que puedes otorgar esta función:
|
|
Visualizador de datos filtrados de BigQuery
Acceso para ver los datos de tabla filtrados y definidos por una política de acceso de fila |
|
Usuario de trabajo de BigQuery
Proporciona permisos para ejecutar trabajos, incluidas las consultas, dentro del proyecto. Recursos de nivel más bajo en los que puedes otorgar esta función:
|
|
Visualizador de metadatos de BigQuery
Cuando se aplica a una tabla o vista, esta función proporciona permisos para lo siguiente:
Esta función no se puede aplicar a modelos ni rutinas individuales. Cuando se aplica a un conjunto de datos, esta función proporciona permisos para lo siguiente:
Cuando se aplica a nivel de proyecto o de organización, esta función proporciona permisos para lo siguiente:
Se requieren funciones adicionales para permitir la ejecución de trabajos. Recursos de nivel más bajo en los que puedes otorgar esta función:
|
|
Usuario de sesión de lectura de BigQuery
Otorga acceso para crear y usar sesiones de lectura. |
|
Administrador de recursos de BigQuery
Administra todos los recursos de BigQuery. |
|
Editor de recursos de BigQuery
Tiene permiso para administrar todos los recursos de BigQuery, pero no puede tomar decisiones de compra. |
|
Visualizador de recursos de BigQuery
Tiene permiso para visualizar todos los recursos de BigQuery, pero no puede realizar cambios o tomar decisiones de compra. |
|
Usuario de BigQuery
Cuando se aplica a un conjunto de datos, esta función permite leer los metadatos del conjunto de datos y enumerar las tablas en el conjunto de datos. Cuando se aplica a un proyecto, esta función también permite ejecutar trabajos, incluidas las consultas, dentro del proyecto. Una principal con esta función puede enumerar y cancelar sus propios trabajos y enumerar conjuntos de datos dentro de un proyecto. Además, permite la creación de nuevos conjuntos de datos dentro del proyecto. Al creador se le otorga la función de propietario de datos de BigQuery ( Recursos de nivel más bajo en los que puedes otorgar esta función:
|
|
Lector enmascarado
Beta
Tiene acceso de lectura enmascarado a subrecursos con etiquetas de políticas asociadas con una política de datos (por ejemplo, columnas de BigQuery) |
|
Funciones personalizadas de BigQuery
A fin de crear una función de IAM personalizada para BigQuery, sigue los pasos descritos en la documentación de funciones personalizadas de IAM.
Funciones básicas de BigQuery
Para obtener información sobre las funciones básicas de BigQuery, consulta los permisos y las funciones básicos de BigQuery.
¿Qué sigue?
- Consulta los ejemplos de control de acceso de BigQuery.
- Para obtener más información sobre la asignación de funciones a nivel de conjunto de datos, consulta la página sobre el control de acceso a los conjuntos de datos.
- Para obtener más información sobre cómo asignar funciones a nivel de tabla o vista, consulta Controla el acceso a las tablas y vistas.