Databricks 自動化の認証 - 概要

Databricksでは、「認証」はDatabricksのID(ユーザー、サービスプリンシパル、グループなど)を検証することを意味します。Databricksは、資格情報(アクセストークン、ユーザー名とパスワードなど)を使用してIDを確認します。

発信者のIDを確認後、Databricksは承認と呼ばれるプロセスを通して、特定のロケーションのリソースに対して指定されたアクションを実行するための十分なアクセス権限が検証済みのIDに付与されているかどうかを判断します。この記事では、認証に関する詳細のみを説明しています。承認やアクセス権限に関する詳細は含まれません。認証とアクセス制御を参照してください。

ツールが自動化または API 要求を行うと、Databricks で ID を認証する資格情報が含まれます。 この記事では、Databricks が要求を認証および承認するために必要な資格情報と関連情報を作成、保存、渡す一般的な方法について説明します。 ツール、SDK、スクリプト、アプリでサポートされている資格情報の種類、関連情報、ストレージ メカニズムについては、「 Databricks ツールまたは SDK でサポートされている認証の種類 」またはプロバイダーのドキュメントを参照してください。

Databricks 認証の一般的なタスク

次の手順を使用して、Databricks 認証の一般的なタスクを完了します。

このタスクを完了するには

この記事の指示に従ってください

Databricks アカウント レベルでの認証に使用できる Databricks ユーザーを作成します。

アカウント内のユーザーを管理する

特定の Databricks ワークスペースでの認証に使用できる Databricks ユーザーを作成します。

ワークスペースでユーザーを管理する

Databricks ユーザーの Databricks 個人用アクセストークンを作成します。 (この Databricks 個人用アクセストークンは、関連付けられている Databricks ワークスペースでの認証にのみ使用できます)。

ワークスペース ユーザー用の Databricks personal アクセストークン

Databricks サービスプリンシパルを作成し、その Databricks サービスプリンシパルの Databricks personal アクセストークンを作成します。 (この Databricks 個人用アクセストークンは、関連付けられている Databricks ワークスペースでの認証にのみ使用できます)。

サービスプリンシパルを管理する

Databricks personal accesstoken for serviceprincipal」も参照してください。

Databricks 構成プロファイルを作成します。

Databricks 構成プロファイル

Databricks グループを作成し、Databricks ユーザーと Databricks サービスプリンシパルをそのグループに追加して、より堅牢な承認を行います。

アカウント コンソールを使用してアカウント グループを管理する、ワークスペース管理者設定ページを使用してアカウント グループを管理する

サポートされている Databricks 認証の種類

Databricks には、Databricks ユーザーとサービスプリンシパルを認証する方法がいくつか用意されています。

認証タイプ

詳細

OAuthマシン間(M2M)認証

  • OAuth M2M 認証では、認証に Databricks サービスプリンシパルを使用します。

  • OAuth M2M 認証では、認証資格情報に有効期間が短い (1 時間) OAuth アクセストークンを使用します。

  • 期限切れの OAuth アクセストークンは、参加している Databricks ツールと SDK によって自動的に更新できます。 「 Databricks ツールまたは SDK でサポートされている認証の種類 」と「 Databricks クライアントの統合認証」を参照してください。

  • Databricks では、 無人 認証シナリオで OAuth M2M 認証を使用することをお勧めします。 これらのシナリオには、完全に自動化された CI/CD ワークフローが含まれ、Web ブラウザーを使用して Databricks でリアルタイムで認証することはできません。

  • その他の技術的な詳細については、「OAuthマシン間(M2M)認証」を参照してください。

OAuth user-to-machine (U2M) 認証

  • OAuth U2M 認証では、認証に Databricks ユーザーを使用します。

  • OAuth U2M認証では、認証資格情報に有効期間が短い(1時間)OAuthアクセストークンを使用します。

  • 参加している Databricks ツールと SDK は、期限切れの OAuth アクセス権を自動的に更新できます。 「Databricks ツールまたは SDK でサポートされる認証の種類」および「Databricks クライアントの統合認証」を参照してください。

  • OAuth U2M 認証は、 有人 認証のシナリオに適しています。 これらのシナリオには、プロンプトが表示されたときに Web ブラウザーを使用して Databricks でリアルタイムで認証する手動および迅速な開発ワークフローが含まれます。

  • その他の技術的な詳細については、「 OAuth ユーザー対マシン (U2M) 認証」を参照してください。

Databricks 個人用アクセストークン認証

  • Databricks 個人用アクセストークン認証では、認証に Databricks ユーザーまたはサービス プリンシパルを使用します。

  • Databricks 個人用アクセストークン認証では、認証資格情報に有効期間の短い文字列または有効な文字列が使用されます。 これらのアクセストークンは、最短で 1 日以内の有効期限を設定することも、有効期限が切れないように設定することもできます。

  • 期限切れの Databricks 個人用アクセストークンは更新できません。

  • Databricks では、ターゲット Databricks ツールまたは SDK がサポートしている場合は、Databricks 個人アクセスウイルス認証の代わりにOAuth M2M 認証またはOAuth U2M 認証を使用することをお勧めします。 これは、OAuth アクセス内部が Databricks の個人アクセス内部よりも安全であるためです。

  • その他の技術的な詳細については、「 Databricks 個人用アクセストークン認証」を参照してください。

基本認証 (本番運用では推奨されません)

  • 基本認証では、認証に Databricks ユーザーを使用します。

  • 基本認証では、認証資格情報にユーザー名とパスワードを使用します。

  • Databricks では、ユーザー名とパスワードはアクセストークンよりも安全性が低いため、本番運用での認証資格情報の基本認証はお勧めしません。

  • その他の技術的な詳細については、「 基本認証 (レガシー)」を参照してください。

Databricks ツールまたは SDK でサポートされている認証の種類

サポートされている 1 つ以上の Databricks 認証の種類で動作する Databricks ツールと SDK には、次のものがあります。

ツールまたは SDK

サポートされている認証の種類

Databricks CLI

Databricks 構成プロファイル を設定して使用し、複数の関連する認証設定を切り替える方法など、特定の Databricks CLI 認証ドキュメントについては、以下を参照してください。

Databricks CLI の技術的な詳細については、「 Databricks CLI とは」を参照してください。

Databricks Terraformプロバイダー

環境変数、Databricks 構成プロファイル.tfvarsファイル、または Hashicorp Vault、AWS Secrets Manager、AWS System Manager パラメーターストアなどのシークレットストアを使用して認証情報を保存および使用する方法など、特定の Databricks Terraform プロバイダー認証ドキュメントについては、「認証」を参照してください。

Databricks Terraform プロバイダーに関するその他の技術的な詳細については、「 Databricks Terraform プロバイダー」を参照してください。

Databricks Connect

特定の Databricks Connect 認証ドキュメントについては、以下を参照してください。

Databricks Connect の技術的な詳細については、「 Databricks Connect とは」を参照してください。

Visual Studio Code の Databricks 拡張機能

Visual Studio Code の特定の Databricks 拡張機能の認証ドキュメントについては、「 Visual Studio Code の Databricks 拡張機能の認証設定」を参照してください。

Visual Studio Code の Databricks 拡張機能に関する技術的な詳細については、「 Visual Studio Code の Databricks 拡張機能とは」を参照してください。

Databricks SDK for Python

特定の Databricks SDK for Python 認証ドキュメントについては、以下を参照してください。

Databricks SDK for Python の技術的な詳細については、「 Databricks SDK for Python」を参照してください。

Databricks SDK for Java

特定の Databricks SDK for Java 認証ドキュメントについては、以下を参照してください。

Databricks SDK for Java の技術的な詳細については、「 Databricks SDK for Java」を参照してください。

Databricks SDK for Go

特定の Databricks SDK for Java 認証ドキュメントについては、以下を参照してください。

Databricks SDK for Go に関する技術的な詳細については、「 Databricks SDK for Go」を参照してください。

Databricksアセットバンドル

Databricks アセット バンドルの技術的な詳細については、 「Databricks アセット バンドルとは何ですか?」を参照してください。 。

Databricks Driver for SQLTools for Visual Studio Code

基本認証 (レガシー) (本番運用では推奨されません) はまだサポートされていません。

Databricks Driver for SQLTools for Visual Studio Code の技術的な詳細については、 「Databricks Driver for SQLTools for Visual Studio Code」を参照してください。

Databricks SQL Connector for Python

Databricks SQL Connector for Python の技術的な詳細については、 「Databricks SQL Connector for Python」を参照してください。

Node.js 用 Databricks SQL ドライバー

Databricks SQL Driver for Node.js の技術的な詳細については、次の URL を参照してください。 「Node.js 用 Databricks SQL ドライバー」を参照してください。

GoのためのDatabricks SQL ドライバ

基本認証 (レガシー) (本番運用では推奨されません) はまだサポートされていません。

Databricks SQL Driver for Go の技術的な詳細については、 「Databricks SQL Driver for Go」を参照してください。

その他の Databricks ツールと SDK

ツールまたは SDK のドキュメントを参照してください。

DatabricksアカウントとワークスペースREST API

Databricks は Databricks REST APIアカウント APIワークスペース API の 2 つのカテゴリに分類しています。これらの各カテゴリでは、ターゲット Databricks ID を認証するために、異なる情報セットが必要となります。また、サポートされている Databricks 認証の種類ごとに、ターゲット Databricks ID を一意に識別する追加情報が必要です。

たとえば、DatabricksアカウントレベルのAPI操作を呼び出すためにDatabricks IDを認証するには、以下を指定する必要があります。

  • ターゲットとなるDatabricksアカウントコンソール URL(通常はhttps://accounts.cloud.databricks.com

  • ターゲットの Databricks アカウント ID。 「アカウント ID を確認する」を参照してください。

  • ターゲットとなるDatabricks認証タイプに対応するターゲットDatabricks IDを一意に識別する情報。提供する具体的な情報については、この記事の後半でその認証タイプに関するセクションを参照してください。

DatabricksワークスペースレベルのAPI操作を呼び出すためにDatabricks IDを認証するには、以下を提供する必要があります。

  • ターゲットの Databricks ワークスペース URL (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com.

  • ターゲットとなるDatabricks認証タイプに対応するターゲットDatabricks IDを一意に識別する情報。提供する具体的な情報については、この記事の後半でその認証タイプに関するセクションを参照してください。

Databricksクライアントの統合認証

Databricksは、Databricksクライアント統合認証と呼ばれる、認証に対する統合されたアーキテクチャおよびプログラムによる一貫したアプローチを提供します。このアプローチは、Databricksによる認証の設定と自動化をより一元化し、予測可能にするのに役立ちます。これにより、Databricks認証を一度構成すれば、それ以上認証構成を変更することなく、その構成を複数のDatabricksツールおよびSDKで使用できるようになります。

これに参加しているDatabricksツールとSDKには以下が含まれます。

参加しているすべてのツールと SDK は、認証のために特別な 環境変数 と Databricks 構成プロファイル を受け入れます。 Databricks Terraform プロバイダーと Databricks SDK for Python、Java、Go では、コード内で認証設定を直接構成することもできます。 詳細については、「 Databricks ツールまたは SDK でサポートされている認証の種類」、またはツールまたは SDK のドキュメントを参照してください。

クライアントの統合認証方法と資格情報のデフォルトの評価順序

参加しているツールまたはSDKがDatabricksを使って認証を行う必要がある場合は必ず、ツールまたはSDKは、以下の認証タイプを以下の通りの順序で試行するのがデフォルト設定となっています。ツールまたはSDKが試行したタイプの認証で成功すると、ツールまたはSDKは残りの認証タイプによる試行を停止します。SDKに特定の認証タイプによる認証を強制するには、 Config APIのDatabricks認証タイプフィールドを設定します。

  1. Databricks 個人用アクセストークン認証

  2. 基本認証 (レガシー)

  3. OAuthマシン間(M2M)認証

  4. OAuth user-to-machine (U2M) 認証

参加しているツールまたはSDKにより試行される各認証タイプごとに、以下に示されるロケーションと順序でツールまたはSDKは認証資格情報を検索しようとします。ツールまたはSDKが使用可能な認証資格情報の検索に成功すると、ツールまたはSDKは残りのロケーションでの認証資格情報の検索を停止します。

  1. 資格情報関連の Config API フィールド (SDK の場合)。 Config フィールドを設定するには、「Databricks ツールまたは SDK でサポートされている認証の種類」または「SDK のリファレンス ドキュメント」を参照してください。

  2. 資格情報関連の環境変数。 環境変数を設定するには、「 Databricks ツールまたは SDK でサポートされている認証の種類 」とオペレーティング システムのドキュメントを参照してください。

  3. .databrickscfg ファイル内の DEFAULT 構成プロファイルの資格情報関連のフィールド。構成プロファイル フィールドを設定するには、「 Databricks ツールまたは SDK でサポートされている認証の種類 」および 「Databricks 構成プロファイル」を参照してください。

コードの移植性を最大限に高めるために、Databricks では、 ファイル内にカスタム構成プロファイルを作成し、ターゲットの.databrickscfg Databricks 認証の種類に必要な フィールド をカスタム構成プロファイルに追加してから、DATABRICKS_CONFIG_PROFILE 環境変数をカスタム 構成プロファイル の名前に設定することをお勧めします。詳細については、「 Databricks ツールまたは SDK でサポートされている認証の種類」を参照してください。

クライアント統合認証の環境変数とフィールド

以下の表は、Databricksクライアント統合認証でサポートされている環境変数とフィールドの名前と説明を示しています。表の説明は以下の通りです。

一般的なホスト、トークン、アカウントIDの環境変数とフィールド

一般的な名前

説明

環境変数

.databrickscfg フィールド、Terraformフィールド

Config フィールド

Databricksホスト

(文字列)DatabricksワークスペースエンドポイントまたはDatabricksアカウントエンドポイントのDatabricksホストURL。

DATABRICKS_HOST

host

host (Python) setHost(Java)、Host(Go)

Databricksトークン

(文字列)Databricksの個人用アクセストークン。

DATABRICKS_TOKEN

token

token (Python) setToken(Java)、Token(Go)

DatabricksのアカウントID

(文字列)Databricks アカウンエンドポイントのDatabricksアカウントID。Databricksホストも https://accounts.cloud.databricks.com に設定されている場合にのみ効果があります。

DATABRICKS_ACCOUNT_ID

account_id

account_id (Python) setAccountID(Java)、AccountID(Go)

AWS固有の環境変数とフィールド

一般的な名前

説明

環境変数

.databrickscfg フィールド、Terraformフィールド

Config フィールド

Databricksのユーザー名

(文字列)Databricksユーザーのユーザー名。

DATABRICKS_USERNAME

username

username (Python) setUsername(Java)、Username(Go)

Databricksのパスワード

(文字列)Databricksユーザーのパスワード。

DATABRICKS_PASSWORD

password

password (Python) setPassword(Java)、Password(Go)

サービスプリンシパルのクライアントID

(文字列)DatabricksサービスプリンシパルのクライアントID。

DATABRICKS_CLIENT_ID

client_id

client_id (Python) setClientId(Java)、ClientId(Go)

サービスプリンシパルのシークレット

(文字列)Databricksサービスプリンシパルのシークレット。

DATABRICKS_CLIENT_SECRET

client_secret

client_secret (Python) setClientSecret(Java)、ClientSecret(Go)

.databrickscfg-specificの環境変数とフィールド

これらの環境変数またはフィールドを使用して、 .databrickscfgのデフォルト以外の設定を指定します。 「 Databricks 構成プロファイル」も参照してください。

一般的な名前

説明

環境変数

Terraformフィールド

Config フィールド

.databrickscfg ファイルパス

(文字列).databrickscfg ファイルへのデフォルト以外のパス。

DATABRICKS_CONFIG_FILE

config_file

config_file (Python) setConfigFile(Java)、ConfigFile(Go)

.databrickscfg デフォルトプロファイル

(文字列)使用するデフォルトの名前付きプロファイル(DEFAULT 以外)。

DATABRICKS_CONFIG_PROFILE

profile

profile (Python) setProfile(Java)、Profile(Go)

認証タイプフィールド

この環境変数またはフィールドを使用して、SDKに特定の種類のDatabricks認証の使用を強制します。

一般的な名前

説明

Terraformフィールド

Config フィールド

Databricks認証タイプ

(文字列)環境内で複数の認証属性が使用できる場合は、この引数で指定された認証タイプを使用します。

auth_type

auth_type (Python) setAuthType(Java)、AuthType(Go)

サポートされているDatabricks認証タイプのフィールド値は以下のとおりです。

Databricks構成プロファイル

Databricks構成プロファイル(構成プロファイル構成プロファイル、または単にprofileと呼ばれることもあります) には、Databricks が認証する必要がある設定およびその他の情報が含まれています。 Databricks 構成プロファイルは、ツール、SDK、スクリプト、アプリで使用するための Databricks構成プロファイル ファイルに保存されます。 Databricks 構成プロファイルがツール、SDK、スクリプト、アプリでサポートされているかどうかを確認するには、プロバイダーのドキュメントを参照してください。 Databricks クライアント統合認証を実装するすべての参加ツールと SDK は、Databricks 構成プロファイルをサポートします。 詳細については、 「Databricks ツールまたは SDK でサポートされる認証の種類」を参照してください。

Databricks構成プロファイルを作成するには、以下の手順に従ってください。

  1. お気に入りのテキストエディタを使用して、Unix、Linux、または macOS の場合は ~ (ユーザーホーム)フォルダに、Windowsの場合は %USERPROFILE% (ユーザーホーム)フォルダに .databrickscfg という名前のファイルを作成します。(未作成の場合)ファイル名の先頭にあるドット(.)を付け忘れないよう気をつけてください。このファイルに、次の内容を追加してください。

    [<some-unique-name-for-this-configuration-profile>]
    <field-name> = <field-value>
    
  2. 上記の内容で以下の値を置き換え、ファイルを保存します。

    • <some-unique-name-for-this-configuration-profile> を、構成プロファイルの一意の名前(DEFAULTDEVELOPMENTPRODUCTION など)で置き換えます。同じ .databrickscfg ファイル内に複数の構成プロファイルを含めることができますが、各構成プロファイルはこのファイル内で一意の名前を持たなければなりません。

    • <field-name><field-value> を、ターゲットとなるDatabricks認証タイプの必須フィールドの名前と値に置き換えます。提供する具体的な情報については、この記事の前半でその認証タイプに関するセクションを参照してください。

    • ターゲットとなるDatabricks認証タイプの追加の必須フィールドごとに、<field-name><field-value> のペアを追加します。

たとえば、Databricks個人用アクセストークン認証の場合、.databrickscfg ファイルは以下のようになります。

[DEFAULT]
host  = https://dbc-a1b2345c-d6e7.cloud.databricks.com
token = dapi123...

追加の構成プロファイルを作成するには、同じ .databrickscfg ファイル内で異なるプロファイル名を指定します。たとえば、それぞれに独自のDatabricks個人用アクセトークンを持つ個別のDatabricksワークスペースを指定する場合は、以下のようになります。

[DEFAULT]
host  = https://dbc-a1b2345c-d6e7.cloud.databricks.com
token = dapi123...

[DEVELOPMENT]
host  = https://dbc-b2c3456d-e7f8.cloud.databricks.com
token = dapi234...

Databricksアカウントおよび異なるDatabricks認証タイプに対して、.databrickscfg ファイル内で異なるプロファイル名を指定することもできます。以下に例を示します。

[DEFAULT]
host  = https://dbc-a1b2345c-d6e7.cloud.databricks.com
token = dapi123...

[ACCOUNT]
host       = https://accounts.cloud.databricks.com
username   = someone@example.com
password   = MyP25...
account_id = ab0cd1...

ODBC DSN

ODBCでは、データソース名(DSN)はツール、SDK、スクリプト、アプリが ODBCデータソースへの接続を要求するために使用するシンボリック名です。DSNには、ODBCドライバーへのパス、ネットワークの詳細、認証資格情報、データベースの詳細などの接続の詳細が保存されます。ODBC DSNがツール、スクリプト、アプリでサポートされているかどうかについては、プロバイダーのドキュメントを参照してください。

Databricks ODBC ドライバーをインストールして構成し、Databricks の ODBC DSN を作成するには、「 Databricks ODBC ドライバー 」を参照してください。

JDBC接続URL

JDBCにおける接続URLとは、ツール、SDK、スクリプト、アプリがJDBCデータソースへの接続をリクエストするために使用するシンボリックURLです。接続URLには、ネットワークの詳細、認証資格情報、データベースの詳細、JDBC ドライバー機能などの接続の詳細が保存されます。JDBC接続URLがツール、SDK、スクリプト、アプリでサポートされているかどうかを確認するには、プロバイダーのドキュメントを参照してください。

Databricks JDBC ドライバーをインストールして構成し、Databricks の JDBC 接続 URL を作成するには、「 Databricks JDBC ドライバー 」を参照してください。