Habilitar el modo de venta de credenciales para un catálogo de REST de Apache Iceberg existente configura Lakehouse para Apache Iceberg para vender tokens de almacenamiento de alcance reducido y de corta duración a motores de consultas o cargas de trabajo autorizados.
Dentro del catálogo del entorno de ejecución de Lakehouse, este método de autenticación elimina la necesidad de que tú o los tiempos de ejecución de las consultas tengan permisos directos de lectura y escritura en el bucket subyacente de Cloud Storage.
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 Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. 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 Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. 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 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 REST de Apache Iceberg aprovisionado 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 a través de roles personalizados o cualquier otro rol predefinido.
Habilita la venta de credenciales
Si el método de autenticación de tu catálogo REST de Apache Iceberg está configurado como credenciales de usuario final, puedes cambiarlo al modo de venta de credenciales.
Console
- En la consola de Google Cloud , abre la página Lakehouse.
En la fila del catálogo que deseas actualizar, 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 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 de venta no tienen el 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 de 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 Storage (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. En el caso de los catálogos de Lakehouse, este es el nombre del catálogo personalizado. En el caso de los catálogos de buckets de Cloud Storage, 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 identificador del catálogo cuando se consultan estas tablas desde BigQuery.PROJECT_ID: ID del proyecto de Google Cloud.Después de habilitar la venta de credenciales, otorga explícitamente el rol de Usuario de objetos de Storage (
roles/storage.objectUser) en todos los buckets de almacenamiento asociados a la cuenta de servicio del catálogo REST de Apache Iceberg aprovisionado 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 de IcebergCatalog con credential_mode establecido en VENDED_CREDENTIALS.
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto de Google Cloud .CATALOG_ID: Es el ID de tu catálogo del entorno de ejecución de Lakehouse.