メインコンテンツまでスキップ

データベース・インスタンスに対する認証

備考

プレビュー

この機能は、us-east-1us-west-2eu-west-1ap-southeast-1ap-southeast-2eu-central-1us-east-2ap-south-1のリージョンでパブリック プレビューとして提供されています。

このページでは、Lakebase データベースインスタンスに対して認証する方法について説明します。認証には、次の 2 つの方法があります。

  1. OAuth トークンを取得し、Databricks ID を使用して認証します。
  2. パスワードでネイティブのPostgresロールを使用します。

Databricks ID で認証する

Databricks ID として認証する場合は、OAuth トークンを生成し、Postgres に接続するときにパスワードとして使用する必要があります。

開始前の考慮事項

  • OAuth トークンは 1 時間後に期限切れになりますが、有効期限はログイン時にのみ適用されます。オープン接続は、トークンの有効期限が切れてもアクティブなままです。ただし、認証を必要とする PostgreSQL コマンドは、トークンの有効期限が切れている場合は失敗します。

  • Postgres 認証に使用される OAuth トークンはワークスペース スコープであり、データベース インスタンスを所有するのと同じワークスペースに属している必要があります。クロスワークスペーストークン認証はサポートされていません。認証の詳細については、「 Databricks CLI の認証」を参照してください。

  • トークンベースの認証ではプレーンテキストのパスワードが必要なため、SSL 接続のみが許可されます。トークンベースの認証でPostgresにアクセスするために使用するクライアントライブラリが、SSL接続を確立するように構成されていることを確認します。

ユーザーからマシンへのフローで OAuth トークンを取得する

データベース所有者、管理者、または Databricks ID にデータベース インスタンスに対応する Postgres ロールがある場合は、UI、Databricks CLI、または Databricks SDK の 1 つから OAuth トークンを取得できます。Databricks CLI を使用して、トークンのスコープを適切に制限できます。

その他の Databricks ID ユーザーについては、OAuth トークンを取得するためのワークスペース レベルの承認手順については、「 OAuth を使用して Databricks へのユーザー アクセスを承認する」 を参照してください。

データベース インスタンスの [ステータス][使用可能] の場合は、Databricks UI を使用して OAuth トークンを取得します。

  1. データベース・インスタンスの詳細 ページで、 OAuth トークンの取得 をクリックします。フラグは、トークンがいつ作成されたかを示します。
  2. [OAuthToken をコピー] をクリックして、トークンをクリップボードにコピーします。次の手順では、この値を指定された接続文字列に置き換える必要があります。
  3. 指定された 接続文字列 に続くコピー アイコンをクリックします。

マシン間フローでの OAuth トークンの取得

データベースインスタンスへのセキュアで自動化された (マシン間) アクセスを有効にするには、Databricksサービスプリンシパルを使用してOAuthトークンを取得する必要があります。このプロセスには、サービスプリンシパルの構成、資格情報の生成、認証用のトークン OAuth 鋳造が含まれます。

  1. 無期限の有効期間の資格情報を使用してサービスプリンシパルを設定します。 手順については、「サービスプリンシパルアクセスをOAuthでDatabricksに許可する」を参照してください。
  2. 新しい OAuth トークンをサービスプリンシパルとして鋳造します。

データベース インスタンスの [状態 ] が [使用可能] の場合は、Databricks CLI v0.256.0 以降を使用して OAuth トークンを取得します。

  1. 次のコマンドを使用して、トークンをフェッチします。

    Bash
     databricks database generate-database-credential \
    --request-id $(uuidgen) \
    --json '{
    "instance_names": ["db-instance-name"]
    }'
  2. これにより、次の形式で応答が生成されます。応答から token をコピーします。

    JSON
    {
    "expiration_time": "2025-08-24T14:15:22Z",
    "token": "<string>"
    }
注記

時間単位の有効期限が切れる前に OAuth トークンをローテーションします。

  • 使用するたびに OAuth トークンの有効期限を確認し、必要に応じて更新します。
  • または、現在の OAuth トークンを定期的に更新するようにバックグラウンド スレッドを設定します。

Databricks グループとして認証する

グループとグループのメンバーシップは、 Databricks からPostgresに同期されず、 Unity Catalog 権限も同期されません。 ただし、Databricks グループが Postgres に追加されると、グループ内のすべての Databricks ユーザーは、ユーザーのパスワードを使用してグループとしてログインできます。これにより、Postgres のグループ レベルで権限を管理できます。Databricksグループ ID の直接または間接のメンバー (ユーザーまたはサービスプリンシパル) は、Postgres に対して認証し、Databricks グループ Postgres ロールとしてログインできます。

ユーザーまたはサービスプリンシパル トークンを使用してグループ ID として認証する場合、グループ メンバーシップは認証時にのみ検証されます。 グループメンバートークンとの以前に開いていた接続は、認証後にメンバーがグループから削除された場合、閉じられません。削除されたグループメンバーからの新しい接続要求は、認証中に拒否されます。

Bash
export PGPASSWORD='<OAuth token of a group member>'
export GROUPROLENAME = <pg-case-sensitive-group-role-name>

psql -h $HOSTNAME -p 5432 -d databricks_postgres -U $GROUPROLENAME

データベースインスタンスの Databricks ワークスペースに割り当てられたグループのみが、グループベースのPostgresログインでサポートされます。 グループをワークスペースに割り当てる方法については、「 ワークスペースにグループを割り当てる」を参照してください。

Postgres ロールとパスワードを使用した認証

1 時間後の資格情報のローテーションをサポートしていないクライアントがある場合は、パスワードを使用してネイティブの Postgres ロールを作成できます。

  1. ワークスペースのサイドバーで「 コンピュート 」をクリックします。

  2. データベース・インスタンス タブをクリックします。

  3. 更新するデータベース・インスタンスを選択します。

  4. 右上の [編集] をクリックします。

  5. [Postgres ネイティブロールログインを有効にする] をオンにします。

  6. 保存 をクリックします。

  7. Postgres にログインするか、SQL エディタを使用して、パスワードを使用してロールを作成します。

    SQL
    CREATE ROLE new_role LOGIN PASSWORD 'your strong password';
  8. 新しいロールに追加の Postgres アクセス許可を付与します。PostgreSQLを使用したPostgresロールへの権限の付与を参照してください。

次のステップ

資格情報 (OAuth トークンまたはパスワード) を取得したら、データベースインスタンスに接続できます。