認証について
ベータ版
Lakebase Postgres (オートスケール Beta) は、 Lakebase の次のバージョンであり、評価のみに利用できます。 本番運用ワークロードの場合は、 Lakebase Public Previewを使用します。 どのバージョンが適しているかを判断するには、バージョンの選択を参照してください。
Lakebase データベース プロジェクトでの認証の仕組みを学習します。詳細な接続手順については、 「接続の概要」を参照してください。
概要
Lakebase は、それぞれ異なるユースケース向けに設計された 2 つの認証方法をサポートしています。
OAuth仮想認証: 時間制限のあるOAuth仮想マシンを持つDatabricks ID を使用します。 最適な用途:
- トークンを更新できるインタラクティブセッション
- ワークスペース統合ワークフロー
- Databricksで認証を管理したい場合
ネイティブ Postgres パスワード認証: パスワードを使用した従来の Postgres ロールを使用します。最適な用途:
- 1時間ごとに認証情報を更新できないアプリケーション
- 長時間実行されるプロセス
- トークンローテーションをサポートしていないツール
Databricks ID と Postgres ロールは別個のシステムであり、自動同期は行われません。Databricks ID が Postgres を介してデータベースにアクセスできるようにするには、対応する Postgres ロールを作成する必要があります。「Postgres ロールの作成と管理」を参照してください。
接続タイムアウト
認証方法に関係なく、すべてのデータベース接続には次の制限が適用されます。
- 24 時間アイドル タイムアウト: 24 時間アクティビティがない接続は自動的に閉じられます。
- 最大 3 日間の接続寿命: 3 日を超えて存続している接続は、アクティビティに関係なく閉じられる場合があります。
適切なタイムアウト設定を使用して接続再試行ロジックを実装し、接続タイムアウトを適切に処理するようにアプリケーションを設計します。
OAuth認証
OAuth トークン認証を使用すると、Databricks ID を使用して接続できます。Lakebase UI から時間制限のある OAuth トークンを生成し、Postgres に接続するときにパスワードとして使用します。
プロジェクトオーナーの OAuth ロールは自動的に作成されます。他の Databricks ID の OAuth 認証を有効にするには、 databricks_auth拡張機能と SQL を使用して Postgres ロールを作成する必要があります。「SQL を使用して DB ID の OAuth ロールを作成する」を参照してください。
OAuthバンクの仕組み
- OAuth 有効期限: OAuth 1 時間後に期限切れになります。
- 有効期限の適用: トークンの有効期限はログイン時にのみ適用されます。トークンの有効期限が切れた後も、開いている接続はアクティブなままになります。
- 再認証: トークンの有効期限が切れると、すべての Postgres クエリまたはコマンドが失敗します。
- 一回更新: インタラクティブなセッションの場合、必要に応じて UI から新しい一回を生成します。
要件と制限
- 対応する Postgres ロールが必要です : Databricks ID には対応する Postgres ロールが必要です。プロジェクトオーナーのロールは自動的に作成されます。その他の Databricks ID の場合は、 databricks_auth拡張機能を使用してロールを作成します。
- ワークスペースのスコープ : OAuthインストールはワークスペースのスコープであり、データベース プロジェクトを所有する同じワークスペースに属している必要があります。 ワークスペース間のトークン認証はサポートされていません。
- SSL が必要 : トークンベースの認証には SSL 接続が必要です。すべてのクライアントは SSL (通常はsslmode=require) を使用するように構成する必要があります。
OAuthローンの取得
OAuth トークンは Lakebase UI から取得できます。詳細な手順については、 「OAuth ロールを使用して接続する」を参照してください。
Postgresのパスワード認証
ネイティブ Postgres パスワード認証では、パスワードを使用した従来の Postgres ロールが使用されます。OAuth トークンとは異なり、これらのパスワードは 1 時間経過しても期限切れにならないため、頻繁な資格情報のローテーションを処理できないアプリケーションに適しています。
Postgresパスワードを使用する場合
次の場合に Postgres パスワード認証を使用します。
- アプリケーションまたはツールは1時間ごとに認証情報を更新できません
- 安定した資格情報を必要とする長時間実行されるプロセスがある
- クライアント ライブラリは OAuth トークンのローテーションをサポートしていません
- 互換性のために従来のデータベース認証が必要です
Postgresのパスワードの仕組み
- パスワードの有効期間 : パスワードは自動的に期限切れにならない
- ワークスペース統合なし : 認証は Databricks ワークスペース認証ではなく Postgres によって処理されます
- 手動管理 : パスワードは手動でローテーションし、ユーザーに配布する必要があります。
- 接続タイムアウトは引き続き適用されます : パスワードに有効期限はありませんが、接続には24時間のアイドルタイムアウトと最大7日間の接続寿命が適用されます。
セキュリティに関する考慮事項
- パスワードの保存 : 環境変数または秘密管理システムを使用してパスワードを安全に保存します
- SSL が必要です : すべての接続で SSL を使用する必要があります ( sslmode=require)
- パスワードの配布 : ロールを作成するときにパスワードを 1 回だけ受け取ります。安全に保管してください
次のステップ
- 接続の概要- OAuth トークンまたは Postgres パスワードを使用して接続するための手順
- Postgres ロールの管理- データベース アクセス用の Postgres ロールを作成および管理します
- 権限の管理- Postgres ロールにデータベース権限を付与する
- データのクエリ- データベースをクエリするためのさまざまなオプションについて学習します