For the complete documentation index, see llms.txt. This page is also available as Markdown.

KeeperDBプロキシ

Keeperトンネルと任意のネイティブツールによる、パスワードレスなゼロトラストのデータベースアクセス

概要

KeeperDBは、管理対象のデータベースへの対話型かつパスワードレスなゼロトラストアクセスのために、ボルトに組み込まれたデータベース管理アプリケーションです。KeeperDBプロキシは、MySQL Workbench、Microsoft SQL Server Studio、DBeaver、KeeperDBのネイティブアプリなど、任意のネイティブアプリケーションからゼロトラストで接続でき、KeeperDBの機能を拡張します。

KeeperDBプロキシを有効にすると、一時的なデータベース認証情報がゲートウェイ経由でボルトから対象データベースへ直接渡ります。ユーザーはデータベースクライアントをローカルポートに接続するだけでよく、パスワードは不要です。

本機能には、Keeperゲートウェイ のバージョン1.8以降が必要です。

主な利点

ゼロ知識でのデータベースアクセス

  • ユーザーは認証情報を閲覧したり入力したりせずに接続できる

  • データベースクライアントへのパスワードのコピー/貼り付けが不要

  • 認証情報がクリップボードやローカルアプリに露出しない

  • ボルトからデータベースまで一貫したゼロ知識アクセス

セッション管理

  • アイドルタイムアウト…非アクティブなセッションの自動終了

  • 最大継続時間…セッション時間の上限適用

  • 接続数の上限…同時接続数の制御

  • ログの強化…セッション活動の詳細記録

対応データベース

  • MySQL

  • MariaDB

  • PostgreSQL

  • SQL Server

  • Oracle

動作の仕組み

  1. ユーザーがKeeperデスクトップからデータベーストンネルを開始します。

  2. ゲートウェイがKeeperDBプロキシを起動し、ボルトから認証情報を取得します。

  3. ユーザーはデータベースクライアントを localhost:<port> に接続し、パスワードは不要です

  4. プロキシが対象データベースへの認証を自動で行います。

  5. ユーザーは認証情報を見ることなく、データベースへフルアクセスできます。

認証情報のセキュリティ

  • ユーザーに露出しない: 認証情報はボルトからプロキシ、データベースへと直接渡る

  • ゲートウェイに保存されない: セキュアなハンドシェイクによりセッションごとに渡される

  • クリップボードに載らない: 機微なパスワードのコピー/貼り付けが不要

  • 監査証跡: アクセスはKeeperを通じてすべて記録される


KeeperDBプロキシの有効化

要件

  • Keeperゲートウェイのバージョン1.8.0以降がデプロイされていること

  • ボルトのバージョン17.6、またはKeeperコマンダーCLIのバージョン17.2.8以降であること

  • PAM構成でトンネルが有効になっていること

  • ロールのポリシーでユーザーがトンネルを作成できること

  • PAMデータベースのレコードでトンネルおよびKeeperDBプロキシが有効になっていること

  • 初期のトンネル構成についてはトンネルをご参照ください

PAM構成でトンネルを有効にする
ロールの強制ポリシー (トンネルの開始を許可)
PAM設定でトンネルとKeeperDBプロキシを有効にする

有効にすると、本構成を使うデータベーストンネルでは、認証情報なしでアクセスできます。

: プロキシが利用できない場合、トンネルは標準モードへ切り替わり、ユーザーが手動で認証情報を入力する必要があります。

Keeperデスクトップアプリからの有効化

デスクトップアプリで [トンネルを開始] をクリックしてトンネルとKeeperDBプロキシを有効にします。起動用の認証情報は接続ストリームに自動で注入されます。

トンネルを開始

ローカルのホスト名とポートが表示されます。ネイティブのデータベース管理アプリでこの情報を使います。

KeeperDBプロキシのトンネルパラメータ

ネイティブのデータベース管理ツール

ローカルのデータベース管理ツール (MySQL Workbench、DBeaver、KeeperDBデスクトップなど) では、Keeperのレコードに表示されたホスト名とポートを指定します。パスワードは不要です。

KeeperDBデスクトップアプリを使用する場合は、データベースの種類、ホスト、ポート、および開くデータベースを選択し、[接続] をクリックします。

KeeperDBプロキシでのKeeperDBデスクトップの利用
  • KeeperDBデスクトップアプリケーションの詳細は、KeeperDB をご参照ください

MySQL Workbenchなどの他のデータベースツールも同じ手順で利用できます。

KeeperDBトンネルでのMySQL Workbenchの利用

KeeperコマンダーからKeeperDBプロキシを有効化

Keeperコマンダーでは、特定のレコードに対してKeeperDBプロキシ付きのトンネルを有効にできます。

有効にしたら、トンネルを開始します。

ローカルのホスト名とポートは、Keeperコマンダーの出力に表示されます。


一時アカウント (ジャストインタイム)

KeeperDBプロキシでは、データベースアクセス向けにジャストインタイム (JIT) の一時アカウントを利用できます。静的な認証情報の代わりに、オンデマンドで一時的なデータベースユーザーが作成され、セッション終了時に自動削除されます。

JITによるエフェメラルデータベースユーザーの作成

一時アカウントの動作

  1. ユーザーがJITが有効なデータベースへトンネルを開始します。

  2. ゲートウェイがランダムなユーザー名の一時データベースユーザーを作成します。

  3. 構成済みのロールがエフェメラルユーザーに付与されます。

  4. KeeperDBプロキシがエフェメラル認証情報で認証します。

  5. セッション終了時にユーザーとロールのメンバーシップが自動でクリーンアップされます。

エフェメラルアクセスの構成

  1. KeeperPAMリソースのレコードで [JIT一時アカウント] を有効にします。

  2. [グループとロールの昇格] を構成します。

    • [昇格方法]role に設定します。

    • [昇格文字列] をデータベースのロール (カンマ区切り) に設定します。

  3. 対象データベースに、適切な権限を持つロールが存在することを確認します。

データベースロールの作成

付与する前に、データベース上にロールが存在している必要があります。MySQLの例です。

MySQLロールの構成

MySQL 8.0以降では、ロールを明示的にアクティブ化する必要があります。一時アカウントを正しく動かすには、以下の設定が必要です。

必須のMySQL設定:

恒久的に有効にする場合は、MySQLの構成ファイル (my.cnf) に以下を追加します。

本設定がないと、エフェメラルユーザーにはロールが付与されてもアクティブ化されず、データベースにアクセスできません。

PostgreSQLおよびSQL Server

MySQLとは異なり、PostgreSQLとSQL Serverでは付与と同時にロールが有効になり、追加の構成は不要です。

構成

デフォルトの動作

  • アイドルタイムアウト: 非アクティブが5分続くとセッションを終了する

  • 最大継続時間: セッションの上限は最大1時間

  • 最大接続数: 同時接続は最大100まで

環境変数

  • KEEPER_GATEWAY_DB_PROXY_IDLE_TIMEOUT_SECS

    • 説明: セッションのアイドルタイムアウト (秒)

    • デフォルト: 300 (5分)

  • KEEPER_GATEWAY_DB_PROXY_MAX_DURATION_SECS

    • 説明: セッションの最大継続時間 (秒)

    • デフォルト: 3600 (1時間)

  • KEEPER_GATEWAY_DB_PROXY_MAX_CONNECTIONS

    • 説明: 許容する同時接続の最大数

    • デフォルト: 100

  • KEEPER_GATEWAY_DB_PROXY_MAX_QUERIES

    • 説明: セッションあたりのクエリ数の上限 (0は無制限)

    • デフォルト: 0

  • KEEPER_GATEWAY_DB_PROXY_SINGLE_CONNECTION

    • 説明: セッションあたり1接続に限定する

    • デフォルト: false

トラブルシューティング

認証情報の入力を求められる

原因: プロキシが無効であるか、起動していない可能性があります。

対処

  1. PAM設定でKeeperDBプロキシ (allowKeeperDBProxy など) が有効かどうかを確認します。

  2. ゲートウェイのバージョンが1.8.0以降であることを確認します。

  3. ゲートウェイのログに Starting database proxy on-demand... と出力されているか確認します。

手動認証へのフォールバック

ログメッセージ: Database proxy is enabled but not running - falling back to direct tunnel mode

原因: プロキシの起動に失敗しています。トンネル自体は動作しますが、認証情報の手入力が必要になります。

対処

  1. ゲートウェイのログでプロキシ起動時のエラーを確認します。

  2. ゲートウェイに keeperdb-proxy コンポーネントがインストールされているか確認します。

  3. 必要に応じてゲートウェイを再起動します。

セッションが予期せず切断された

想定される原因

  • アイドルタイムアウトに達した (デフォルトは5分)

  • 最大継続時間に達した (デフォルトは1時間)

対処: 用途に合わせてタイムアウト設定を調整してください。

よくある質問

パスワードを持たないユーザーはどう接続しますか。

localhost:<port> に、パスワードなしまたはプレースホルダーで接続します。プロキシが接続を受け取り、実際の認証情報を自動で注入します。

ユーザーはボルトで認証情報を閲覧できますか。

認証情報の表示はKeeperの権限で制御されます。パスワードを表示する権限がなくても、トンネルへのアクセスだけを付与できます。

すべてのデータベースクライアントで動作しますか。

はい。KeeperDBデスクトップ、MySQL Workbench、pgAdmin、Microsoft SQL Studio、Azure Data Studio、DBeaver、コマンドラインクライアント、標準的なデータベースプロトコルで接続するツールで利用できます。

プロキシが利用できない場合はどうなりますか。

トンネルは標準モードへ切り替わります。接続は可能ですが、認証情報の手動入力が必要です (ボルトで閲覧権限がある場合)。

プロキシで一時アカウントは使えますか。

はい。ボルトでJIT一時アカウントが有効な場合、セッションごとに一時的なデータベースユーザーが作成され、セッション終了時に自動削除されます。恒常的な認証情報が存在しないため、セキュリティ面では最も高い水準になります。

エフェメラルMySQLユーザーに権限が付きません。理由は何ですか。

MySQL 8.0以降では、ロールを自動で有効にするために activate_all_roles_on_login = ON が必要です。本設定がないと、ロールは付与されてもアクティブ化されません。構成の詳細は、一時アカウントの項をご参照ください。

最終更新