Vistas autorizadas
En este documento se describe cómo crear vistas autorizadas y vistas materializadas autorizadas en BigQuery.
Información general
Como administrador de datos, puede crear una vista autorizada para compartir un subconjunto de datos de un conjunto de datos con usuarios y grupos (principales) específicos. Las entidades de seguridad pueden ver los datos que compartes y ejecutar consultas en ellos, pero no pueden acceder directamente al conjunto de datos de origen.
Tipos de vista
Una vista lógica es el tipo de vista predeterminado de BigQuery, mientras que una vista materializada es una vista precalculada que almacena en caché periódicamente los resultados de una consulta para mejorar el rendimiento y la eficiencia.
Una vista autorizada de una vista lógica se denomina "vista autorizada", pero una vista autorizada de una vista materializada se denomina vista materializada autorizada.
Si una vista lógica depende de una consulta grande o computacionalmente costosa, puedes crear una vista materializada en su lugar. Sin embargo, consultar solo un subconjunto de los datos o usar otras técnicas puede mejorar el rendimiento sin necesidad de crear una vista materializada.
Para obtener más información, consulta los siguientes recursos:
Pasos generales para crear vistas autorizadas
Para crear y compartir una vista, sigue estos pasos generales, que son los mismos para las vistas lógicas autorizadas y las vistas materializadas autorizadas.
.- Crea un conjunto de datos que contenga los datos de origen.
- Ejecuta una consulta para cargar datos en una tabla de destino del conjunto de datos de origen.
- Crea un conjunto de datos que contenga tu vista autorizada.
- Crea una vista autorizada a partir de una consulta de SQL que restrinja las columnas que pueden ver tus analistas de datos en los resultados de la consulta.
- Concede permiso a tus analistas de datos para ejecutar trabajos de consulta.
- Concede a tus analistas de datos acceso al conjunto de datos que contiene la vista autorizada.
- Concede a la vista autorizada acceso al conjunto de datos de origen.
Alternativas
Aunque las vistas autorizadas son flexibles y escalables, es posible que uno de los siguientes métodos se adapte mejor a tu caso práctico:
- Definir políticas a nivel de fila en una tabla.
- Definir políticas a nivel de columna en una tabla.
- Almacenar los datos en una tabla independiente.
- Compartir todas las vistas de un conjunto de datos (conjuntos de datos autorizados).
Usar la seguridad a nivel de fila o de columna, o bien usar tablas independientes
Si se definen políticas de acceso a nivel de fila en una tabla o se crea una tabla independiente para almacenar datos sensibles, un administrador de datos puede restringir la capacidad de un usuario para ver esos datos. Almacenar datos en una tabla independiente aísla los datos y elimina la posibilidad de ver cuántas filas hay en la tabla.
Además, al crear y aplicar etiquetas de políticas, un administrador de datos puede restringir la capacidad del usuario para ver columnas de una tabla.
Almacenar los datos en una tabla independiente es el método más seguro, pero el menos flexible. Definir políticas a nivel de fila es flexible y seguro, mientras que compartir vistas autorizadas es flexible y ofrece el mejor rendimiento.
Para comparar estos métodos en detalle, consulta los siguientes recursos:
- Comparación de vistas autorizadas, seguridad a nivel de fila y tablas independientes
- Introducción a la seguridad a nivel de fila
- Ejemplos de casos prácticos de seguridad a nivel de fila
- Introducción al control de acceso a nivel de columna
Compartir todas las vistas de un conjunto de datos
Si quiere dar acceso a un conjunto de vistas a un conjunto de datos sin tener que autorizar cada vista individualmente, puede agrupar las vistas en un conjunto de datos y, a continuación, dar acceso al conjunto de datos que contiene las vistas al conjunto de datos que contiene los datos.
Después, puede dar acceso a las principales al conjunto de datos que contiene el grupo de vistas o a vistas concretas del conjunto de datos, según sea necesario. Un conjunto de datos que tiene acceso a otro conjunto de datos se denomina conjunto de datos autorizado. El conjunto de datos que autoriza a otro conjunto de datos para acceder a sus datos se denomina conjunto de datos compartido.
Para obtener más información, consulta Conjuntos de datos autorizados y Autorizar un conjunto de datos.
Limitaciones
- Cuando creas una vista autorizada o una vista materializada autorizada en otro conjunto de datos, el conjunto de datos de origen y el conjunto de datos de la vista autorizada deben estar en la misma ubicación regional.
- Cuando eliminas una vista autorizada, puede tardar hasta 24 horas en quitarse de la lista de vistas. Durante este tiempo, no podrás acceder a la vista autorizada, pero la vista autorizada eliminada puede aparecer en la lista de vistas y se tendrá en cuenta para el límite de vistas autorizadas. Este límite puede impedir la creación de vistas autorizadas adicionales si la nueva vista autorizada supera ese límite.
Antes de empezar
Concede roles de gestión de identidades y accesos (IAM) que den a los usuarios los permisos necesarios para consultar las vistas autorizadas o las vistas materializadas autorizadas que compartas.
Roles obligatorios
Para crear o actualizar una vista autorizada, necesitas permisos para el conjunto de datos que contiene la vista y para el conjunto de datos que proporciona acceso a la vista.
También debes conceder acceso a usuarios o grupos al proyecto y al conjunto de datos que contengan la vista.
Permisos de administrador en el conjunto de datos que contiene la vista
Las vistas se tratan como recursos de tabla en BigQuery, por lo que para crear una vista se necesitan los mismos permisos que para crear una tabla. También debe tener permisos para consultar cualquier tabla a la que haga referencia la consulta de SQL de la vista.
Para crear una vista, necesita el permiso bigquery.tables.create
IAM. El rol de gestión de identidades y accesos predefinido roles/bigquery.dataEditor
incluye los permisos que necesitas para crear una vista.
Además, si tienes el permiso bigquery.datasets.create
, puedes crear vistas en los conjuntos de datos que crees. Para crear una vista de datos que no sean de tu propiedad, debes tener permiso de bigquery.tables.getData
en esa tabla.
Para obtener más información sobre los roles y permisos de gestión de identidades y accesos en BigQuery, consulta el artículo sobre roles y permisos predefinidos.
Permisos de administrador en el segundo conjunto de datos que da acceso a la vista
Para actualizar las propiedades de un conjunto de datos, necesitas los siguientes permisos de gestión de identidades y accesos:
bigquery.datasets.update
bigquery.datasets.setIamPolicy
(solo es necesario al actualizar los controles de acceso al conjunto de datos en la consola) Google Cloud
El rol de gestión de identidades y accesos predefinido roles/bigquery.dataOwner
incluye los permisos que necesita para actualizar las propiedades del conjunto de datos.
Además, si tiene el permiso bigquery.datasets.create
, puede actualizar las propiedades de los conjuntos de datos que cree.
Para obtener más información sobre los roles y permisos de IAM en BigQuery, consulta el artículo sobre funciones y permisos predefinidos.
Permisos de usuario en el proyecto y el conjunto de datos de la vista
Para compartir una vista autorizada con usuarios o grupos, debes concederles los siguientes permisos de gestión de identidades y accesos (IAM):
- El rol de gestión de identidades y accesos
roles/bigquery.user
del proyecto que contiene la vista autorizada. - El rol de gestión de identidades y accesos
roles/bigquery.dataViewer
del conjunto de datos que contiene la vista autorizada.
Trabajar con vistas autorizadas
En las siguientes secciones se describe cómo trabajar con vistas autorizadas y vistas materializadas autorizadas.
Crear una vista autorizada
Para crear una vista autorizada, elija una de las siguientes opciones. Para ver los pasos completos para autorizar, compartir y eliminar una vista autorizada, consulta el tutorial Crear una vista autorizada.
Consola
Ve a la página BigQuery.
En el editor de consultas, escribe la consulta en la que quieras basar la vista autorizada.
Haz clic en Guardar > Guardar vista.
En el cuadro de diálogo Guardar vista, haz lo siguiente:
En Proyecto, escribe el proyecto en el que quieras guardar la vista.
En Conjunto de datos, escriba el conjunto de datos en el que quiera guardar la vista. Debe ser un conjunto de datos diferente al que se usa en la consulta de origen.
En Tabla, escribe el nombre de la vista.
Haz clic en Guardar.
Concede los permisos necesarios a los usuarios que puedan usar la vista autorizada.
En el panel Explorador, selecciona el conjunto de datos que se ha usado en la consulta de origen.
En el panel Detalles, haz clic en Compartir > Autorizar vistas.
En el panel Vistas autorizadas, en Vista autorizada, escriba el nombre completo de la vista con el formato PROJECT_ID.DATASET_ID.VIEW_NAME.
Haz clic en Añadir autorización.
Terraform
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configurar la autenticación para bibliotecas de cliente.
Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud
Preparar Cloud Shell
- Abre Cloud Shell.
-
Define el Google Cloud proyecto Google Cloud predeterminado en el que quieras aplicar tus configuraciones de Terraform.
Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.
Preparar el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión
.tf
. Por ejemplo,main.tf
. En este tutorial, nos referiremos al archivo comomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.
Copia el código de ejemplo en el archivo
main.tf
que acabas de crear.También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
terraform init
Si quieres usar la versión más reciente del proveedor de Google, incluye la opción
-upgrade
:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
terraform plan
Haga las correcciones necesarias en la configuración.
-
Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
Espera hasta que Terraform muestre el mensaje "Apply complete!".
- Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.
Gestionar usuarios o grupos de vistas autorizadas
Después de autorizar una vista, puedes mantener el acceso a ella completando las siguientes tareas en un conjunto de datos, una tabla o una vista:
- Consulta la política de acceso.
- Concede acceso.
- Revocar acceso.
- Denegar acceso.
Para obtener más información, consulta el artículo sobre cómo controlar el acceso a los recursos con la gestión de identidades y accesos.
Quitar la autorización de una vista
Para quitar la autorización de una vista, selecciona una de las siguientes opciones:
Consola
Ve a la página de BigQuery en la Google Cloud consola.
En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos.
Haz clic en > Autorizar vistas.
CompartirHaz clic en
para Quitar autorización.Haz clic en Cerrar.
bq
Para quitar la autorización de una vista, usa el comando bq rm
. Introduce el table_id
de la vista a la que quieras quitar la autorización.
bq rm \ project_id:dataset:table_id
API
Llama al método tables.delete
y usa las propiedades projectID
, datasetID
y tableID
para quitar la vista autorizada de tu conjunto de datos. Para obtener más información, consulta Tablas.
Cuotas y límites
- Las vistas autorizadas están sujetas a los límites de los conjuntos de datos. Para obtener más información, consulta Límites de conjuntos de datos.
- Si quitas una vista autorizada, pueden pasar hasta 24 horas hasta que se eliminen del sistema todas las referencias a la vista. Para evitar errores, espera 24 horas antes de volver a usar el nombre de una vista eliminada o crea un nombre único para la vista.
Temas avanzados
En las siguientes secciones se describen métodos avanzados para usar vistas autorizadas.
Combinar la seguridad a nivel de fila con vistas autorizadas
Los datos que se muestran en una vista lógica o en una vista materializada se filtran según las políticas de acceso a nivel de fila de la tabla de origen subyacente.
Para obtener información sobre cómo interactúa la seguridad a nivel de fila con las vistas materializadas, consulta el artículo Usar la seguridad a nivel de fila con otras funciones de BigQuery.
Combinar la seguridad a nivel de columna con vistas autorizadas
El impacto de la seguridad a nivel de columna en las vistas es independiente de si la vista es una vista autorizada o no.
Para obtener una descripción detallada de cómo se aplican los permisos, consulta Vistas de consulta para la seguridad a nivel de columna.
Usar el uso compartido de BigQuery con vistas autorizadas
La función de compartir de BigQuery (antes Analytics Hub) es una plataforma de intercambio de datos con las siguientes funciones:
- Te permite compartir datos y estadísticas a gran escala entre diferentes unidades de negocio.
- Usa un marco de seguridad y privacidad sólido.
- Permite publicar un conjunto de datos de BigQuery, denominado conjunto de datos compartido, y sus vistas y conjuntos de datos autorizados asociados en un conjunto de suscriptores.
Un conjunto de datos vinculado es un conjunto de datos de BigQuery de solo lectura que sirve como puntero o referencia a un conjunto de datos compartido. Al suscribirse a una lista de uso compartido, se crea un conjunto de datos vinculado en su proyecto, pero no una copia del conjunto de datos. Por lo tanto, los suscriptores pueden leer los datos, pero no pueden añadir ni actualizar objetos en él.
Las vistas materializadas que hacen referencia a tablas del conjunto de datos vinculado no se admiten.
Para obtener más información, consulta el artículo Introducción a la función de compartir.
Siguientes pasos
- Para ver un tutorial sobre cómo crear una vista autorizada, consulta el artículo Crear una vista autorizada.
- Para crear una vista lógica, consulta Crear vistas lógicas.
- Para crear una vista materializada que admita otros tipos de control de acceso, consulta Crear vistas materializadas.
- Para obtener los metadatos de una vista, consulta Obtener información sobre las vistas.
- Para gestionar las vistas, consulta Gestionar vistas.