LoginSignup
0
0

More than 3 years have passed since last update.

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

Last updated at Posted at 2021-05-05

Databricksにおけるシークレットの管理のコンテンツです。

Secret workflow example | Databricks on AWS [2021/4/12時点]の翻訳です。

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

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

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

databricks secrets create-scope --scope jdbc

注意
Premium planを契約していない場合には、全てのユーザー("users")に対して、スコープに対するMANAGE権限を付与する必要がああります。例えば、以下のコマンドを実行します。

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

シークレットの作成

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

databricks secrets put --scope jdbc --key username
databricks secrets put --scope jdbc --key password

ノートブックからシークレットを使用する

ノートブック上でjdbcスコープに格納されたシークレットを読み込み、JDBCコネクターを設定します。

Scala

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 planが必要となります。

認証情報が適切に設定されたことを確認した後で、datasicenceグループにこの認証情報を共有することにします。

datasicenceグループに認証情報の読み取り権限を与えるには、以下を実行します。

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

Databricks 無料トライアル

Databricks 無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0