Se connecter à Google Cloud Storage
Cet article décrit un ancien modèle d'accès à Google Cloud Storage (GCS) depuis un workspace Databricks hébergé sur AWS qui contourne la gouvernance Unity Catalog. Utilisez-le uniquement si la gouvernance Unity Catalog n'est pas requise pour les données de ce bucket.
Pour lire ou écrire à partir d'un bucket GCS, vous devez créer un compte de service attaché et associer le bucket à ce compte de service. Vous vous connectez au compartiment directement avec une clé que vous générez pour le compte de service.
Accéder directement à un compartiment GCS avec une clé de compte de service Google Cloud
Pour lire et écrire directement dans un bucket, vous configurez une clé définie dans votre configuration Spark.
Étape 1 : Configurez un compte de service Google Cloud à l'aide de la Google Cloud Console
Vous devez créer un compte de service pour le cluster Databricks. Databricks recommande d'accorder à ce compte de service les privilèges minimaux nécessaires pour accomplir ses tâches.
-
Cliquez sur IAM et Admin dans le volet de navigation de gauche.
-
Cliquez sur Comptes de service .
-
Cliquez sur + CRÉER UN COMPTE DE SERVICE .
-
Saisissez le nom et la description du compte de service.

-
Cliquez sur « CREATE ».
-
Cliquez sur **CONTINUER**.
-
Cliquez sur OK .
Étape 2 : Créer une clé pour accéder directement au compartiment GCS
La clé JSON que vous générez pour le compte de service est une clé privée qui ne doit être partagée qu’avec des utilisateurs autorisés, car elle contrôle l’accès aux datasets et aux ressources de votre compte Google Cloud.
- Dans la console Google Cloud, dans la liste des comptes de service, cliquez sur le compte nouvellement créé.
- Dans la section Clés , cliquez sur AJOUTER UNE CLÉ > Créer une nouvelle clé .
- Acceptez le type de clé **JSON**.
- Cliquez sur Créer . Le fichier clé est download sur votre ordinateur.
Étape 3 : Configurez le compartiment GCS
Créez un compartiment
Si vous n'avez pas déjà de compartiment, créez-en un :
-
Cliquez sur Stockage dans le volet de navigation gauche.
-
Cliquez sur CRÉER UN BUCKET .

-
Cliquez sur « CREATE ».
Configurez le compartiment
-
Configurez les détails du compartiment.
-
Cliquez sur l'onglet tab .
-
À côté de l'étiquette **Autorisations**, cliquez sur **AJOUTER**.

-
Accordez la permission Administrateur du stockage au compte de service sur le bucket à partir des rôles Cloud Storage.

-
Cliquez sur Enregistrer .
Étape 4 : Placez la clé de compte de service dans les secrets Databricks
Databricks recommande d’utiliser des Secret Scopes pour stocker tous les identifiants. Vous pouvez placer la clé privée et l'ID de la clé privée de votre fichier JSON de clé dans les Secret Scope Databricks. Vous pouvez accorder aux utilisateurs, aux Service Principals et aux groupes de votre Workspace l'accès en lecture aux Secret Scopes. Cela protège la clé de compte de service tout en permettant aux utilisateurs d'accéder à GCS. Pour créer un Secret Scope, consultez Gérer les secrets.
Étape 5 : configurer un cluster Databricks
Dans la **Spark tab**, configurez soit une configuration globale, soit une configuration par compartiment. Les exemples suivants définissent les clés en utilisant les valeurs stockées en tant que secrets Databricks.
Utilisez le contrôle d'accès des clusters et le contrôle d'accès des Notebooks ensemble pour protéger l'accès au compte de service et aux données dans le bucket GCS. Consultez Autorisations de compute et Collaborer à l'aide de Notebooks Databricks.
Configuration globale
Utilisez cette configuration si les identifiants fournis doivent être utilisés pour accéder à tous les buckets.
spark.hadoop.google.cloud.auth.service.account.enable true
spark.hadoop.fs.gs.auth.service.account.email <client-email>
spark.hadoop.fs.gs.project.id <project-id>
spark.hadoop.fs.gs.auth.service.account.private.key {{secrets/scope/gsa_private_key}}
spark.hadoop.fs.gs.auth.service.account.private.key.id {{secrets/scope/gsa_private_key_id}}
Remplacez <client-email>, <project-id> par les valeurs de ces noms de champs exacts de votre fichier JSON clé.
Configuration par compartiment
Utilisez cette configuration si vous devez configurer des informations d'identification pour des compartiments spécifiques. La syntaxe de configuration par compartiment ajoute le nom du compartiment à la fin de chaque configuration, comme dans l'exemple suivant.
Les configurations par compartiment peuvent être utilisées en complément des configurations globales. Lorsqu'elles sont spécifiées, les configurations par compartiment remplacent les configurations globales.
spark.hadoop.google.cloud.auth.service.account.enable.<bucket-name> true
spark.hadoop.fs.gs.auth.service.account.email.<bucket-name> <client-email>
spark.hadoop.fs.gs.project.id.<bucket-name> <project-id>
spark.hadoop.fs.gs.auth.service.account.private.key.<bucket-name> {{secrets/scope/gsa_private_key}}
spark.hadoop.fs.gs.auth.service.account.private.key.id.<bucket-name> {{secrets/scope/gsa_private_key_id}}
Remplacez <client-email>, <project-id> par les valeurs de ces noms de champs exacts de votre fichier JSON clé.
Étape 6 : Lire depuis GCS
Pour lire à partir du bucket GCS, utilisez une commande de lecture Spark dans n'importe quel format pris en charge, par exemple :
df = spark.read.format("parquet").load("gs://<bucket-name>/<path>")
Pour écrire dans le compartiment GCS, utilisez une commande d'écriture Spark dans n'importe quel format pris en charge, par exemple :
df.write.mode("<mode>").save("gs://<bucket-name>/<path>")
Remplacez <bucket-name> par le nom du compartiment que vous avez créé à l'étape 3 : Configurer le compartiment GCS.