La distribution d'identifiants pour le catalogue d'environnements d'exécution Lakehouse vous permet de déléguer l'accès au stockage et d'appliquer des autorisations précises à vos fichiers de données. Dans le cadre de Lakehouse pour Apache Iceberg, cette fonctionnalité vous permet de gérer les stratégies Identity and Access Management (IAM) au niveau des tables stockées dans Cloud Storage.
Vous pouvez utiliser la gcloud CLI pour obtenir et définir ces stratégies afin de contrôler l'accès à
vos ressources.
Fonctionnement de la distribution d'identifiants
Lorsque vous utilisez la distribution d'identifiants, la séquence d'opérations est légèrement modifiée pour appliquer les stratégies avant d'accéder au stockage :
- Requête : un utilisateur envoie une instruction SQL, telle qu'une requête, une opération LMD ou LDD, à un moteur compatible. Par exemple, Apache Spark ou BigQuery.
- Recherche de métadonnées : le moteur envoie une requête au catalogue d'environnements d'exécution Lakehouse pour résoudre la table.
- Authentification et stratégie : le catalogue authentifie l'utilisateur et vérifie ses autorisations IAM sur les ressources Lakehouse de Google Cloud.
- Réponse : comme la distribution d'identifiants est activée, le catalogue renvoie les métadonnées et un jeton de stockage à courte durée de vie (identifiants de stockage limités) au moteur. Le jeton est limité aux chemins d'accès associés à la table et aux autorisations minimales requises (par exemple, accès en lecture seule pour les requêtes qui n'ont pas besoin d'écrire des fichiers).
- Accès : le moteur utilise ce jeton pour lire ou écrire les fichiers autorisés spécifiques directement depuis Cloud Storage.
- Calcul : le moteur traite les données ou exécute l'opération, puis renvoie les résultats.
Moteurs compatibles
Pour utiliser la distribution d'identifiants avec des moteurs de requête, votre catalogue Lakehouse Iceberg REST doit être configuré pour la prendre en charge.
- Moteurs Open Source : les moteurs compatibles tels qu'Apache Spark et Trino utilisent des jetons de stockage à courte durée de vie distribués par le catalogue. Votre application cliente doit spécifier la prise en charge de la distribution d'identifiants dans l'en-tête
X-Iceberg-Access-Delegation. - BigQuery : BigQuery utilise des identifiants distribués pour accéder à Cloud Storage au lieu d'identifiants d'utilisateur final.
Autorisations requises pour les comptes de service
Lorsque la distribution d'identifiants est activée, assurez-vous que les comptes de service suivants disposent des rôles nécessaires :
- Compte de service du catalogue d'environnements d'exécution Lakehouse provisionné automatiquement : vous devez
attribuer le rôle Utilisateur d'objets de stockage (
roles/storage.objectUser) à ce compte sur tous les buckets Cloud Storage associés. Sans cet accès, les identifiants distribués ne peuvent pas lire ni écrire dans le stockage. Si vous utilisez la Google Cloud console, cliquez sur Définir les autorisations du bucket pour vérifier ce rôle. Pour la gcloud CLI, Terraform ou l'API, vous devez attribuer ce rôle manuellement. - Comptes de service du moteur de requête : les comptes de service exécutant des tâches de moteur de requête (tels que Managed Service pour Apache Spark, Managed Service pour Apache Spark ou
Dataflow) nécessitent le rôle Éditeur BigLake (
roles/biglake.editor) pour obtenir des identifiants distribués avec un champ d'application en écriture.
Étape suivante
- Découvrez comment créer un catalogue en mode de distribution d'identifiants.
- Découvrez comment activer la distribution d'identifiants pour un catalogue existant à l'aide de la Google Cloud console.
- Découvrez comment configurer votre application cliente pour la distribution d'identifiants vending.