シークレット ワークフローの例
このワークフローの例では、シークレットを使用して、Azure Data Lake Store に接続するための JDBC 資格情報を設定します。
シークレットのスコープの作成
jdbc
というシークレット スコープを作成します。
Databricks を利用するシークレット スコープを作成するには、次の手順を実行します。
databricks secrets create-scope jdbc
Azure Key Vault を利用するシークレット スコープを作成するには、「Azure Key Vault を利用するシークレット スコープを作成する」の手順に従います。
Note
アカウントに Premium プランがない場合は、すべてのユーザー ("ユーザー") に付与された MANAGE アクセス許可を使用してスコープを作成する必要があります。 次に例を示します。
databricks secrets create-scope jdbc --initial-manage-principal users
シークレットを作成する
シークレットを作成する方法は、ユーザーが Azure Key Vault を利用するスコープを使用しているか、または Databricks を利用するスコープを使用しているかによって異なります。
Azure Key Vault でサポートされるスコープにシークレットを作成する
シークレット username
と password
を Azure Set Secret REST API または Azure portal の UI を使用して追加します。
Databricks でサポートされるスコープにシークレットを作成する
シークレット username
と password
を追加します。 次のコマンドを実行し、開いているエディターにシークレット値を入力します。
databricks secrets put-secret jdbc username
databricks secrets put-secret jdbc password
ノートブックでシークレットを使用する
ノートブックで、シークレット スコープ jdbc
に保存されているシークレットを読み取り、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}")
これで、JDBC コネクタでこれらの ConnectionProperties
を使用してデータ ソースに伝達できるようになりました。
スコープからフェッチされた値は、ノートブックに表示されません (「シークレットのマスキング」を参照)。
別のグループへのアクセスを許可する
注意
この手順では、アカウントに Premium プランが必要です。
資格情報が正しく構成されたことを確認したら、これらの資格情報を分析に使用する datascience
グループと共有します。共有するには、シークレット スコープを読み取って使用可能なシークレットを一覧表示するためのアクセス許可をグループに付与します。
次の要求を行って、これらの資格情報に対する READ アクセス許可を datascience
グループに付与します。
databricks secrets put-acl jdbc datascience READ
シークレット アクセス制御の詳細については、シークレット ACL に関する記事を参照してください。