Descripción general de la venta de credenciales

La venta de credenciales para el catálogo de tiempo de ejecución de Lakehouse te permite delegar el acceso al almacenamiento y aplicar permisos detallados a tus archivos de datos. Como parte de Lakehouse para Apache Iceberg, esta capacidad te permite administrar políticas de Identity and Access Management (IAM) a nivel de la tabla para las tablas almacenadas en Cloud Storage.

Puedes usar la CLI de gcloud para obtener y establecer estas políticas y controlar el acceso a tus recursos.

Cómo funciona la venta de credenciales

Cuando usas la venta de credenciales, la secuencia de procesamiento de consultas cambia ligeramente para aplicar políticas antes de que se lean los datos:

  1. Solicitud: Un usuario envía una consulta en SQL a un motor compatible (por ejemplo, Apache Spark o BigQuery).
  2. Búsqueda de metadatos: El motor envía una solicitud al catálogo del entorno de ejecución de Lakehouse para resolver la tabla.
  3. Autenticación y política: El catálogo autentica al usuario y verifica sus permisos de IAM en los recursos de Lakehouse de Google Cloud.
  4. Respuesta: Como 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.
  5. Lectura: El motor usa este token para leer los archivos autorizados específicos directamente desde Cloud Storage.
  6. Procesamiento: El motor procesa los datos y muestra los resultados.

Motores compatibles

Para usar la venta de credenciales con motores de consultas, tu catálogo REST de Lakehouse Iceberg debe estar configurado para admitir la venta de credenciales.

  • Motores de código abierto: Los motores compatibles, como Apache 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 obligatorios de la cuenta de servicio

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 del entorno de ejecución de Lakehouse aprovisionada automáticamente: Se le debe otorgar explícitamente el rol de usuario de objetos de Storage (roles/storage.objectUser) en el bucket de Cloud Storage de destino. De forma predeterminada, esta cuenta de servicio se crea con acceso de solo lectura. Sin acceso de administrador de objetos, las credenciales vendidas no pueden realizar escrituras de almacenamiento. (Nota: Si realizas la configuración a través de la IU de la consola, haz clic en Establecer permisos del bucket para verificar este rol. En el caso de las configuraciones de gcloud, Terraform o la API, este rol se debe otorgar 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) a nivel del proyecto para obtener credenciales vendidas con alcance de escritura.

¿Qué sigue?