Authentication for Databricks automation | Databricks on AWS [2023/1/4時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
Databricksにおいて、認証とは(ユーザー、サービスプリンシパル、グループなどの)Databricksアイデンティティを検証することを意味します。Databricksでは、アイデンティティを検証するために(アクセストークンやユーザー名、パスワードなどの)資格情報を使用します。
Databricksが呼び出し元のアイデンティティを検証した後に、検証されたアイデンティティが指定された場所にあるリソースに対して十分な権限を有しているかどうかを特定するために、Databricksでは承認と呼ばれるプロセスを使用します。本書では承認の詳細については触れません。
ツールが自動化処理やAPIリクエストを行う際、Databricksでアイデンティティを認証する資格情報が含まれます。本書では、Databricksがリクエストの認証と承認に必要とする資格情報と関連情報を作成、格納、引き渡す際の典型的な方法を説明します。お使いのツール、スクリプト、アプリでサポートされている認証タイプ、関連情報、格納のメカニズムについてはプロバイダーのドキュメントを参照ください。
Databricksパーソナルアクセストークン
Databricksのパーソナルアクセストークンは、特にDatabricksのワークスペースレベルのリソースとオペレーションを行う際には最もサポートが手厚いタイプの資格情報の一つです。資格情報および環境変数や設定プロファイルのような関連情報に対する格納メカニズムの多くは、Databricksパーソナルアクセストークンを必要とします。一つのDatabricksワークスペースでは複数のパーソナルアクセストークンを設定することはできます、それぞれのパーソナルアクセストークンは単一のDatabricksワークスペースでのみ動作します。
ユーザーのパーソナルアクセストークン
Databricksユーザー向けのDatabricksパーソナルアクセストークンを作成するには、以下の手順を実施します。
- Databricksワークスペースでトップバーにある自身のDatabricksユーザー名をクリックし、ドロップダウンからUser Settingsを選択します。
- Access tokensタブでGenerate new tokenをクリックします。
- (オプション)あとでトークンを識別できるようにコメントを入力し、デフォルト90日のトークンの有効期限を変更します。無期限のトークン(お勧めしません)を作成するには、Lifetime (days) のボックスを空にします。
- Generateをクリックします。
- 表示されたトークンをコピーしDoneをクリックします。
重要!
コピーしたトークンはセキュアな場所に保存してください。コピーしたトークンを失くした場合、全く同じトークンを再生成することはできません。新規トークンを作成するためにこの手順を繰り返す必要があります。コピーしたトークンを失くした場合には、Access tokensタブで表示されるトークンの隣にあるXをクリックすることで、即座にワークスペースからトークンを削除することをお勧めします。
サービスプリンシパルのパーソナルアクセストークン
DatabricksユーザーではなくDatabricksサービスプリンシパルのDatabricksパーソナルアクセストークンを作成するには、Databricksオートメーションのためのサービスプリンシパルをご覧ください。
パーソナルアクセストークンの管理
ワークスペース上のすべてのDatabricksパーソナルアクセストークンの有効化や無効化、ワークスペースで誰がトークンを使用できるのかのコントロール、ワークスペースにおけるトークンの最大有効期間の設定、ワークスペースにおけるその他のトークン管理オペレーションに関しては、Databricksにおけるパーソナルアクセストークンの管理をご覧ください。
環境変数
Databricksをサポートする製品やDatabricksと連携するいくつかのサードパーティ製品では、以下の固有の環境変数のいくつかをサポートしています。お使いのツール、スクリプト、アプリでどの環境変数がサポートされているのかに関しては、プロバイダーのドキュメントを参照してください。環境変数の作成、変更、削除に関してはオペレーティングシステムのドキュメントを参照してください。
環境変数 |
---|
DATABRICKS_ACCOUNT_ID DatabricksアカウントID。 Databricks Terraformプロバイダーでのみ適用されます。 |
DATABRICKS_ADDRESS DatabricksワークスペースのURL。 Databricksアカウントレベルのオペレーションにおいては、DatabricksアカウントコンソールのURLとなります。 サンプル: https://dbc-a1b2345c-d6e7.cloud.databricks.com 、https://accounts.cloud.databricks.com Databricks Connectにのみ適用されます。 |
DATABRICKS_API_TOKEN Databricksパーソナルアクセストークンの値。 Databricks Connectにのみ適用されます。 |
DATABRICKS_CLUSTER_ID DatabricksクラスターのID。 Databricks Connectにのみ適用されます。 |
DATABRICKS_CONFIG_FILE Databricks設定プロファイルのファイルへのフルパス。 デフォルト: Unix、Linux、macOSでは ~/.databrickscfg 、Windowsでは%USERPROFILE%\.databrickscfg
|
DATABRICKS_CONFIG_PROFILE Databricks設定プロファイルのファイルの名称。 デフォルト: DEFAULT
|
DATABRICKS_DEBUG_HEADERS プロバイダーによるリクエストのデバッグHTTPヘッダーを出力するかどうか。 デフォルト: false Databricks Terraformプロバイダーでのみ適用されます。 |
DATABRICKS_DEBUG_TRUNCATE_BYTES この制限を超えたHTTPリクエストやレスポンスtのJSONフィールドをこの長さに切り取ります。 デフォルト: 96 Databricks Terraformプロバイダーでのみ適用されます。 |
DATABRICKS_DSN Databricks計算リソースに対するデータソース名(DSN)の接続文字列。 Databricks SQL Driver for Goにのみ適用されます。 |
DATABRICKS_HOST DatabricksワークスペースのURL。 Databricksアカウントレベルのオペレーションにおいては、DatabricksアカウントコンソールのURLとなります。 サンプル: https://dbc-a1b2345c-d6e7.cloud.databricks.com 、https://accounts.cloud.databricks.com
|
DATABRICKS_ORG_ID Databricksワークスペースの組織ID。 Databricks Connectにのみ適用されます。 |
DATABRICKS_PASSWORD Databricksワークスペースユーザーのパスワード。 |
DATABRICKS_PORT Databricksクラスターと通信するポート番号。 Databricks Connectにのみ適用されます。 |
DATABRICKS_RATE_LIMIT 秒間最大リクエスト数。 デフォルト: 15 Databricks Terraformプロバイダーでのみ適用されます。 |
DATABRICKS_TOKEN Databricksパーソナルアクセストークンの値。 |
DATABRICKS_USERNAME Databricksワークスペースユーザーのユーザー名。 |
DBSQLCLI_ACCESS_TOKEN Databricksパーソナルアクセストークンの値。 Databricks SQL CLIにのみ適用されます。 |
DBSQLCLI_HOST_NAME Databricks SQLウェアハウスのServer hostnameフィールドの値。 例: dbc-a1b2345c-d6e7.cloud.databricks.com Databricks SQL CLIにのみ適用されます。 |
DBSQLCLI_HTTP_PATH Databricks SQLウェアハウスのHTTP pathフィールドの値。 例: /sql/1.0/warehouses/1abc2d3456e7f890a Databricks SQL CLIにのみ適用されます。 |
PERSONAL_ACCESS_TOKEN Databricksパーソナルアクセストークンの値。 Apache Airflow integration with Databricksのみ適用されます。 |
設定プロファイル
Databricks設定プロファイルにはDatabricksが認証に必要とする設定とそのほかの上が格納されます。Databricks設定プロファイルは、使用するツール、スクリプト、アプリのDatabricks設定プロファイルのファイルに格納されます。お使いのツール、スクリプト、アプリでDatabricks設定プロファイルがサポートされているかどうかに関しては、プロバイダーのドキュメントを参照ください。
Databricks CLIを用いるか、あるいは手動で設定プロファイルのファイルを作成することができます。
設定プロファイルのファイルを作成するためにDatabricks CLIを使用
設定プロファイルのファイルを作成するためにDatabricks CLIを使用するには以下の手順を実施します。
注意
このアプローチでは、新規ファイルにDEFAULT
という名前の設定プロファイルを持つ設定プロファイルのファイルを作成します。設定プロファイルのファイルがすでに存在する際には、ファイルのDEFAULT
設定プロファイルは新規データで上書きされます。別の名称の設定プロファイルを作成するには、databricks configure --token --profile DEV
というように、--profile
オプションで新規設定プロファイル名を指定してください。
-
Databricks CLIで以下のコマンドを実行します。
Bashdatabricks configure --token
-
プロンプトが表示されたら、
https://dbc-a1b2345c-d6e7.cloud.databricks.com
のようなワークスペースインスタンスのURLを入力し、Enterを押します。 -
プロンプトが表示されたら、Databricksパーソナルアクセストークンを入力し、Enterを押します。
Databricks CLIが、Unix、Linux、macOSの場合は~
フォルダ(ユーザーホーム)、Windowsの場合は%USERPROFILE%
フォルダ(ユーザーホーム)に.databrickscfg
というファイルが存在しない場合に作成します。Databricks CLIはDEFAULT
という設定プロファイルが存在しない場合には作成し、この設定プロファイルに入力した情報を追加します。
手動で設定プロファイルのファイルを作成
手動でDatabricks設定プロファイルのファイルを作成するには、以下の手順を実行します。
-
Unix、Linux、macOSの場合は
~
フォルダ(ユーザーホーム)、Windowsの場合は%USERPROFILE%
フォルダ(ユーザーホーム)に.databrickscfg
というファイルをお好きなテキストエディタで作成します。ファイル名の先頭のドット(.
)を忘れないようにしてください。このファイルに以下の内容を追加します。[<DEFAULT>] host = <your-workspace-url> token = <your-personal-access-token>
-
上記の内容で、以下の値を置き換えてからファイルを保存します。
-
<DEFAULT>
をDEFAULT
、DEV
、PROD
のような一意なな設定プロファイルの名称で置き換えます。 -
<your-workspace-url>
をhttps://dbc-a1b2345c-d6e7.cloud.databricks.com
のようなワークスペースインスタンスのURLで置き換えます。 -
<your-personal-access-token>
をDatabricksパーソナルアクセストークンで置き換えます。
-
例えば、.databrickscfg
ファイルは以下のようになります。
[DEFAULT]
host = https://dbc-a1b2345c-d6e7.cloud.databricks.com
token = dapi12345678901234567890123456789012
ティップス
以下のように同じ.databrickscfg
ファイルに別々のプロファイル名を指定することで追加の設定プロファイルを作成することができます。
[DEFAULT]
host = https://dbc-a1b2345c-d6e7.cloud.databricks.com
token = dapi12345678901234567890123456789012
[DEV]
host = https://dbc-b2c3456d-e7f8.cloud.databricks.com
token = dapi23456789012345678901234567890123
ODBC DSN
ODBCにおいては、*データソース名(DSN)*はODBCデータソースに接続をリクエストするためにツール、スクリプト、アプリが使用するシンボル名となります。DSNにはODBCドライバーへのパス、ネットワークの詳細、認証資格情報、データベース詳細のような接続詳細情報が格納されます。お使いのツール、スクリプト、アプリでODBC DSNがサポートされているかどうかはプロバイダーのドキュメントを参照してください。
Databricks ODBC Driverのインストールと設定、Databricks用ODBC DSNの作成方法に関しては、ODBC driverをご覧ください。
JDBC接続URL
JDBCにおいては、接続URLはJDBCデータソースに接続をリクエストするためにツール、スクリプト、アプリが使用するシンボル名となります。接続URLにはネットワークの詳細、認証資格情報、データベース詳細、JDBCドライバーの能力のような接続詳細情報が格納されます。お使いのツール、スクリプト、アプリでJDBC接続URLがサポートされているかどうかはプロバイダーのドキュメントを参照してください。
Databricks JDBC Driverのインストールと設定、Databricks用JDBC接続URLの作成方法に関しては、JDBC driverをご覧ください。