La venta de credenciales para el catálogo de tiempo de ejecución de Lakehouse te permite delegar el acceso de Cloud Storage a los motores de consulta y aplicar políticas detalladas de Identity and Access Management (IAM) a nivel de catálogo, espacio de nombres y tabla con la consola de Google Cloud o Google Cloud CLI. La venta de credenciales también es necesaria para habilitar la administración automática de tablas para tareas de mantenimiento en segundo plano, como la compactación, el vencimiento de instantáneas y la recolección de elementos no utilizados.
Cómo funciona la venta de credenciales
Cuando usas la venta de credenciales, la secuencia de operaciones cambia un poco para aplicar las políticas antes de que se acceda al almacenamiento. En el siguiente diagrama, se ilustra cómo los motores de consulta obtienen tokens de almacenamiento con permisos reducidos del catálogo para leer y escribir datos de forma segura directamente en Cloud Storage:
La secuencia de operaciones que se muestra en el diagrama anterior es la siguiente:
- Solicitud: Un usuario envía una instrucción de SQL, como una consulta, una operación de DML o DDL, a un motor compatible, como Apache Spark o BigQuery.
- Búsqueda de metadatos: El motor envía una solicitud al catálogo de tiempo de ejecución de Lakehouse para resolver la tabla.
- Autenticación y política: El catálogo autentica al usuario y verifica sus permisos de IAM en los recursos de Lakehouse.
- Respuesta: Debido a que la venta de credenciales está habilitada, el catálogo devuelve los metadatos y un token de almacenamiento de corta duración (credenciales de almacenamiento con alcance reducido) al motor. El token se limita a las rutas de acceso asociadas con la tabla y se reduce a los permisos mínimos requeridos (por ejemplo, acceso de solo lectura para consultas que no necesitan escribir archivos).
- Acceso: El motor usa este token para leer o escribir los archivos autorizados específicos directamente desde Cloud Storage.
- Procesamiento: El motor procesa los datos o ejecuta la operación y devuelve los resultados.
Cuando se habilita la administración automática de tablas (gcp.biglake.table-management.enabled), las tareas de mantenimiento en segundo plano, como la compactación, el vencimiento de las instantáneas y la recolección de elementos no utilizados, usan la cuenta de servicio aprovisionada automáticamente del catálogo para autenticarse directamente en Cloud Storage y actualizar los archivos de datos subyacentes.
Motores compatibles
Para usar la venta de credenciales con motores de consulta, debes configurar el extremo del catálogo de REST de Apache Iceberg en tu catálogo de tiempo de ejecución de Lakehouse para que admita la venta de credenciales. La venta de credenciales no se admite para los extremos del catálogo de Apache Hive.
- Motores de código abierto: Los motores compatibles, como Spark
y Trino, usan tokens de almacenamiento de corta duración que vende el catálogo. Tu aplicación cliente
debe especificar la compatibilidad con la venta de credenciales en el
encabezado
X-Iceberg-Access-Delegation. - BigQuery: BigQuery usa credenciales vendidas para el acceso a Cloud Storage en lugar de credenciales de usuario final.
Permisos de la cuenta de servicio requeridos
Cuando la venta de credenciales esté habilitada, asegúrate de que las siguientes cuentas de servicio tengan los roles necesarios:
- Cuenta de servicio del catálogo de tiempo de ejecución de Lakehouse aprovisionada automáticamente: Debes otorgar el rol de Usuario de objetos de almacenamiento (
roles/storage.objectUser) a esta cuenta en todos los buckets de Cloud Storage asociados. Sin este acceso, las credenciales vendidas no pueden leer ni escribir en el almacenamiento. Si usas la consola de Google Cloud , haz clic en Establecer permisos del bucket para verificar este rol. Para la gcloud CLI, Terraform o la API, debes otorgar este rol de forma manual. - Cuentas de servicio del motor de consultas: Las cuentas de servicio que ejecutan trabajos del motor de consultas (como Managed Service para Apache Spark, Managed Service para Apache Spark o
Dataflow) requieren el rol de editor de BigLake (
roles/biglake.editor) para obtener credenciales vendidas con permiso de escritura.
¿Qué sigue?
- Obtén información para crear un catálogo en el modo de venta de credenciales.
- Obtén información para habilitar la venta de credenciales para un catálogo existente con la consola deGoogle Cloud .
- Obtén información para configurar tu aplicación cliente para la venta de credenciales.