Databricks CLI に ”OAuth U2M” で認証する手順

Databricks CLIのセットアップ時にはDatabricksアカウント/ワークスペースの認証が必要です。従来のPAT(個人用アクセストークン)は非推奨となり、より安全なOAuth U2M認証への移行が推奨されています。本記事では、OAuth認証の基本概念から、Databricks CLIでの具体的な設定手順まで、初心者にも分かりやすく解説します。

目次

はじめに

Databricks を操作する際、これまで多くの開発者が個人用アクセストークン(PAT: Personal Access Token)を使って認証を行ってきました。しかし、2025年現在、Databricks はセキュリティ強化の観点から PAT を非推奨 とし、より安全な OAuth 認証 への移行を推奨しています。

本記事では、Databricks CLI(v0.205以降)で推奨される OAuth U2M(User-to-Machine)認証 の設定方法を解説します。OAuth の基本概念から実際の設定手順まで、初めて OAuth に触れる方でも理解できるよう段階的に説明していきます。

 

※事前準備:Databricks CLI をインストールし、databricks -v が 0.205 以上であることを確認してください。

なぜ OAuth U2M なのか

PAT から OAuth への移行背景

従来の PAT には以下のような課題がありました。

・長期間有効なトークン:一度発行すると無期限または長期間有効で、漏洩時のリスクが高い

・管理の煩雑さ:定期的な更新や、退職者のトークン無効化など運用負荷が高い

・権限管理の難しさ:トークン単位での細かい権限制御が困難

これらの課題を解決するため、Databricks は OAuth による認証を推奨しており、CLI の認証ページでも「Personal access token authentication (deprecated)」として明確に非推奨扱いとなっています。

 

OAuth とは何か

OAuth(Open Authorization) は、ユーザーが自分のリソースへのアクセスを第三者のアプリケーションに安全に許可するための業界標準プロトコルです。身近な例では「Google アカウントでログイン」のような機能がこれに該当します。

OAuth の主なメリット:

・パスワードを直接共有せずに済む

・アクセス権限を細かく制御できる

・いつでもアクセスを取り消せる

・短命なトークンにより、セキュリティリスクを最小化

 

U2M(User-to-Machine)とは

OAuth には大きく分けて2つの認証フローがあります:

  1. U2M(User-to-Machine):人間のユーザーがブラウザ経由で認証し、その権限でアプリケーション(CLI など)が動作
  2. M2M(Machine-to-Machine):サービスアカウントを使った、システム間の自動認証

 

今回扱う U2M は、以下のような仕組みで動作します:

  1. ユーザーがブラウザでログイン(組織の SSO 等を利用)
  2. Databricks がユーザーの同意を得て、1時間有効のアクセストークン を発行
  3. CLI がこのトークンを使って、ユーザーの代わりに Databricks API を呼び出す
  4. トークンの有効期限が切れそうになると、自動的に更新(リフレッシュ)

 

つまり、「ユーザーが明示的に許可した範囲で、CLI がユーザーの代理として動く」という透明性の高い仕組みです。

Databricks における OAuth U2M の利点

セキュリティの向上

・短命トークン:アクセストークンは1時間で自動失効するため、万が一漏洩してもリスクを最小限に抑えられます

・自動更新:リフレッシュトークンにより、ユーザーが再認証することなく安全にトークンを更新

・監査証跡:誰が、いつ、どのような操作を行ったかが明確に記録される

運用の簡素化

Databricks の新しい「統合クライアント認証」により、一度設定した認証情報を複数のツールで共有できます:

・Databricks CLI

・VS Code 拡張機能

・Python/Go/Java SDK

・Terraform Provider

これにより、ツールごとに異なる認証設定を管理する必要がなくなり、運用が大幅に簡素化されます。

Databricks CLI に OAuth U2M で認証する手順

それでは実際の設定手順を見ていきましょう。ここでは最も一般的な「ワークスペースレベル」での認証を説明します。

前提条件

・Databricks CLI v0.205 以上がインストール済み

・Databricks ワークスペースへのアクセス権限を持っている

手順 ステップ 1:ログインコマンドを実行

まず、以下のコマンドを実行します。<workspace-instance> の部分は、実際のワークスペース URL (URL は .com まで)に置き換えてください:

databricks auth login --host https://<workspace-instance>.cloud.databricks.com
ステップ 2:ブラウザで認証

コマンドを実行すると自動的にブラウザが起動し、Databricks のログイン画面が表示されます。組織で SSO(Single Sign-On)を使用している場合は、そちらでログインします。

ログインが成功すると、CLI への権限委譲を確認する画面が表示されるので、「許可」をクリックします。

ステップ 3:プロファイル名を設定

ブラウザでの認証が完了すると、ターミナルに戻り、プロファイル名の入力を求められます:

Enter a profile name for this host (leave blank to use 'DEFAULT'):

ここで任意の名前を入力するか、Enter キーを押してデフォルト名を使用します。このプロファイル情報は ~/.databrickscfg(Windows では %USERPROFILE%\\.databrickscfg)に保存されます。

ステップ 4:認証の確認

認証が正しく設定されたか確認しましょう:

# プロファイル一覧を表示
databricks auth profiles

# 認証の詳細を確認
databricks auth describe --host https://<workspace-instance>.cloud.databricks.com

# 現在のユーザー情報を表示
databricks current-user me
ステップ 5:動作確認

実際にコマンドを実行して、認証が機能しているか確認します:

# クラスターの一覧を取得
databricks clusters list -p <profile-name>

# ジョブの一覧を取得
databricks jobs list -p <profile-name>
トークンの保存場所と取得方法

U2M のアクセストークンは ~/.databricks/token-cache.json にキャッシュされ、期限切れ時は自動的に更新されます。

手動でトークンを取得したい場合は、以下のコマンドを使用します:

databricks auth token --host https://<workspace-instance>.cloud.databricks.com

このトークンは、他のツールや API 呼び出しで一時的に使用できます。

参考:アカウントレベルでの認証

複数のワークスペースを横断して操作する場合は、アカウントコンソールに対して認証を行います:

databricks auth login --host <https://accounts.cloud.databricks.com> --account-id <account-id>

基本的な流れはワークスペースレベルと同じですが、より広範な権限での操作が可能になります。

おわりに

以上で、Databricks CLI を OAuth U2M で安全に使う準備は完了です。統合クライアント認証に沿っておくと、CLI 以外(VS Code 拡張、SDK、Terraform など)でも同じプロファイルや環境変数を再利用でき、運用がシンプルになります。

参照

Authorize user access to Databricks with OAuth(CLI からのログイン方法、トークンキャッシュの場所など)

[blogcard url=”https://docs.databricks.com/aws/ja/dev-tools/auth/oauth-u2m”]

Authentication for the Databricks CLI(v0.205+ / Public Preview、U2M/M2M、PAT 非推奨の位置づけ)

[blogcard url=”https://docs.databricks.com/aws/ja/dev-tools/cli/authentication”]

auth コマンド リファレンスauth login / profiles / describe / token の詳細、~/.databrickscfg の既定パス)

[blogcard url=”https://docs.databricks.com/aws/ja/dev-tools/cli/reference/auth-commands”]

Databricks client unified authentication(クライアント統合認証の考え方と適用順序)

[blogcard url=”https://docs.databricks.com/aws/ja/dev-tools/auth/unified-auth”]

Install or update the Databricks CLI(インストール手順)

[blogcard url=”https://docs.databricks.com/aws/ja/dev-tools/cli/install”]

 

CTA
  • URLをコピーしました!
  • URLをコピーしました!
この記事を書いた人
目次