コマンダー 18.0.0
2026年5月1日リリース
Keeperコマンダー 18.0.0
本リリースでは、Keeper API を通じてフォルダ、レコード、共有、権限を管理できる新しいコマンドスイートKeeperDriveが追加されました。あわせてPAM向けのKCM/Guacamoleインポート、ローテーション状態のJSON出力、トンネルの自動化モード、既存アプリケーションへのKSMトークン追加機能も導入されています。
KeeperDrive
フォルダ、レコード、共有、権限を扱う kd-* コマンド群が追加されました。すべてのコマンドは認証と同期済みのボルトが必要です。これらのコマンドは機能フラグによって制御されており、許可されたユーザーのみコマンドが表示されます。
完全なリファレンスは KEEPER_DRIVE_COMMANDS.md をご参照ください。
権限ロール
フォルダおよびレコードコマンドでサポートされる共有ロールは、以下の5種類です。
viewer
参照のみ
shared-manager
アクセス付与を管理可能
content-manager
レコードの追加、編集が可能
content-share-manager
レコードの追加、削除、編集、アクセス管理が可能
full-manager
フルコントロール
フォルダコマンド
kd-mkdir— フォルダを作成。--color {none,red,orange,yellow,green,blue,gray}に対応しており、--no-inheritで権限継承を無効化できます。フォルダ名内の/をリテラル文字として扱う場合は//を使用します。kd-rndir— フォルダ名の変更、色の変更、権限継承の切り替え (--inherit/--no-inherit) を実行。-qを指定すると確認メッセージを表示しません。kd-list— ローカルキャッシュからKeeperDriveのフォルダとレコードを一覧表示。--folders/--recordsによるフィルタリング、--format {table,csv,json}および--output FILEによるエクスポートに対応。各行には共有状態およびアクセスユーザー数が表示されます。kd-rmdir— フォルダを削除。実行前に必ず影響範囲のプレビューが表示されます。モード:folder-trash(デフォルト、復元可能) またはdelete-permanent(完全削除、復元不可)。--force、--dry-run、--quietに対応。1回の実行で削除できるフォルダ数は最大100件です。kd-share-folder— 1つ以上のフォルダに対し、1人以上の受信者へアクセスを付与または削除 (-a {grant,remove})。-eは繰り返し指定可能。@existing/@currentはフォルダ内の現在の全ユーザーを対象にします。--expire-at <ISO>または--expire-in <30d|6mo|1y|24h|30mi|never>で期限付き共有を指定できます。
レコードコマンド
kd-record-add— レコードを作成。必須:-t TITLE、-rt TYPE。任意:-n NOTES、--folder。フィールドはtype=valueまたはtype.label=value形式で指定します。完全な文法を確認するには--syntax-helpを実行してください。kd-record-update— 1件以上のレコードのタイトル、タイプ、メモ、フィールド値を更新 (-rは繰り返し指定可能)。kd-rm— 実行前に影響範囲のプレビュー付きでレコードを削除。操作:owner-trash(デフォルト) — オーナーのゴミ箱へ移動 (復元可能)。folder-trash— フォルダから外してゴミ箱へ移動。unlink— 指定フォルダからのみ削除 (--folderが必須)。--force、--dry-runに対応。1回の実行で処理できるレコード数は最大500件です。
kd-ln— レコードを別フォルダへリンク (kd-ln <record> <folder>)。現在の場所からは削除しません。kd-shortcut list/kd-shortcut keep— 複数フォルダに存在するレコードを管理。listは--format {table,csv,json}および--outputで複数フォルダのレコードを表示。keepは1つのフォルダに残しそれ以外のフォルダからはリンク解除します。-fを指定すると確認プロンプトをスキップします。
共有コマンド
kd-share-record—-a {grant,revoke,owner}で付与 / 取り消し / 所有権移転を単一コマンドで実行。必須:-e EMAIL(繰り返し指定可)、grant時は-r ROLE。フォルダツリー一括共有の-R/--recursive、--contacts-only、--force、--dry-run、--expire-at/--expire-inに対応。既に共有済みのレコードに対して-a grantを実行した場合は、既存のロールが更新されます。kd-record-permission— フォルダ内の全レコードの共有を一括更新。-Rを指定するとサブフォルダも対象に含まれます。必須:-a {grant,revoke}、grant時は-r ROLE。実行前に必ず変更計画を表示。--forceおよび--dry-runに対応。kd-transfer-record— 1件以上のレコードの所有権を別ユーザーへ移転。この操作は取り消し不可であり、移譲後は対象レコードへのアクセス権を失います。
確認コマンド
kd-record-details— 1件以上のレコードのメタデータ (タイトル、タイプ、バージョン、リビジョン) を一括取得。--format {table,json}。kd-get— レコードまたはフォルダの詳細 (フィールド、メモ、アクセス一覧) を表示。--format {detail,json}に対応、-v/--verboseでアクセスユーザーごとの権限フラグの詳細を表示、マスク値 (パスワードなど) の表示は--unmask。
クロスタイプ検証 (#2008)
各コマンドで、対象のタイプが操作内容に適合しているか検証されるようになりました。例えば、レコード専用コマンドにフォルダUIDを指定した場合 (またはその逆の場合)、何も実行されずに終わるのではなく、明確なエラーが返されます。
PAM
pam project export (新機能)
pam project export (新機能)指定したPAMプロジェクト構成UIDのボルトグラフを走査し、 pam project import がそのまま再インポートできるJSONを出力します。
出力スキーマは
PROJECT_IMPORT_JSON_TEMPLATEと完全一致 (project、shared_folder_users、shared_folder_resources、pam_configuration、pam_data.{resources,users})。リソースUIDはKeeperレコードUIDから決定的に導出され、テナント間で再インポートしても冪等性が保たれます。
sort_keys=Trueを指定すると、Gitのdiffに適した決定論的JSONが生成されます。--output FILEを指定するとファイルへ書き出し、省略した場合は標準出力へ出力されます。インポート側で生成元を判別できるよう
tool_version: "commander-export-1.0"を出力します。pam project配下ではショートカットxとして登録されています。
pam project kcm-import / pam project kcm-cleanup (新機能)
pam project kcm-import / pam project kcm-cleanup (新機能)KCM/Guacamoleデータベースから接続を直接Keeper PAMへインポートします。
Dockerの自動検出。
グループのフィルタリング。
適応型スロットリング。
SSH、RDP、VNC、Telnet、HTTP、MySQL、PostgreSQL、Oracle、SQL Server、LDAP、Kubernetesプロトコルにわたる150以上のパラメータマッピング。
ラウンドトリップ対応: KCMインポート済みレコードは
pam_settings.connection.launch_credentials/administrative_credentials内のユーザー参照にタイトル名が使用されます。pam project exportはrecord_cacheから一度構築するエクスポート単位のタイトル→UIDインデックスでタイトル形状の値を解決するため、KCMプロジェクトをエクスポート後に再インポートしても、ユーザー一覧が保持されます。22文字のUID形状の値は、手動編集されたレコードとの後方互換性維持のため、引き続き直接UIDとして利用可能です。
pam tunnel の自動化モード (#1993)
pam tunnel の自動化モード (#1993)CI/CD、systemd、スクリプト向けの非対話型のトンネルモードが追加。さらに、プロセス間セッションレジストリにより、別プロセスの pam tunnel list / pam tunnel stop が動作します。
PAMTunnelStartCommand:
--foreground— 現在のプロセスで実行。Ctrl+Cまたは--timeoutで終了。--background— デタッチされた子プロセスを起動。親プロセスは即座に終了します。--run "<cmd>"— トンネル開始後にコマンドを実行。終了時にトンネルを自動的に停止します。ライフサイクル制御の
--timeout/--pid-file。相互排他チェックを追加。TTYなし (バッチモード) の安全な既定。
PAMTunnelListCommand / PAMTunnelStopCommand:
ファイルレジストリ経由で他プロセスが所有するトンネルも表示可能。
stopはSIGTERM (Unix) /TerminateProcess(Windows) を送り、レジストリ行を削除。
新規 keepercommander/commands/tunnel_registry.py:
<tmp>/keeper-tunnel-sessions/<pid>.jsonへのアトミックなJSON書き込み。古いエントリのクリーンアップ、重複バインド検出 (ホスト/ポート認識対応)。
POSIX環境での
0o700ディレクトリ権限設定。
pam launch の改善 (#2009)
pam launch の改善 (#2009)強制終了をユーザーへ明示。 KeeperAIによる終了は赤色の
Session terminated by KeeperAI.。管理者による終了は黄色のSession terminated by administrator.。その他の強制理由は1行のSession ended (<reason>).情報メッセージを表示。通常終了やクライアント側からの終了時は、従来どおり何も表示されません。バッチモードでの終了コードの追加。
keeper pam launch UIDはKeeperAI終了でSystemExit(40)、管理者終了でSystemExit(41)を送出し、呼び出し元で条件分岐が可能に。対話シェルでは、シェル自体を終了せずにプロンプトが復元されます。python_handlerの終了理由名テーブルを修正。従来はコード0〜6のみ (0の名称も誤り) で、以降に追加された理由をすべて取りこぼしていました。今回の修正で、現在使用される終了理由に正しく対応し、今回追加された2種類の終了理由も扱えるようになりました。レコード解決の部分一致検索対応。UID/パス/完全一致タイトルでレコードが見つからない場合、PAMレコードタイトル、ホスト、
pamHostnameフィールドへ大文字・小文字を区別しない部分一致検索が可能に。複数一致は番号付き選択メニューを表示し、非TTY環境では一覧表示して終了します。
pam rotation info --format=json (KC-1230)
pam rotation info --format=json (KC-1230)共有の json_output_parser 経由で PAMRouterGetRotationInfo にJSON出力を追加 (--format {table,json}、 --output FILE)。
オンライン時のJSONフィールド:
オフライン時の出力: status、 ready_to_rotate=false。同様の出力形式が discoveryrotation_v1.py にも適用され、挙動が統一されました。
シークレットマネージャー
secrets-manager token add <APP_UID_OR_NAME> (新機能)
secrets-manager token add <APP_UID_OR_NAME> (新機能)既存の client add フローを利用した軽量ラッパーコマンドが追加。運用担当者や自動化スクリプトから、既存の KSM アプリケーションに対してワンタイムアクセストークンを追加できるようになりました。従来はアプリ作成時のみトークン生成が可能だった制限を解消しています。
対応オプション (client add と同一):
実装は KSMCommand.add_client() へ完全に委譲し、新しいAPIは追加されていません。
修正
pam project importで重複UIDを拒否。process_dataがUID正規化ループ後にリソースおよびネストされたユーザーへ割り当てられたすべてのUID値を集約し、同一UIDが複数存在する場合は明確なエラーを返して処理を中断するようになりました。重複UIDが存在すると依存関係グラフが曖昧になり、レコード作成時にリンクエラーが発生してもエラーが表示されない不具合がありました。なお、外部から指定された有効かつ一意なUIDは、従来どおりそのまま利用できます。
最終更新

