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 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 CLI gcloud pour obtenir et définir ces règles 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 change légèrement pour appliquer les règles 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 du runtime Lakehouse pour résoudre la table.
- Authentification et règles : 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 de courte durée (identifiants de stockage à accès limité) au moteur.
- Lecture : le moteur utilise ce jeton pour lire les fichiers autorisés spécifiques directement depuis 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 prendre en charge la distribution d'identifiants.
- Moteurs Open Source : les moteurs compatibles tels qu'Apache Spark et Trino utilisent des jetons de stockage à courte durée de vie fournis par le catalogue. Votre application cliente doit spécifier la compatibilité avec la distribution d'identifiants dans l'en-tête
X-Iceberg-Access-Delegation. - BigQuery : BigQuery utilise des identifiants fournis pour accéder à Cloud Storage au lieu d'identifiants d'utilisateur final.
Autorisations requises pour le compte 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 : vous devez accorder le rôle Utilisateur d'objets Storage (
roles/storage.objectUser) à ce compte sur tous les buckets Cloud Storage associés. Ce compte n'a aucun accès. Sans cet accès, les identifiants fournis ne peuvent pas lire ni écrire dans l'espace de stockage. Si vous utilisez la console Google Cloud , cliquez sur Définir les autorisations du bucket pour vérifier ce rôle. Pour 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 (telles 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 vendus avec un champ d'application d'écriture.
Étapes suivantes
- 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 consoleGoogle Cloud .
- Découvrez comment configurer votre application cliente pour la distribution d'identifiants.