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 サービスプリンシパルを作成し、その Databricks サービスプリンシパルの Databricks personal アクセストークンを作成します。 (この Databricks 個人用アクセストークンは、関連付けられている Databricks ワークスペースでの認証にのみ使用できます)。 |
「 Databricks personal accesstoken for serviceprincipal」も参照してください。 |
Databricks 構成プロファイルを作成します。 |
|
Databricks グループを作成し、Databricks ユーザーと Databricks サービスプリンシパルをそのグループに追加して、より堅牢な承認を行います。 |
アカウント コンソールを使用してアカウント グループを管理する、ワークスペース管理者設定ページを使用してアカウント グループを管理する |
サポートされている Databricks 認証の種類
Databricks には、Databricks ユーザーとサービスプリンシパルを認証する方法がいくつか用意されています。
認証タイプ |
詳細 |
---|---|
OAuthマシン間(M2M)認証 |
|
OAuth user-to-machine (U2M) 認証 |
|
Databricks 個人用アクセストークン認証 |
|
基本認証 (本番運用では推奨されません) |
|
Databricks ツールまたは SDK でサポートされている認証の種類
サポートされている 1 つ以上の Databricks 認証の種類で動作する Databricks ツールと SDK には、次のものがあります。
ツールまたは SDK |
サポートされている認証の種類 |
---|---|
Databricks CLI |
Databricks 構成プロファイル を設定して使用し、複数の関連する認証設定を切り替える方法など、特定の Databricks CLI 認証ドキュメントについては、以下を参照してください。
Databricks CLI の技術的な詳細については、「 Databricks CLI とは」を参照してください。 |
Databricks Terraformプロバイダー |
環境変数、Databricks 構成プロファイル、 Databricks Terraform プロバイダーに関するその他の技術的な詳細については、「 Databricks Terraform プロバイダー」を参照してください。 |
Databricks Connect |
特定の Databricks Connect 認証ドキュメントについては、以下を参照してください。 Databricks Connect の技術的な詳細については、「 Databricks Connect とは」を参照してください。 |
Visual Studio Code の Databricks 拡張機能 |
Visual Studio Code の認証ドキュメントの特定の Databricks 拡張機能については、 「VS 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認証タイプフィールドを設定します。
参加しているツールまたはSDKにより試行される各認証タイプごとに、以下に示されるロケーションと順序でツールまたはSDKは認証資格情報を検索しようとします。ツールまたはSDKが使用可能な認証資格情報の検索に成功すると、ツールまたはSDKは残りのロケーションでの認証資格情報の検索を停止します。
資格情報関連の
Config
API フィールド (SDK の場合)。Config
フィールドを設定するには、「Databricks ツールまたは SDK でサポートされている認証の種類」または「SDK のリファレンス ドキュメント」を参照してください。資格情報関連の環境変数。 環境変数を設定するには、「 Databricks ツールまたは SDK でサポートされている認証の種類 」とオペレーティング システムのドキュメントを参照してください。
.databrickscfg
ファイル内のDEFAULT
構成プロファイルの資格情報関連のフィールド。構成プロファイル フィールドを設定するには、「 Databricks ツールまたは SDK でサポートされている認証の種類 」および 「Databricks 構成プロファイル」を参照してください。
コードの移植性を最大限に高めるために、Databricks では、 ファイル内にカスタム構成プロファイルを作成し、ターゲットの.databrickscfg
Databricks 認証の種類に必要な フィールド をカスタム構成プロファイルに追加してから、DATABRICKS_CONFIG_PROFILE
環境変数をカスタム 構成プロファイル の名前に設定することをお勧めします。詳細については、「 Databricks ツールまたは SDK でサポートされている認証の種類」を参照してください。
クライアント統合認証の環境変数とフィールド
以下の表は、Databricksクライアント統合認証でサポートされている環境変数とフィールドの名前と説明を示しています。表の説明は以下の通りです。
環境変数 (該当する場合) は、環境変数の名前です。 環境変数を設定するには、「 Databricks ツールまたは SDK でサポートされている認証の種類 」とオペレーティング システムのドキュメントを参照してください。
.databrickscfg
フィールド (該当する場合) は、Databricks 構成プロファイル ファイルまたは Databricks Terraform 構成内のフィールドの名前です。.databrickscfg
フィールドを設定するには、「Databricks ツールまたは SDK でサポートされている認証の種類」および「Databricks 構成プロファイル」を参照してください。Terraformフィールド(該当する場合)は、Databricks Terraform設定内のフィールドの名前です。Databricks Terraformのフィールドを設定するには、Databricks Terraform プロバイダのドキュメントの「認証」を参照してください。
Config
フィールドは、指定された SDK のConfig
API 内のフィールドの名前です。Config
API を使用するには、「Databricks ツールまたは SDK でサポートされている認証の種類」または「SDK のリファレンス ドキュメント」を参照してください。
一般的なホスト、トークン、アカウントIDの環境変数とフィールド
一般的な名前 |
説明 |
環境変数 |
|
|
---|---|---|---|---|
Databricksホスト |
(文字列)DatabricksワークスペースエンドポイントまたはDatabricksアカウントエンドポイントのDatabricksホストURL。 |
|
|
|
Databricksトークン |
(文字列)Databricksの個人用アクセストークン。 |
|
|
|
DatabricksのアカウントID |
(文字列)Databricks アカウンエンドポイントのDatabricksアカウントID。Databricksホストも |
|
|
|
AWS固有の環境変数とフィールド
一般的な名前 |
説明 |
環境変数 |
|
|
---|---|---|---|---|
Databricksのユーザー名 |
(文字列)Databricksユーザーのユーザー名。 |
|
|
|
Databricksのパスワード |
(文字列)Databricksユーザーのパスワード。 |
|
|
|
サービスプリンシパルのクライアントID |
(文字列)DatabricksサービスプリンシパルのクライアントID。 |
|
|
|
サービスプリンシパルのシークレット |
(文字列)Databricksサービスプリンシパルのシークレット。 |
|
|
|
.databrickscfg-specificの環境変数とフィールド
これらの環境変数またはフィールドを使用して、 .databrickscfg
のデフォルト以外の設定を指定します。 「 Databricks 構成プロファイル」も参照してください。
一般的な名前 |
説明 |
環境変数 |
Terraformフィールド |
|
---|---|---|---|---|
|
(文字列) |
|
|
|
|
(文字列)使用するデフォルトの名前付きプロファイル( |
|
|
|
認証タイプフィールド
この環境変数またはフィールドを使用して、SDKに特定の種類のDatabricks認証の使用を強制します。
一般的な名前 |
説明 |
Terraformフィールド |
|
---|---|---|---|
Databricks認証タイプ |
(文字列)環境内で複数の認証属性が使用できる場合は、この引数で指定された認証タイプを使用します。 |
|
|
サポートされているDatabricks認証タイプのフィールド値は以下のとおりです。
basic
: 基本認証 (レガシー)oauth-m2m
: OAuthマシン間(M2M)認証databricks-cli
: OAuth user-to-machine (U2M) 認証
Databricks構成プロファイル
Databricks構成プロファイル(構成プロファイル、構成プロファイル、または単にprofile
と呼ばれることもあります) には、Databricks が認証する必要がある設定およびその他の情報が含まれています。 Databricks 構成プロファイルは、ツール、SDK、スクリプト、アプリで使用するための Databricks構成プロファイル ファイルに保存されます。 Databricks 構成プロファイルがツール、SDK、スクリプト、アプリでサポートされているかどうかを確認するには、プロバイダーのドキュメントを参照してください。 Databricks クライアント統合認証を実装するすべての参加ツールと SDK は、Databricks 構成プロファイルをサポートします。 詳細については、 「Databricks ツールまたは SDK でサポートされる認証の種類」を参照してください。
Databricks構成プロファイルを作成するには、以下の手順に従ってください。
お気に入りのテキストエディタを使用して、Unix、Linux、または macOS の場合は
~
(ユーザーホーム)フォルダに、Windowsの場合は%USERPROFILE%
(ユーザーホーム)フォルダに.databrickscfg
という名前のファイルを作成します。(未作成の場合)ファイル名の先頭にあるドット(.
)を付け忘れないよう気をつけてください。このファイルに、次の内容を追加してください。[<some-unique-name-for-this-configuration-profile>] <field-name> = <field-value>
上記の内容で以下の値を置き換え、ファイルを保存します。
<some-unique-name-for-this-configuration-profile>
を、構成プロファイルの一意の名前(DEFAULT
、DEVELOPMENT
、PRODUCTION
など)で置き換えます。同じ.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 ドライバー 」を参照してください。