Royal TS/TSX

Keeperボルトで保護されたシークレットによりSSH、RDP、SFTP、データベースセッションを開始

Keeperシークレットマネージャー (KSM)Royal TS (Windows) および Royal TSX (macOS) と組み合わせると、サーバーやデータベースに接続できます。ボルトのレコードは動的認証情報として表示され、接続時にKeeperからシークレットが取得されます。

本ページでは、公式のPythonパッケージ keeper-secrets-manager-core を介してKeeperと通信する Keeper KSM (Python) ダイナミックフォルダのインストール手順と使い方を説明します。


概要

役割

KeeperボルトのサーバーおよびデータベースレコードをRoyalのダイナミックフォルダに取り込み、接続にKeeper由来の認証情報を紐付けられるようにします。

シークレットの所在

パスワードなどの機密項目はKeeper側に残ります。接続の都度、KSM経由で参照されます。

対応プラットフォーム

Royal TS v7以降 (Windows)、Royal TSX v6以降 (macOS)。

認証方式

Keeper組織のシークレットマネージャーアプリケーションに紐付くKSM構成ファイル

本連携にはKeeperシークレットマネージャーとKSMクライアントSDKライブラリが必要です。

実行できること

  • サーバーレコードを使い、SSH、SFTP、RDPの接続に利用できます。Royalで接続を作成し、一致する動的認証情報を選びます。

  • データベースレコードでは MySQLPostgreSQLMicrosoft SQL ServerOracleMongoDBRedis のクライアントセッションを、生成された接続ツリーから開けます。Royalを実行しているマシン上のデータベースクライアント実行ファイルのパスを設定します。各レコードのデータベースサーバーローカルでもリモートでも構いません (ホストとポートはKeeperの値を使用します)。

  • 構成は両OSでボルトからJSONまたはBase64のファイルを使う方法に加え、macOSでは ksm init で得た INI ファイルも利用できます。


要件

要件
詳細

Keeperプラン

シークレットマネージャーへのアクセス (組織のプランに応じたコンシューマー、ビジネス、またはエンタープライズ)。

KSMアプリケーション

Keeper管理コンソールのシークレットマネージャーアプリケーションと、ボルトのレコードをそのアプリケーションへ共有した状態。クイックスタートガイドをご参照ください。

Royal TS (Windows)

バージョン7以降。

Royal TSX (macOS)

バージョン6以降。

Python

3.9以降 (3.13推奨)。Royal TS / Royal TSX がダイナミックフォルダのスクリプトに使う 同一python 実行ファイルであること。

Pythonパッケージ

そのPython環境に keeper-secrets-manager-core をインストール済みであること。

構成ファイル

ボルトからダウンロードしたJSONまたはBase64ファイル (WindowsおよびmacOS)、またはmacOSのみ ksm init で得た .ini

任意 — Keeperのデータベースレコードのみ使う場合

インストールするもの

Royal TS または Royal TSX をインストールしたのと同一のコンピューターに、データベースクライアント (例: mysqlpsqlsqlcmdmongoshredis-clisqlplus) をインストールします。データベースサーバー側には不要です。

Royalで設定する内容

ダイナミックフォルダのカスタムプロパティで、MySQL PathPostgreSQL Path などがそれらローカルのクライアント実行ファイルを指すようにします。実際に使うエンジンごとにパスを設定します (例: MySQLのデータベースレコードだけなら MySQL Path のみ)。

データベースの実行場所

データベースサーバーこのマシン上でもネットワーク上のどこでも構いません (クラウド、データセンター、他拠点など)。各Keeperデータベースレコードのホストポートがそのサーバーを示し、ローカルクライアントがネットワーク経由で接続します。

サーバーレコード (SSH、RDP、SFTP) のみでデータベースレコードを使わない場合は、データベースクライアントやこれらのパスは不要です。


事前準備

  1. KSMアプリケーションを新規作成または既存を利用し、構成ファイルを用意します。ボルトからJSONまたはBase64をダウンロードする方法 (WindowsおよびmacOS)、またはmacOSのみ ksm initINIを作成する方法があります。クイックスタートガイドをご参照ください。

  2. そのKSMアプリケーションにボルトのレコードを共有します。共有されていないレコードは表示されないか、接続時に認証情報の取得に失敗します。

  3. Royal Applications Toolboxからダイナミックフォルダパッケージ Keeper KSM (Python).rdfx をダウンロードします。


Windowsでのインストール (Royal TS)

1. Pythonのインストール

Python 3.9+ (3.13推奨) をインストールします。Royal TSがスクリプトに呼び出すビルドを選びます。

2. KSM Pythonパッケージのインストール

Royal TSは [ファイル][オプション][プラグイン] (スクリプトインタープリター) で設定したインタープリターを使います。その python.exe でパッケージをインストールします。

パスはRoyal TSに表示されているインタープリターに合わせて置き換えます。

3. ディスク上にKSM構成ファイルを置く

Keeperボルト[シークレットマネージャー][デバイスを追加][構成ファイル][ダウンロード] と進み、JSONまたはBase64の構成ファイルを取得します。PC上の分かりやすい場所に保存します (例: C:\Users\YourName\keeper-config.json)。

4. Royalドキュメントの新規作成または開く

新規ドキュメントを作成し保存します (例: My Connections.rtsz)。

5. ダイナミックフォルダのインポート

[ファイル][開く][インポート] → ファイルの種類に [ダイナミックフォルダ] を選び、Keeper KSM (Python) を指定して [OK]

6. カスタムプロパティの設定

Keeper Secrets Manager (Python) を右クリック → [プロパティ][カスタムプロパティ]

  • KSM Config Path (Windows) — KSM構成ファイル (.json または .base64) のフルパス。例: C:\Users\YourName\keeper-config.json

データベースクライアントのパス (データベースレコードを使う場合のみ): 各パスはこのWindows PC上のクライアントツールを指します。接続先データベースのホストポートはここには入力せず、各Keeperデータベースレコードから取得します。実際に使うエンジンの行だけ設定します。

カスタムプロパティ

MySQL Path (Windows)

C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe

PostgreSQL Path (Windows)

C:\Program Files\PostgreSQL\16\bin\psql.exe

MSSQL Path (Windows)

C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE

Oracle Path (Windows)

C:\oracle\instantclient\sqlplus.exe

MongoDB Path (Windows)

C:\Program Files\MongoDB\mongosh.exe

Redis Path (Windows)

C:\Program Files\Redis\redis-cli.exe または C:\Program Files\Memurai\memurai-cli.exe

7. フォルダの再読み込み

ダイナミックフォルダを右クリック → [再読み込み]。ツリーを展開し、認証情報が表示されることを確認します。

任意: データベースクライアントのインストール (Windows)

Royal がデータベースクライアントを起動できるよう、お使いのPC上にインストールします。接続先は各Keeperレコードのホストに従い、ローカルまたはリモートのデータベースになります。ベンダー公式のWindows用インストーラーまたはパッケージで、必要なクライアントだけをインストールしてください。

エンジン
一般的な手順

MySQL

MySQL Installer (クライアントツール / シェル) または単体のMySQL Shellビルド。インストール後の mysql.exe のパスをカスタムプロパティに指定します。

PostgreSQL

Windows用インストーラpsql.exe を含みます (多くの場合 C:\Program Files\PostgreSQL\<version>\bin\)。

Microsoft SQL Server

Microsoftの sqlcmdおよびODBCツール (多くの場合 ...\Microsoft SQL Server\Client SDK\ODBC\...\Binn\。インストール済みバージョンに合わせる)。

MongoDB

Windows用 mongosh

Redis

redis-cliまたはMemuraimemurai-cli.exe (同一の -h / -p / -a / --user フラグ)。Redis Pathを実際の redis-cli.exe または memurai-cli.exe に合わせます。

Oracle

Oracle Instant Client (またはフルクライアント)。sqlplus.exe のパスはインストール先に依存します。

インストール後はカスタムプロパティを実際の .exe パスに合わせます (手順6の例を参照)。


macOSでのインストール (Royal TSX)

1. Pythonのインストール

Python 3.9+ (3.13推奨) をインストールします。

2. KSM Pythonパッケージのインストール

Royal TSXは [設定][プラグイン][Python] (または [設定][Python]) でPythonを選び、多くの場合バージョンメニューから指定します。そのインタープリターに keeper-secrets-manager-core をインストールします。ターミナルで which python3 の結果がRoyal TSXの選択と一致する場合は、同じ python3 で問題ありません。

確認用:

3. ディスク上にKSM構成ファイルを置く

構成ファイルの取得方法は2通りあります。いずれか一方だけ使います。

  • オプションA — ボルトの構成ファイル (JSONまたはBase64)ボルト[シークレットマネージャー][デバイスを追加][構成ファイル][ダウンロード]。(macOSではJSONを推奨します。)

  • オプションB — Keeper CLIのINIファイル — トークン取得後に ksm init default --token YOUR_TOKEN を実行します (クイックスタートガイド)。keeper.ini などの .ini が生成されます。

4. Royalドキュメントの新規作成または開く

[ファイル][新規ドキュメント][ファイル][保存]

5. ダイナミックフォルダのインポート

[ファイル][インポート][ダイナミックフォルダ]Keeper KSM (Python)[インポート]

6. カスタムプロパティの設定

Keeper Secrets Manager (Python) を右クリック → [プロパティ][カスタムプロパティ]

  • KSM Config Path (macOS)1つのファイルのフルパス: .json.base64、または .ini。例: /Users/yourname/keeper-config.json または /Users/yourname/keeper.ini

データベースクライアントのパス (データベースレコードを使う場合のみ): 各パスはこのMac上のクライアントツールです。データベースのホストポートは各Keeperデータベースレコードで定義し、カスタムプロパティには含めません。実際に使うエンジンの行だけ設定します。

カスタムプロパティ

MySQL Path (macOS)

/opt/homebrew/opt/mysql-client/bin/mysql

PostgreSQL Path (macOS)

/opt/homebrew/opt/libpq/bin/psql

MSSQL Path (macOS)

/opt/homebrew/opt/mssql-tools18/bin/sqlcmd

Oracle Path (macOS)

/usr/local/bin/sqlplus

MongoDB Path (macOS)

/opt/homebrew/bin/mongosh

Redis Path (macOS)

/opt/homebrew/bin/redis-cli

7. フォルダの再読み込み

ダイナミックフォルダを右クリック → [再読み込み] (または Cmd+R)。

任意: データベースクライアントのインストール (macOS)

Royalがデータベースクライアントを起動できるよう、お使いのMac上にインストールします。接続先は各Keeperレコードのホストに従い、ローカルまたはリモートのデータベースになります。多くのユーザーは HomebrewでCLIをインストールします。例:

Oracle Instant Clientのパスはインストール方法に依存します。


サーバーレコードの利用 (SSH、SFTP、RDP)

サーバーレコードには、ホスト、ポート、ログイン、パスワードが含まれます。Royalで接続オブジェクト (ターミナル、ファイル転送、リモートデスクトップ) を作成し、そのレコードに対応する動的認証情報に紐付けます。

SSHでは、ダイナミックフォルダが公開するサーバー認証情報グループから認証情報を選びます (SSH鍵のみの項目は、運用ガイドに別記がない限り使わないでください)。

例: SSH

Keeper — サーバーレコード

項目

タイトル

Production web

ログイン

deploy

パスワード

(ボルト内)

ホスト

203.0.113.10

ポート

22

Royal TS / Royal TSX

  1. ダイナミックフォルダを再読み込みします。

  2. [追加][ターミナル] を選択します。

  3. 接続の種類SSH接続にし、コンピューター名203.0.113.10ポート22 を設定します。

  4. [認証情報]認証情報名を指定を選び、一致するKeeperの動的認証情報を選択します。

  5. 保存して接続します。

例: SFTP

SSHと同じサーバーレコード構造を使います。ファイル転送プラグイン ([設定][プラグイン]) をインストールします。[追加][ファイル転送]SFTP でホストとポートを設定し、同様の動的認証情報を付けます。

例: RDP

Keeper — サーバーレコード

項目

タイトル

Finance workstation

ログイン

CORP\jdoe

パスワード

(ボルト内)

ホスト

192.168.50.100

ポート

3389

リモートデスクトッププラグインをインストールします。[追加][リモートデスクトップ] でホストとポートを入力し、認証情報を付けます。


データベースレコードの利用

データベースレコードは、ダイナミックフォルダ内のdatabaseCredentials配下に自動で接続エントリを生成します。データベースCLIのパスを設定して再読み込みしたら、エンジン用のサブフォルダ (例: MySQL Connections) を開き、エントリをダブルクリックします。Royalはワークステーション上のクライアントを起動し、そのクライアントがKeeperレコードに保存されたホストとポートへ接続します (同一マシンでもリモートでも可。VPNやファイアウォールなど、ネットワーク経路で到達できる必要があります)。

Keeperでデータベース種別を設定する

ボルトでデータベースレコードを作成または編集するとき、種別フィールドを設定します (標準のKeeperデータベーステンプレートでは、エンジン識別に使われるフィールドです)。連携はその値を読み取り、対応するフォルダ (MySQL ConnectionsPostgreSQL Connections など) にレコードを配置します。

種別には以下の文字列のいずれかを使います (大文字小文字は無視)。よく使う別名も受け付けます。

使いたいDB

有効な種別の例

MySQL

MySQL, MariaDB

PostgreSQL

PostgreSQL, Postgres, PG

Microsoft SQL Server

MSSQL, SQL Server, Microsoft SQL Server

Oracle

Oracle, OracleDB

MongoDB

MongoDB, Mongo

Redis

Redis

各例は同じKeeperデータベースレコード構造を使います。ホストポートは、データベースが待ち受ける場所 (ローカルまたはリモート) に合わせます。カスタムプロパティに該当クライアントのパスを入れたうえでダイナミックフォルダを再読み込みし、databaseCredentials → そのエンジンのフォルダ (例: MySQL ConnectionsPostgreSQL Connections) を開きます。Windowsでは多くの場合、データベースクライアントが外部アプリケーション経由で起動します。macOSではヘルパースクリプトがターミナルセッションでクライアントを実行します。

例: MySQL

項目

レコード種別

Database

種別

MySQL

タイトル

Staging MySQL

ログイン

appuser

パスワード

(ボルト内)

ホスト

127.0.0.1

ポート

3306

OSに合わせてMySQL Pathをカスタムプロパティに設定し、ダイナミックフォルダを再読み込みしてからdatabaseCredentialsMySQL Connectionsを開きます。

例: PostgreSQL

項目

レコード種別

Database

種別

PostgreSQL

タイトル

Staging Postgres

ログイン

postgres (またはDBユーザー)

パスワード

(ボルト内)

ホスト

127.0.0.1

ポート

5432

OSに合わせてPostgreSQL Pathをカスタムプロパティに設定し、ダイナミックフォルダを再読み込みしてから databaseCredentialsPostgreSQL Connectionsを開きます。Windowsではpsqlcmd /k 経由で実行され、コンソールが開いたままになります。

例: Microsoft SQL Server

項目

レコード種別

Database

種別

MSSQL

タイトル

Local SQL

ログイン

sa (またはSQLログイン)

パスワード

(ボルト内)

ホスト

127.0.0.1

ポート

1433 (またはTCPポート。下記ヒント参照)

OSに合わせてMSSQL Pathをカスタムプロパティに設定し、ダイナミックフォルダを再読み込みしてから databaseCredentialsMSSQL Connections を開きます。

接続がタイムアウトする場合は localhost ではなく 127.0.0.1 を使います (IPv6解決の問題)。SQL Express既定以外のポートを使うことが多いです。SQL Server構成マネージャーTCP/IPIPAllTCP PortまたはTCP Dynamic Portを確認し、その値をポートに入れます。現在の sqlcmd (ODBC Driver 18) は既定で暗号化します。本連携では -C -No を渡します (サーバー証明書を信頼し、暗号化は任意)。SSMSサーバー証明書を信頼に近い挙動です。SQLログインを使う場合、サーバーは混合モード (SQL + Windows認証) である必要があります。

例: Oracle

項目

レコード種別

Database

種別

Oracle

タイトル

Local XE

ログイン

system (またはアプリユーザー)

パスワード

(ボルト内)

ホスト

127.0.0.1 (またはリモートリスナーのホスト)

ポート

1521

カスタムプロパティのOracle Pathsqlplus (またはインストール済みパス) に設定し、ダイナミックフォルダを再読み込みしてから databaseCredentialsOracle Connectionsを開きます。連携は既定でEasy Connectの …/XEPDB1 を使います (Oracle 21c XE PDB)。別の SERVICE_NAME (XEORCL など) ではダイナミックフォルダスクリプトの編集が必要になる場合があります。Windowsではsqlpluscmd /k 経由で実行されます。

例: MongoDB

項目

レコード種別

Database

種別

MongoDB

タイトル

Dev Mongo

ログイン

(認証なしの場合は空) またはユーザー

パスワード

(ボルト内)、またはサーバーに認証がない場合は空

ホスト

127.0.0.1

ポート

27017

カスタムプロパティのMongoDB Pathmongosh に設定し、ダイナミックフォルダを再読み込みしてから databaseCredentialsMongoDB Connectionsを開きます。Windowsではmongoshcmd /k 経由で実行されます。

例: Redis

項目

レコード種別

Database

種別

Redis

タイトル

Local Memurai

ログイン

(認証なしの場合は空) またはACLユーザー名

パスワード

(認証なしの場合は空) または (ボルト内)

ホスト

127.0.0.1

ポート

6379

カスタムプロパティのRedis Pathredis-cli.exe または memurai-cli.exe に設定し、ダイナミックフォルダを再読み込みします (ログイン / パスワード を変えた場合はスクリプトが認証を検出できるよう再読み込みしてください)。その後databaseCredentialsRedis Connectionsを開きます。認証なし: ログインパスワードを空にします。requirepass: パスワードのみ設定します。ACL: ログインパスワードを設定します。Windowsではクライアントが cmd /k 経由で実行されます。


機能のまとめ

ワークフロー
Windows (Royal TS)
macOS (Royal TSX)

SSH / SFTP / RDP

手動の接続 + 動的認証情報

同様

データベースCLI

接続の自動一覧、ダブルクリック

同様


トラブルシューティング

Pythonとダイナミックフォルダ

表示・症状
想定原因
対処

ImportError または pip install keeper-secrets-manager-core の促し

Royalが使うPythonと異なる環境にパッケージを入れている

Royalの設定にあるその python.exe または python3 でインストールします。確認: python3 -c "import keeper_secrets_manager_core" (macOS)、または [ファイル][オプション][プラグイン] のWindowsパス。

externally-managed-environment (macOS)

システムPythonへのPEP 668制限

そのインタープリターで --break-system-packages を使うか、Royal TSXが使えるvenvを利用します。

KSM構成とボルトへのアクセス

表示・症状
想定原因
対処

KSM Config Path is not configured

カスタムプロパティ未設定

**KSM Config Path (Windows)またはKSM Config Path (macOS)**を設定します。

Config file not found

パス誤りまたは権限

ファイルパスと、ユーザーが読み取れることを確認します。

Record not found

KSMアプリケーションにレコード未共有

Keeperで、構成ファイルに紐付くシークレットマネージャーアプリケーションにレコードを共有します。

データベースクライアント

表示・症状
想定原因
対処

No such file or directory

実行ファイルのパスが未設定または誤り

カスタムプロパティのMySQL / PostgreSQL / … Pathを正しく設定し、再読み込みします。

Connection refused

サービス停止またはネットワーク

Keeperレコードのホスト/ポートでデータベースが待ち受け、到達できることを確認します。

MSSQL login timeout / server not found

ホスト/ポート誤りまたはTCP無効

127.0.0.1 を使います。ExpressではTCP/IPを有効にし、ポート構成マネージャーTCP/IPIPAllの値に合わせます (多くの場合 1433 ではありません)。

MSSQL certificate / SSL errors

ODBC 18 + 自己署名証明書

最新のダイナミックフォルダを再読み込み (-C -No)。手動の sqlcmd: -C -No を付与。SSMS: オプションサーバー証明書を信頼

MSSQL Login failed (SQLユーザー)

Windows認証のみ、またはログイン無効

SSMS → サーバーのプロパティセキュリティ混合モードを有効にし、SQL Serverを再起動します。ログインが存在し有効であることを確認します。

Oracleリスナーなし / タイムアウト

リスナーのホスト誤りまたはサービス停止

リスナーに合うホストを使います (ローカルでは多くの場合 127.0.0.1)。OracleのリスナーとDBサービスを起動します。LAN専用IPから変えた場合は LOCAL_LISTENERlistener.oraを揃えます。

Oracle ORA-12514

サービス未登録

SYSDBAALTER SYSTEM REGISTER を実行します。lsnrctl statusxepdb1 / XE が出ることを確認します。

Redis AUTHエラー

サーバーにパスワードがないのにパスワードを設定している

Keeperレコードのパスワードをクリアします。

macOSでのSSH (ローカル検証)

表示・症状
想定原因
対処

Connection closed またはこのMacへの繰り返し認証失敗

リモートログイン制限

システム設定共有リモートログインオプション で、ユーザーを許可するかすべてのユーザーを選びます。

リモートデスクトップ

表示・症状
想定原因
対処

HomeエディションのPCへRDPできない

RDPサーバーなし

Pro以上、Windows Server、または別の接続先を使います。


セキュリティとコンプライアンス

  • シークレットはKeeperの管理下に残り、解決された動的認証情報がRoyalドキュメントに保存されたパスワードとして書き込まれることはありません。

  • KSM構成ファイルは、ボルトへのアクセス権を持つシークレットと同様に保護します。組織の方針に従い、ファイル権限とデバイスのアクセスを制限します。

データベースのパスワードの渡し方

macOSでは、クライアントが対応する場合、パスワードをコマンドライン引数ではなく環境変数またはアクセス権を限定した一時ファイルで渡すヘルパースクリプトを使います。

クライアント
方法

MySQL

環境変数 MYSQL_PWD

PostgreSQL

環境変数 PGPASSWORD

Microsoft SQL Server

環境変数 SQLCMDPASSWORD

Oracle

モード0600の一時SQLファイルで sqlplus -L /nolog @file、終了時に削除

MongoDB

引数としてURIを渡す (mongosh には環境変数でのパスワード指定がない)

Redis

環境変数 REDISCLI_AUTH

Windowsではデータベース接続に外部アプリケーションとRoyalの認証情報トークン ($$EffectivePassword$$) を使います。Royalが起動時にコマンドラインへ値を展開します。以下の点に注意してください。

  • 解決されたシークレットがプロセス一覧に見える場合があります。外部アプリケーション方式に内在する挙動です。

  • パスワードに &%"! が含まれると、コマンドライン解釈を壊し認証に失敗することがあります。該当する場合は、外部アプリケーション経由で起動するデータベース接続では、Keeperレコードのパスワードからこれらの文字を避けることを検討してください。

macOSヘルパーファイルの安全性

  • ~/.config/royal-keeper/ 以下のランチャーおよびヘルパースクリプトは、原子的書き込み (一時ファイル → chmod → 置換) で書き込み、ディレクトリ権限は0700に設定します。

  • ランチャースクリプトに埋め込む引数はすべて shlex.quote() でエスケープし、パスに含まれる引用符やメタ文字からのシェルインジェクションを防ぎます。

Base64構成のクリーンアップ

  • .base64 のKSM構成ファイルを使う場合、デコード結果をモード0600の一時ファイルに書き、KSMセッションに使用し、スクリプト終了時に finally削除します。

最終更新