Partager via


Exemple de workflow de secrets

Dans cet exemple de workflow, nous utilisons des secrets pour configurer les informations d’identification JDBC pour la connexion à un service Azure Data Lake Store.

Créer une étendue de secrets

Créez une étendue de secrets appelée jdbc.

Pour créer une étendue de secrets reposant sur Databricks :

databricks secrets create-scope jdbc

Pour créer une étendue de secrets reposant sur Azure Key Vault, suivez les instructions fournis dans Créer une étendue de secrets reposant sur Azure Key Vault.

Remarque

Si votre compte ne dispose pas du plan Premium, vous devez créer l’étendue avec l’autorisation GÉRER accordée à tous les utilisateurs (« utilisateurs »). Par exemple :

databricks secrets create-scope jdbc --initial-manage-principal users

Créer des secrets

La méthode de création des secrets varie selon que vous utilisez une étendue reposant sur Azure Key Vault ou une étendue reposant sur Databricks.

Créer les secrets dans une étendue Azure Key Vault

Ajoutez les secrets username et password à l’aide de l’API REST Définir le secret Azure ou l’interface utilisateur du portail Azure :

Ajouter des secrets à Azure Key Vault

Créer les secrets dans une étendue Databricks

Ajoutez les secrets username et password. Exécutez les commandes suivantes et entrez les valeurs de secret dans l’éditeur ouvert.

databricks secrets put-secret jdbc username
databricks secrets put-secret jdbc password

Utiliser les secrets d’un notebook

Utilisez l’utilitaire dbutils.secrets pour accéder aux secrets dans les notebooks.

L’exemple suivant lit les secrets stockés dans l’étendue jdbc du secret pour configurer une opération de lecture JDBC :

Python

username = dbutils.secrets.get(scope = "jdbc", key = "username")
password = dbutils.secrets.get(scope = "jdbc", key = "password")

df = (spark.read
  .format("jdbc")
  .option("url", "<jdbc-url>")
  .option("dbtable", "<table-name>")
  .option("user", username)
  .option("password", password)
  .load()
)

Scala

val username = dbutils.secrets.get(scope = "jdbc", key = "username")
val password = dbutils.secrets.get(scope = "jdbc", key = "password")

val df = spark.read
  .format("jdbc")
  .option("url", "<jdbc-url>")
  .option("dbtable", "<table-name>")
  .option("user", username)
  .option("password", password)
  .load()

Les valeurs extraites de l’étendue sont supprimées de la sortie du notebook. Voir la rédaction des secrets.

Accorder l’accès à un autre groupe

Notes

Pour cette étape, votre compte doit disposer du plan Premium.

Après avoir vérifié que les informations d’identification ont été configurées correctement, partagez ces informations d’identification avec le groupe datascience à des fins d’analyse en leur accordant les autorisations nécessaires pour lire l’étendue du secret et répertorier les secrets disponibles.

Accordez au groupe datascience une autorisation LECTURE sur ces informations d’identification en effectuant la requête suivante :

databricks secrets put-acl jdbc datascience READ

Pour plus d’informations sur le contrôle d’accès aux secrets, consultez Contrôle d’accès aux secrets.