シークレット ワークフローの例

このワークフローの例では、シークレットを使用して、Azure Data Lake Store に接続するための JDBC 資格情報を設定します。

シークレットのスコープの作成

jdbc というシークレット スコープを作成します。

Databricks を利用するシークレット スコープを作成するには、次の手順を実行します。

databricks secrets create-scope jdbc

Azure Key Vault を利用するシークレット スコープを作成するには、「Azure Key Vault を利用するシークレット スコープを作成する」の手順に従います。

注意

アカウントに Premium プランがない場合は、すべてのユーザー ("ユーザー") に付与された MANAGE 権限を使用してスコープを作成する必要があります。 次に例を示します。

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

シークレットを作成する

シークレットを作成する方法は、ユーザーが Azure Key Vault を利用するスコープを使用しているか、または Databricks を利用するスコープを使用しているかによって異なります。

Azure Key Vault でサポートされるスコープにシークレットを作成する

シークレット usernamepassword を Azure Set Secret REST API または Azure portal の UI を使用して追加します。

Add secrets to Azure Key Vault

Databricks でサポートされるスコープにシークレットを作成する

シークレット usernamepassword を追加します。 次のコマンドを実行し、開いているエディターにシークレット値を入力します。

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 グループと共有します。共有するには、シークレット スコープを読み取って使用可能なシークレットを一覧表示するためのアクセス許可をグループに付与します。

次の要求を行って、これらの資格情報に対する読み取りアクセス許可を datascience グループに付与します。

databricks secrets put-acl jdbc datascience READ

シークレット アクセス許可の詳細については、「シークレットのアクセス制御」を参照してください。