La distribution d'identifiants pour le catalogue 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 l'CLI gcloud 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 de traitement des requêtes est légèrement modifiée pour appliquer les stratégies avant la lecture des données :
- Requête : un utilisateur envoie une requête SQL à un moteur compatible (par exemple, Apache Spark ou BigQuery).
- Recherche de métadonnées : le moteur envoie une requête au catalogue 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.
- Lecture : le moteur utilise ce jeton pour lire les fichiers autorisés spécifiques directement à partir de Cloud Storage.
- Calcul : le moteur traite les données et 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 des identifiants de l'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'exécution Lakehouse provisionné automatiquement : le rôle Utilisateur d'objets Storage
doit lui être explicitement accordé
(
roles/storage.objectUser) sur le bucket Cloud Storage cible. Par défaut, ce compte de service est créé avec un accès en lecture seule. Sans accès administrateur aux objets, les identifiants distribués ne peuvent pas effectuer d'écritures de stockage. (Remarque : Si vous configurez cette option via l'interface utilisateur de la console, cliquez sur Définir les autorisations du bucket pour vérifier ce rôle. Pour les configurationsgcloud, Terraform ou API, ce rôle doit être accordé 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) au niveau du projet afin d'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.