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

Notes

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

databricks secrets create-scope --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 --scope jdbc --key username
databricks secrets put --scope jdbc --key password

Utiliser les secrets d’un notebook

Dans un notebook, lisez les secrets stockés dans l’étendue de secrets jdbc pour configurer un connecteur JDBC :

val driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
val connectionProperties = new java.util.Properties()
connectionProperties.setProperty("Driver", driverClass)

val jdbcUsername = dbutils.secrets.get(scope = "jdbc", key = "username")
val jdbcPassword = dbutils.secrets.get(scope = "jdbc", key = "password")
connectionProperties.put("user", s"${jdbcUsername}")
connectionProperties.put("password", s"${jdbcPassword}")

Vous pouvez maintenant les utiliser ces ConnectionProperties avec le connecteur JDBC pour communiquer avec votre source de données. Les valeurs extraites de l’étendue ne sont jamais affichées dans le notebook (voir 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é correctement configurées, partagez-les avec le groupe datascience pour qu’il les utilisent pour leur analyse.

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

databricks secrets put-acl --scope jdbc --principal datascience --permission READ