Activer la distribution d'identifiants

L'activation du mode de distribution d'identifiants pour un catalogue REST Apache Iceberg existant configure Lakehouse pour Apache Iceberg afin de distribuer des jetons de stockage à courte durée de vie et à portée limitée aux moteurs de requête ou aux charges de travail autorisés.

Dans le catalogue d'environnements d'exécution Lakehouse, cette méthode d'authentification vous évite, ainsi qu'aux environnements d'exécution de requête, d'avoir des autorisations de lecture et d'écriture directes sur le bucket Cloud Storage sous-jacent.

Avant de commencer

  1. Lisez À propos du catalogue d'environnements d'exécution Lakehouse pour comprendre comment il fonctionne et quelles sont les limites du service.
  2. Connectez-vous à votre Google Cloud compte. Si vous n'avez jamais utilisé Google Cloud, créez un compte pour évaluer les performances de nos produits dans des scénarios réels. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.

    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

Rôles requis

Pour obtenir les autorisations nécessaires pour activer la distribution d'identifiants, demandez à votre administrateur de vous accorder les rôles IAM suivants :

  • Tous :
  • Compte de service de catalogue REST Apache Iceberg provisionné automatiquement : Utilisateur des objets de l'espace de stockage (roles/storage.objectUser) sur tous les buckets Cloud Storage associés. Après avoir activé la distribution d'identifiants, accordez explicitement le rôle d'utilisateur des objets de l'espace de stockage (roles/storage.objectUser) sur tous les buckets de stockage associés au compte de service de catalogue REST Apache Iceberg provisionné automatiquement de votre catalogue.

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Activer la distribution d'identifiants

Si la méthode d'authentification de votre catalogue REST Apache Iceberg est définie sur les identifiants de l'utilisateur final, vous pouvez la passer en mode de distribution d'identifiants.

Console

  1. Dans la Google Cloud console, ouvrez la page Lakehouse.

Accéder à Lakehouse

  1. Sur la ligne du catalogue que vous mettez à jour, sélectionnez Autres actions sur le catalogue > Modifier l'authentification.

  2. Dans la boîte de dialogue d'authentification, sélectionnez Mode de distribution d'identifiants. Le compte de service de catalogue REST Apache Iceberg provisionné automatiquement nécessite le rôle explicite d'utilisateur des objets de l'espace de stockage (roles/storage.objectUser) sur tous les buckets Cloud Storage associés. Par défaut, il n'a aucun accès. Sans ce rôle, les identifiants distribués n'ont pas une portée suffisante pour effectuer des écritures de stockage.

  3. Sélectionnez Enregistrer.

      Your catalog is updated and the **Catalog details** page opens.
    
  4. Sous Méthode d'authentification, sélectionnez Définir les autorisations du bucket.

  5. Dans la boîte de dialogue, sélectionnez Confirmer.

Cela permet de vérifier que le compte de service de votre catalogue dispose du rôle d'utilisateur des objets de l'espace de stockage (roles/storage.objectUser) sur tous les buckets de stockage associés.

gcloud

Exécutez la commande gcloud biglake iceberg catalogs update.

gcloud biglake iceberg catalogs update \
    CATALOG_NAME \
    --project PROJECT_ID \
    --credential-mode vended-credentials

Remplacez les éléments suivants :

  • CATALOG_NAME : nom de votre catalogue. Pour les catalogues Lakehouse, il s'agit du nom de votre catalogue personnalisé. Pour les catalogues de buckets Cloud Storage, il correspond à l'ID de bucket Cloud Storage utilisé avec le catalogue REST. Ce nom est également utilisé comme identifiant de catalogue lors de l'interrogation de ces tables à partir de BigQuery.
  • PROJECT_ID : ID de votre Google Cloud projet.

    Après avoir activé la distribution d'identifiants, accordez explicitement le rôle d'utilisateur des objets de l'espace de stockage (roles/storage.objectUser) sur tous les buckets de stockage associés au compte de service de catalogue REST Apache Iceberg provisionné automatiquement de votre catalogue.

REST

Pour activer le mode de distribution d'identifiants à l'aide de l'API REST, envoyez une PATCH requête au UpdateIcebergCatalog point de terminaison :

PATCH /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs/CATALOG_ID?updateMask=icebergCatalog.credential_mode

Le corps de la requête doit contenir une charge utile JSON IcebergCatalog avec credential_mode défini sur VENDED_CREDENTIALS.

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre Google Cloud projet.
  • CATALOG_ID : ID de votre catalogue d'environnements d'exécution Lakehouse.