Databricks CLI に ”OAuth U2M” で認証する手順
Databricks CLIのセットアップ時にはDatabricksアカウント/ワークスペースの認証が必要です。従来のPAT(個人用アクセストークン)は非推奨となり、より安全なOAuth U2M認証への移行が推奨されています。本記事では、OAuth認証の基本概念から、Databricks CLIでの具体的な設定手順まで、初心者にも分かりやすく解説します。
目次
1 はじめに
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 以上であることを確認してください。
2 なぜ 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つの認証フローがあります:
- U2M(User-to-Machine):人間のユーザーがブラウザ経由で認証し、その権限でアプリケーション(CLI など)が動作
- M2M(Machine-to-Machine):サービスアカウントを使った、システム間の自動認証
今回扱う U2M は、以下のような仕組みで動作します:
- ユーザーがブラウザでログイン(組織の SSO 等を利用)
- Databricks がユーザーの同意を得て、1時間有効のアクセストークン を発行
- CLI がこのトークンを使って、ユーザーの代わりに Databricks API を呼び出す
- トークンの有効期限が切れそうになると、自動的に更新(リフレッシュ)
つまり、「ユーザーが明示的に許可した範囲で、CLI がユーザーの代理として動く」という透明性の高い仕組みです。
3 Databricks における OAuth U2M の利点
セキュリティの向上
・短命トークン:アクセストークンは1時間で自動失効するため、万が一漏洩してもリスクを最小限に抑えられます
・自動更新:リフレッシュトークンにより、ユーザーが再認証することなく安全にトークンを更新
・監査証跡:誰が、いつ、どのような操作を行ったかが明確に記録される
運用の簡素化
Databricks の新しい「統合クライアント認証」により、一度設定した認証情報を複数のツールで共有できます:
・Databricks CLI
・VS Code 拡張機能
・Python/Go/Java SDK
・Terraform Provider
これにより、ツールごとに異なる認証設定を管理する必要がなくなり、運用が大幅に簡素化されます。
4 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>
基本的な流れはワークスペースレベルと同じですが、より広範な権限での操作が可能になります。
5 おわりに
以上で、Databricks CLI を OAuth U2M で安全に使う準備は完了です。統合クライアント認証に沿っておくと、CLI 以外(VS Code 拡張、SDK、Terraform など)でも同じプロファイルや環境変数を再利用でき、運用がシンプルになります。
6 参照
Authorize user access to Databricks with OAuth(CLI からのログイン方法、トークンキャッシュの場所など)
Authentication for the Databricks CLI(v0.205+ / Public Preview、U2M/M2M、PAT 非推奨の位置づけ)
auth コマンド リファレンス(auth login / profiles / describe / token の詳細、~/.databrickscfg の既定パス)
Databricks client unified authentication(クライアント統合認証の考え方と適用順序)
Install or update the Databricks CLI(インストール手順)

