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

概要
KeeperDBは、管理対象のデータベースへの対話型かつパスワードレスなゼロトラストアクセスのために、ボルトに組み込まれたデータベース管理アプリケーションです。KeeperDBプロキシは、MySQL Workbench、Microsoft SQL Server Studio、DBeaver、KeeperDBのネイティブアプリなど、任意のネイティブアプリケーションからゼロトラストで接続でき、KeeperDBの機能を拡張します。
KeeperDBプロキシを有効にすると、一時的なデータベース認証情報がゲートウェイ経由でボルトから対象データベースへ直接渡ります。ユーザーはデータベースクライアントをローカルポートに接続するだけでよく、パスワードは不要です。
本機能には、Keeperゲートウェイ のバージョン1.8以降が必要です。
主な利点
ゼロ知識でのデータベースアクセス
ユーザーは認証情報を閲覧したり入力したりせずに接続できる
データベースクライアントへのパスワードのコピー/貼り付けが不要
認証情報がクリップボードやローカルアプリに露出しない
ボルトからデータベースまで一貫したゼロ知識アクセス
セッション管理
アイドルタイムアウト…非アクティブなセッションの自動終了
最大継続時間…セッション時間の上限適用
接続数の上限…同時接続数の制御
ログの強化…セッション活動の詳細記録
対応データベース

MySQL
MariaDB
PostgreSQL
SQL Server
Oracle
動作の仕組み

ユーザーがKeeperデスクトップからデータベーストンネルを開始します。
ゲートウェイがKeeperDBプロキシを起動し、ボルトから認証情報を取得します。
ユーザーはデータベースクライアントを
localhost:<port>に接続し、パスワードは不要です。プロキシが対象データベースへの認証を自動で行います。
ユーザーは認証情報を見ることなく、データベースへフルアクセスできます。
認証情報のセキュリティ
ユーザーに露出しない: 認証情報はボルトからプロキシ、データベースへと直接渡る
ゲートウェイに保存されない: セキュアなハンドシェイクによりセッションごとに渡される
クリップボードに載らない: 機微なパスワードのコピー/貼り付けが不要
監査証跡: アクセスはKeeperを通じてすべて記録される
KeeperDBプロキシの有効化
要件
Keeperゲートウェイのバージョン1.8.0以降がデプロイされていること
ボルトのバージョン17.6、またはKeeperコマンダーCLIのバージョン17.2.8以降であること
PAM構成でトンネルが有効になっていること
ロールのポリシーでユーザーがトンネルを作成できること
PAMデータベースのレコードでトンネルおよびKeeperDBプロキシが有効になっていること
初期のトンネル構成についてはトンネルをご参照ください



有効にすると、本構成を使うデータベーストンネルでは、認証情報なしでアクセスできます。
注: プロキシが利用できない場合、トンネルは標準モードへ切り替わり、ユーザーが手動で認証情報を入力する必要があります。
Keeperデスクトップアプリからの有効化
デスクトップアプリで [トンネルを開始] をクリックしてトンネルとKeeperDBプロキシを有効にします。起動用の認証情報は接続ストリームに自動で注入されます。

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

ネイティブのデータベース管理ツール
ローカルのデータベース管理ツール (MySQL Workbench、DBeaver、KeeperDBデスクトップなど) では、Keeperのレコードに表示されたホスト名とポートを指定します。パスワードは不要です。
KeeperDBデスクトップアプリを使用する場合は、データベースの種類、ホスト、ポート、および開くデータベースを選択し、[接続] をクリックします。

KeeperDBデスクトップアプリケーションの詳細は、KeeperDB をご参照ください
MySQL Workbenchなどの他のデータベースツールも同じ手順で利用できます。

KeeperコマンダーからKeeperDBプロキシを有効化
Keeperコマンダーでは、特定のレコードに対してKeeperDBプロキシ付きのトンネルを有効にできます。
有効にしたら、トンネルを開始します。
ローカルのホスト名とポートは、Keeperコマンダーの出力に表示されます。
一時アカウント (ジャストインタイム)
KeeperDBプロキシでは、データベースアクセス向けにジャストインタイム (JIT) の一時アカウントを利用できます。静的な認証情報の代わりに、オンデマンドで一時的なデータベースユーザーが作成され、セッション終了時に自動削除されます。

一時アカウントの動作
ユーザーがJITが有効なデータベースへトンネルを開始します。
ゲートウェイがランダムなユーザー名の一時データベースユーザーを作成します。
構成済みのロールがエフェメラルユーザーに付与されます。
KeeperDBプロキシがエフェメラル認証情報で認証します。
セッション終了時にユーザーとロールのメンバーシップが自動でクリーンアップされます。
エフェメラルアクセスの構成
KeeperPAMリソースのレコードで [JIT一時アカウント] を有効にします。
[グループとロールの昇格] を構成します。
[昇格方法] を
roleに設定します。[昇格文字列] をデータベースのロール (カンマ区切り) に設定します。
対象データベースに、適切な権限を持つロールが存在することを確認します。
データベースロールの作成
付与する前に、データベース上にロールが存在している必要があります。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
トラブルシューティング
認証情報の入力を求められる
原因: プロキシが無効であるか、起動していない可能性があります。
対処
PAM設定でKeeperDBプロキシ (
allowKeeperDBProxyなど) が有効かどうかを確認します。ゲートウェイのバージョンが1.8.0以降であることを確認します。
ゲートウェイのログに
Starting database proxy on-demand...と出力されているか確認します。
手動認証へのフォールバック
ログメッセージ: Database proxy is enabled but not running - falling back to direct tunnel mode
原因: プロキシの起動に失敗しています。トンネル自体は動作しますが、認証情報の手入力が必要になります。
対処
ゲートウェイのログでプロキシ起動時のエラーを確認します。
ゲートウェイに
keeperdb-proxyコンポーネントがインストールされているか確認します。必要に応じてゲートウェイを再起動します。
セッションが予期せず切断された
想定される原因
アイドルタイムアウトに達した (デフォルトは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 が必要です。本設定がないと、ロールは付与されてもアクティブ化されません。構成の詳細は、一時アカウントの項をご参照ください。
最終更新

