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 :
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.