Habilita la venta de credenciales

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

  1. 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.
  2. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.

    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

    • 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    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.

    Enable the API

    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

    • 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    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.

    Enable the API

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:
  • 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

  1. En la consola de Google Cloud , abre la página Lakehouse.

Ir a Lakehouse

  1. En la fila del catálogo que deseas actualizar, selecciona Más acciones del catálogo > Editar autenticación.

  2. 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.

  3. Selecciona Guardar.

      Your catalog is updated and the **Catalog details** page opens.
    
  4. En Método de autenticación, selecciona Establecer permisos de bucket.

  5. 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.