Vistas autorizadas
En este documento, se describe cómo crear vistas autorizadas y vistas materializadas autorizadas en BigQuery.
Descripción general
Como administrador de datos, puedes crear una vista autorizada para compartir un subconjunto de datos de un conjunto de datos con usuarios y grupos específicos (principales). Las entidades principales pueden ver los datos que compartes y ejecutar consultas sobre ellos, pero no pueden acceder directamente al conjunto de datos fuente.
Tipos de vistas
Una vista lógica es el tipo de vista predeterminado para BigQuery, y una vista materializada es una vista procesada previamente que almacena en caché de forma periódica los resultados de una consulta para aumentar el rendimiento y la eficiencia.
Una vista autorizada para una vista lógica se denomina vista autorizada, pero una vista autorizada para una vista materializada se denomina vista materializada autorizada.
Si una vista lógica depende de una consulta grande o costosa en cuanto al procesamiento, puedes crear una vista materializada en su lugar. Sin embargo, consultar solo un subconjunto de tus datos o usar otras técnicas a menudo 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, revisa 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 tus datos fuente.
- Ejecuta una consulta para cargar datos en una tabla de destino en el conjunto de datos de origen.
- Crea un conjunto de datos que contenga tu vista autorizada.
- Crea una vista autorizada a partir de una consulta en SQL que restrinja las columnas que tus analistas de datos pueden ver en los resultados de la consulta.
- Otorga a tus analistas de datos permiso para ejecutar trabajos de consulta.
- Otorga a tus analistas de datos acceso al conjunto de datos que contiene la vista autorizada.
- Otorga acceso de vista autorizado al conjunto de datos fuente.
Alternativas
Si bien las vistas autorizadas son flexibles y escalables, uno de los siguientes métodos podría ser más adecuado para tu caso de uso:
- Establece políticas a nivel de las filas en una tabla.
- Establece políticas a nivel de la columna en una tabla.
- Almacena los datos en una tabla separada.
- Compartir todas las vistas de un conjunto de datos (conjuntos de datos autorizados)
Usa la seguridad a nivel de la fila o la columna, o tablas separadas
Si establece políticas de acceso a nivel de la fila en una tabla o crea una tabla separada para almacenar datos sensibles, un administrador de datos puede restringir la capacidad de un usuario para ver esos datos. Almacenar los datos en una tabla separada aísla los datos y quita la capacidad de ver cuántas filas existen en la tabla.
Además, al crear y aplicar etiquetas de política, un administrador de datos puede restringir la capacidad del usuario para ver columnas en una tabla.
Almacenar los datos en una tabla separada es el método más seguro, pero el menos flexible. Establecer políticas a nivel de las filas es flexible y seguro, mientras que compartir vistas autorizadas es flexible y proporciona el mejor rendimiento.
Para comparar estos métodos en detalle, consulta los siguientes recursos:
- Comparación de las vistas autorizadas, la seguridad a nivel de las filas y las tablas separadas
- Introducción a la seguridad a nivel de la fila
- Ejemplos de casos de uso para la seguridad a nivel de las filas
- Introducción al control de acceso a nivel de columna
Comparte todas las vistas de un conjunto de datos
Si deseas otorgar acceso a una colección de vistas a un conjunto de datos sin tener que autorizar cada vista individual, puedes agrupar las vistas en un conjunto de datos y, luego, darle al conjunto de datos que contiene las vistas acceso al conjunto de datos que contiene los datos.
Luego, puedes otorgar a las principales acceso al conjunto de datos que contiene el grupo de vistas o a vistas individuales en el 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 a acceder a sus datos se denomina conjunto de datos compartido.
Para obtener más información, consulta Conjuntos de datos autorizados y Autoriza 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 de la vista autorizada deben estar en la misma ubicación regional.
- Cuando borras una vista autorizada, pueden pasar hasta 24 horas para que se quite la vista autorizada de la lista. Durante este tiempo, no puedes acceder a la vista autorizada, pero esta puede aparecer en la lista de vistas y se descuenta del límite de vistas autorizadas. Este límite puede evitar la creación de vistas autorizadas adicionales si la nueva vista autorizada superara ese límite.
Antes de comenzar
Otorga roles de Identity and Access Management (IAM) que les brindan a los usuarios los permisos necesarios para consultar las vistas autorizadas o las vistas materializadas autorizadas que compartes.
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 otorgar a los usuarios o grupos acceso al proyecto y al conjunto de datos que contienen 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 la creación de una vista requiere los mismos permisos que la creación de una tabla. También debes tener permisos para consultar las tablas a las que hace referencia la consulta en SQL de la vista.
Para crear una vista, necesitas el permiso bigquery.tables.create
de IAM. El rol predefinido de IAM roles/bigquery.dataEditor
incluye los permisos que necesitas para crear una configuración.
Además, si tienes el permiso bigquery.datasets.create
, puedes crear vistas en los conjuntos de datos que crees. Si deseas crear una vista para datos que no son de tu propiedad, debes tener el permiso bigquery.tables.getData
para esa tabla.
Para obtener más información sobre los roles y los permisos de IAM en BigQuery, consulta Roles y permisos predefinidos.
Permisos de administrador en el segundo conjunto de datos que otorga acceso a la vista
Para actualizar las propiedades del conjunto de datos, necesitas los siguientes permisos de IAM:
bigquery.datasets.update
bigquery.datasets.setIamPolicy
(solo se requiere cuando se actualizan los controles de acceso al conjunto de datos en la Trusted Cloud consola)
El rol predefinido de IAM roles/bigquery.dataOwner
incluye los permisos que necesitas para actualizar las propiedades de un conjunto de datos.
Además, si tienes el permiso bigquery.datasets.create
, puedes actualizar las etiquetas de los conjuntos de datos que crees.
Para obtener más información sobre los roles y los permisos de IAM en BigQuery, consulta Funciones y permisos predefinidos.
Permisos del usuario en el proyecto y el conjunto de datos de la vista
Para compartir una vista autorizada con usuarios o grupos, debes otorgarles los siguientes permisos de IAM:
- El rol de IAM
roles/bigquery.user
para el proyecto que contiene la vista autorizada - El rol de IAM
roles/bigquery.dataViewer
para el conjunto de datos que contiene la vista autorizada
Trabaja 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, elige una de las siguientes opciones. Si deseas conocer todos los pasos para autorizar, compartir y borrar una vista autorizada, consulta el instructivo Crea una vista autorizada.
Console
Ve a la página de BigQuery.
En el editor de consultas, escribe la consulta en la que deseas 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 se guardará la vista.
En Conjunto de datos, escribe el conjunto de datos en el que deseas guardar la vista. Debe ser un conjunto de datos diferente del que se usa en la consulta de origen.
En Tabla, escribe el nombre de la vista.
Haz clic en Guardar.
Otorga los permisos necesarios a los usuarios que pueden usar la vista autorizada.
En el panel Explorador, selecciona el conjunto de datos que se usó en la consulta de origen.
En el panel Detalles, haz clic en Compartir > Autorizar vistas.
En el panel Vistas autorizadas, en Vista autorizada, escribe el nombre completamente calificado de la vista, en el formato PROJECT_ID.DATASET_ID.VIEW_NAME.
Haz clic en Agregar autorización.
Terraform
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
.Para aplicar tu configuración de Terraform en un proyecto Trusted Cloud , completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto Trusted Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.
Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.
Prepara 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 dentro de ese directorio. El nombre del archivo debe tener la extensión
.tf
, por ejemplo,main.tf
. En este instructivo, el archivo se denominamain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.
Copia el código de muestra en el
main.tf
recién creado.De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.
- Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo debes hacerlo una vez por directorio.
terraform init
De manera opcional, incluye la opción
-upgrade
para usar la última versión del proveedor de Google:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
terraform plan
Corrige la configuración según sea necesario.
-
Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe
yes
cuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu proyecto Trusted Cloud para ver los resultados. En la consola de Trusted Cloud , navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.
Administra usuarios o grupos para las vistas autorizadas
Después de autorizar una vista, puedes mantener el acceso a ella completando las siguientes tareas para un conjunto de datos, una tabla o una vista:
- Visualiza la política de acceso.
- Otorga acceso.
- Revocar el acceso
- Deniega el acceso.
Para obtener más información, consulta Controla el acceso a los recursos con IAM.
Quita la autorización a una vista
Para quitar la autorización de una vista, selecciona una de las siguientes opciones:
Console
Ve a la página de BigQuery en la consola de Trusted Cloud .
En el panel Explorador, expande tu proyecto y elige un conjunto de datos.
Haz clic en > Autorizar vistas.
CompartirHaz clic en
para quitar la autorización.Haz clic en Cerrar.
bq
Para quitar la autorización de una vista, usa el comando bq rm
. Ingresa el table_id
de la vista a la que quieres 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 para que se quiten del sistema todas las referencias a la vista. Para evitar errores, espera 24 horas antes de reutilizar el nombre de una vista que se quitó o crea un nombre único para tu vista.
Temas avanzados
En las siguientes secciones, se describen métodos avanzados para usar las vistas autorizadas.
Combina la seguridad a nivel de las filas con las 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 las filas de la tabla de origen subyacente.
Para obtener detalles sobre cómo interactúa la seguridad a nivel de las filas con las vistas materializadas, consulta Usa la seguridad a nivel de las filas con otras funciones de BigQuery.
Combina la seguridad a nivel de la columna con las vistas autorizadas
El impacto de la seguridad a nivel de columna en las vistas es independiente de si la vista es 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 columnas.
Usa el uso compartido de BigQuery con vistas autorizadas
BigQuery sharing (anteriormente Analytics Hub) es una plataforma de intercambio de datos con las siguientes capacidades:
- Te permite compartir datos y estadísticas a gran escala más allá de los límites de la organización.
- Usa un marco de trabajo sólido de seguridad y privacidad.
- Admite la publicación de un conjunto de datos de BigQuery, llamado conjunto de datos compartido, y sus vistas autorizadas y conjuntos de datos autorizados asociados para un conjunto de suscriptores.
Un conjunto de datos vinculado es un conjunto de datos de BigQuery de solo lectura que funciona como un puntero o una referencia a un conjunto de datos compartido. Cuando te suscribes a una ficha de uso compartido, se crea un conjunto de datos vinculado en tu proyecto, pero no una copia del conjunto de datos, de modo que los suscriptores pueden leer los datos, pero no pueden agregar ni actualizar objetos dentro de él.
No se admiten las vistas materializadas que hagan referencia a tablas en el conjunto de datos vinculado.
Para obtener más información, consulta Introducción al uso compartido.
¿Qué sigue?
- Si deseas obtener un instructivo sobre cómo crear una vista autorizada, consulta Crea una vista autorizada.
- Para crear una vista lógica, consulta Crea vistas lógicas.
- Para crear una vista materializada que admita otros tipos de control de acceso, consulta Crea vistas materializadas.
- Para obtener metadatos de vistas, consulta Obtén información sobre las vistas.
- Para administrar vistas, consulta Administra vistas.