LoginSignup
1
0

More than 1 year has passed since last update.

Databricksパーソナルアクセストークンを用いた認証

Last updated at Posted at 2023-02-12

Authentication using Databricks personal access tokens | Databricks on AWS [2022/12/6時点]の翻訳です。

本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。

Databricks REST APIの認証を受け、APIにアクセスするために、Databricksパーソナルアクセストークンあるいはパスワードを使用することができます。トークンを使用することを強くお勧めします。

重要!
認証フローにおいてトークンはパスワードを置き換えるものとなるので、パスワードのようにトークンも保護されなくてはなりません。トークンを保護するために、トークンを以下の場所に格納することをお勧めします。

注意
セキュリティのベストプラクティスとして、自動化ツール、システム、スクリプト、アプリで認証を行う際、ワークスペースのユーザーではなくサービスプリンシパルに属するアクセストークンを使用することをお勧めします。サービスプリンシパルのアクセストークンを作成するには、Manage access tokens for a service principalをご覧ください。

要件

2018年1月以降に作成されたすべてのDatabricksアカウントにおいて、トークンベースの認証はデフォルトで有効化されています。トークンベースの認証が無効化されている場合、Databricksにおけるパーソナルアクセストークンの管理で説明されているタスクを実行する前に管理者は機能を有効化しなくてはなりません。

パーソナルアクセストークンの生成

Databricksパーソナルアクセストークンをご覧ください。

Token API 2.0を用いてトークンの生成、廃棄を行うこともできます。

ユーザーあたりのパーソナルアクセストークンの数は、ワークスペースごとに600個に制限されています。

パーソナルアクセストークンの廃棄

このセクションでは、Databricks UIによるパーソナルアクセストークンの廃棄方法を説明します。Token API 2.0を用いてトークンの生成、廃棄を行うこともできます。

  1. Databricksワークスペースのトップバーに表示されているご自身のユーザー名をクリックし、ドロップダウンからUser Settingsを選択します。
  2. Access Tokensタブに移動します。
  3. 廃棄したいトークンのxをクリックします。
  4. トークン廃棄のダイアログで、Revoke Tokenボタンをクリックします。

Databricks REST APIにアクセスするためにパーソナルアクセストークンを使う

.netrcファイルにパーソナルアクセストークンを格納しcurlを使用するか、Authorization: Bearerヘッダーにトークンを指定することができます。

.netrcファイルにトークンを格納しcurlで使う

machineloginpasswordプロパティを持つ.netrcファイルを作成します。

ini
machine <databricks-instance>
login token
password <token-value>

ここでは、

  • <databricks-instance>はお使いのDatabricksデプロイメントのワークスペースURLに含まれるインスタンスIDです。例えば、ワークスペースのURLがhttps://abc-d1e2345f-a6b2.cloud.databricks.comの場合、<databricks-instance>abc-d1e2345f-a6b2.cloud.databricks.comです。
  • tokenは文字列リテラルのtokenです。
  • <token-value>dapi1234567890ab1cde2f3ab456c7d89efaのようなトークンの値となります。

結果として以下のようになります。

ini
machine abc-d1e2345f-a6b2.cloud.databricks.com
login token
password dapi1234567890ab1cde2f3ab456c7d89efa

複数のマシン/トークンのエントリーがある場合、一行ごとにエントリーを記述し、同じ行にマシン/トークンごとのmachineloginpasswordプロパティを記述します。これは以下のようになります。

ini
machine abc-d1e2345f-a6b2.cloud.databricks.com login token password dapi1234567890ab1cde2f3ab456c7d89efa
machine bcd-e2f3456a-b7c3.cloud.databricks.com login token password dapi2345678901cd2efa3b4cd567e8f90abc
machine cde-f3a4567b-c8d4.cloud.databricks.com login token password dapi3456789012de3fab4c5de678f9a01bcd

重要!
オプションとして、loginにご自身のDatabrikcsユーザー名、passwordにDatabricksのパスワードを指定することができます。しかし、APIエンドポイントの認証を受けるにはパーソナルアクセストークンを使用することをお勧めします。ユーザー名とパスワードを使用する際、以下のように資格情報を引き渡すために-u使用しないでください

Bash
# これは **やめてください**
curl -u <your-username>:<your-password> -X GET https://<databricks-instance>/api/2.0/clusters/list

以下のサンプルは、curlコマンドで--netrc(-nを使うこともできます)を用いて、.netrcファイルを呼び出します。.netrcファイルでマッチするmachineエントリーを特定するために指定されたワークスペースURLを使用します。

Bash
curl --netrc -X GET https://abc-d1e2345f-a6b2.cloud.databricks.com/api/2.0/clusters/list

Bearer認証にトークンを渡す

Bearer認証を用いたヘッダーにトークンを含めることができます。curlやあなたが開発する任意のクライアントでこのアプローチを活用することができます。後者に関しては、大きなファイルをDBFSにアップロードをご覧ください。

以下の例では、特定のワークスペースで使用できるすべてのクラスターを一覧するためにBearer認証を用いています。

Bash
export DATABRICKS_TOKEN=dapi1234567890ab1cde2f3ab456c7d89efa

curl -X GET --header "Authorization: Bearer $DATABRICKS_TOKEN" \
https://abc-d1e2345f-a6b2.cloud.databricks.com/api/2.0/clusters/list

Databricks 無料トライアル

Databricks 無料トライアル

1
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
1
0