Si habilitas el modo de venta de credenciales para un catálogo de REST de Apache Iceberg existente, se configura Lakehouse sin bordes para vender tokens de almacenamiento de alcance reducido y de corta duración a motores o cargas de trabajo de consulta autorizados.
Dentro del catálogo de entorno de ejecución de Lakehouse, este método de autenticación elimina la necesidad de que tú o los entornos de ejecución de consultas tengan permisos directos de lectura y escritura en el bucket de Cloud Storage subyacente.
Antes de comenzar
- Lee Acerca del catálogo de entorno de ejecución de Lakehouse para comprender cómo funciona el catálogo de entorno de ejecución de Lakehouse y las limitaciones del servicio.
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake API.
Roles required to enable APIs
To enable APIs, you need the serviceusage.services.enable permission. If you
created the project, then you likely already have this permission through the
Owner role (roles/owner). Otherwise, you can get this permission through the
Service Usage Admin role (roles/serviceusage.serviceUsageAdmin).
Learn how to grant roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake API.
Roles required to enable APIs
To enable APIs, you need the serviceusage.services.enable permission. If you
created the project, then you likely already have this permission through the
Owner role (roles/owner). Otherwise, you can get this permission through the
Service Usage Admin role (roles/serviceusage.serviceUsageAdmin).
Learn how to grant roles.
Roles obligatorios
Para obtener los permisos que necesitas para habilitar la venta de credenciales, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Todos:
- Administrador de BigLake (
roles/biglake.admin) en tu proyecto - Administrador de almacenamiento (
roles/storage.admin) en tu proyecto
- Administrador de BigLake (
-
Cuenta de servicio del catálogo de REST de Apache Iceberg aprovisionada automáticamente:
Usuario de objetos de almacenamiento (
roles/storage.objectUser) en todos los buckets de Cloud Storage asociados. Después de habilitar la venta de credenciales, otorga de forma explícita el rol de Usuario de objetos de almacenamiento (roles/storage.objectUser) en todos los buckets de almacenamiento asociados a la cuenta de servicio del catálogo de REST de Apache Iceberg aprovisionada automáticamente de tu catálogo.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Habilita la venta de credenciales
Si el método de autenticación de tu catálogo de REST de Apache Iceberg está configurado en credenciales de usuario final, puedes cambiarlo al modo de venta de credenciales.
Console
- En el Google Cloud console, abre la página Lakehouse.
En la fila del catálogo que estás actualizando, selecciona Más acciones del catálogo > Editar autenticación.
En el diálogo de autenticación, selecciona Modo de venta de credenciales. La cuenta de servicio del catálogo de REST de Apache Iceberg aprovisionada automáticamente requiere el rol explícito de Usuario de objetos de almacenamiento (
roles/storage.objectUser) en todos los buckets de Cloud Storage asociados. De forma predeterminada, no tiene acceso. Sin este rol, las credenciales vendidas no tienen un alcance suficiente para realizar escrituras de almacenamiento.Selecciona Guardar.
Your catalog is updated and the **Catalog details** page opens.En Método de autenticación, selecciona Establecer permisos del bucket.
En el diálogo, selecciona Confirmar.
Esto verifica que la cuenta de servicio de tu catálogo tenga el rol de Usuario de objetos de almacenamiento (roles/storage.objectUser) en todos los buckets de almacenamiento asociados.
gcloud
Usa el comando gcloud biglake iceberg catalogs update.
gcloud biglake iceberg catalogs update \ CATALOG_NAME \ --project PROJECT_ID \ --credential-mode vended-credentials
Reemplaza lo siguiente:
CATALOG_NAME: Un nombre para tu catálogo. Para los catálogos de Lakehouse, este es el nombre de tu catálogo personalizado. Para los catálogos de buckets de Cloud Storage, esto coincide con el ID de bucket de Cloud Storage que se usa con el catálogo de REST. Este nombre también se usa como el identificador del catálogo cuando se consultan estas tablas desde BigQuery.PROJECT_ID: Es el ID de tu Google Cloud proyecto.Después de habilitar la venta de credenciales, otorga de forma explícita el rol de Usuario de objetos de almacenamiento (
roles/storage.objectUser) en todos los buckets de almacenamiento asociados a la cuenta de servicio del catálogo de REST de Apache Iceberg aprovisionada automáticamente de tu catálogo.
REST
Para habilitar el modo de venta de credenciales con la API de REST, realiza una solicitud PATCH
al extremo UpdateIcebergCatalog:
PATCH /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs/CATALOG_ID?updateMask=icebergCatalog.credential_mode
El cuerpo de la solicitud debe contener una carga útil JSON IcebergCatalog con credential_mode configurado como VENDED_CREDENTIALS.
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del Google Cloud proyecto de.CATALOG_ID: Es el ID de tu catálogo de entorno de ejecución de Lakehouse.