ポリシーのコントロール (ファイルリダイレクトの作成)
ファイルリダイレクトを使ったKEPM昇格の高度な構成

対象: システム管理者
本ページでは、Keeperエンドポイント特権マネージャー (KEPM) におけるファイルリダイレクトの構成と利用方法を取り扱います。特権昇格の要求がポリシーで許可された場合、リダイレクトにより別の実行ファイルに差し替えて起動でき、ユーザーが意図した操作を行えるようにしつつ、ポリシーで制御を維持できます。
ファイルリダイレクトとは
特権昇格の要求がポリシーで許可された場合、通常は要求された実行ファイルが昇格付きで起動されます。リダイレクトはこのフローに介入し、代わりに別の実行ファイルを起動します。
例: ユーザーがPowerShell 7 (pwsh.exe) の昇格を要求します。ポリシーは許可しますが、リダイレクトルールはWindows PowerShell 5.1 (powershell.exe) に差し替えます。ユーザーは意図したシェルを利用でき、組織は昇格起動するバイナリを制御できます。
主な動作は以下のとおりです。
リダイレクトは特権昇格イベントにのみ適用 (ファイルアクセスなど他のイベント種別では対象外)
ルールに一致した場合、呼び出し元へDENYが返され、代替実行ファイルが昇格付きで起動される
リダイレクトが無効、またはルールに一致しない場合は通常の昇格フローが続行
ポリシー評価とコントロール (MFA、正当な理由、承認) は変更なし (リダイレクトは要求が許可された後に実行)
リダイレクトルールはRedirectEvaluatorプラグイン構成の metadata.redirect に保存されます。
要件
LaunchPrivilegeElevationジョブ
デプロイ済み・登録済み。RedirectEvaluator を呼び出す check-redirect タスクを含む
RedirectEvaluatorプラグイン
プラグイン構成に metadata.redirect.enabled: true と、metadata.redirect.rules に1件以上のルールが必要
特権昇格ポリシー
ソースアプリケーションを許可するポリシー。未設定の場合は要求が拒否され、LaunchPrivilegeElevation は実行されない
SettingsUpdateポリシー
完全な RedirectEvaluator JSON (リダイレクトルール含む) をエンドポイントへプッシュし、Plugins/RedirectEvaluator.json を更新
Process Configuration Policiesジョブ
ConfigurationPolicyProcessor を実行し、SettingsUpdate ポリシーの内容をプラグインファイルへ書き込み
プラグイン設定の再読み込み
JSON ファイル更新後、サービスが新しい構成を読み込む必要あり。再読み込みは UpdateSettings ポリシー、KEPM サービスの再起動、マシンの再起動 のいずれか。KEPM 管理エンドポイントはターミナルやスクリプトから呼び出し不可 (呼び出し元プロセスは KEPM と同様に署名が必要)
UpdateSettingsポリシー (任意)
存在し前処理されると revert-all をトリガー。サービス再起動なしで設定を再読み込み
リダイレクトルールの形式
ルールはRedirectEvaluatorプラグインJSONの metadata.redirect.rules に置きます。
sourceExePattern
はい
実行ファイル名のみにマッチする正規表現 (例: pwsh\.exe)。大文字小文字を区別しない。リテラルのドットには \\. を使用
commandLinePattern
はい
完全なコマンドラインにマッチする正規表現。空に不可。任意のコマンドラインには .* を使用
elevationOnly
はい
true に設定 (特権昇格イベントにのみ適用)
nonAdminOnly
いいえ
true の場合、要求ユーザーが管理者でないときのみ適用
targetExe
はい
代替実行ファイル。完全な絶対パス、または製品が認識する短い名前のいずれかを指定。
完全な絶対パス: エンドポイント上の任意の実行ファイル (例:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe、/usr/bin/something)。そのまま使用製品が認識する短い名前: パス区切りなし (例:
Keeper.NetworkConnections)。まずJobs/bin/{name}/{name}.exe、次にPlugins/bin/{name}/{name}.exeへ解決
エンドポイント上に存在し、サービスから起動可能な実行ファイルであること
targetArguments
いいえ
代替側の引数 (多くの場合 "")。
重要: sourceExePattern と commandLinePattern は空にできません。コマンドラインに関係なくリダイレクトするには、commandLinePattern に ".*" を使います。最初にマッチしたルールが適用されます。具体的なルールを一般的なルールより前に置きます。
注: targetExe は Keeper のインストールツリーに限定されません。完全な絶対パスを指定した場合、サービスが起動できる場所であればどこでも代替実行ファイルを配置できます (例: C:\Windows\System32\...、C:\Program Files\Vendor\App.exe、/usr/local/bin/tool)。Jobs/bin および Plugins/bin のルックアップは、パス区切りのない短い名前を指定した場合にのみ適用されます。
セットアップ
特権昇格ポリシー
リダイレクトしたいアプリケーションを許可するポリシーを作成します。要求が拒否されるとLaunchPrivilegeElevationは起動せず、リダイレクトは実行されません。
管理コンソールまたはポリシーストアで特権昇格ポリシーを作成する。
PolicyTypeを
"PrivilegeElevation"、Statusを"enabled"に設定する。ApplicationCheckをソース実行ファイルに一致させる (例:
PowerShell\7\pwsh.exeを含むパス)。Controlsを昇格許可に設定する (例:
["ALLOW"]、または必要に応じてMFA/Justify/Approvalを含める)。適切なユーザーおよびマシンコレクションに割り当て、展開/同期する。
例 (概念上):
SettingsUpdateポリシー (リダイレクトルール)
このポリシーで完全なRedirectEvaluatorプラグインJSONを各エンドポイントの Plugins/RedirectEvaluator.json へプッシュします。
必須フィールド (
id、name、description、version、pluginType、executablePath、Subscription、metadataなど) をすべて含む完全なRedirectEvaluator JSONを作成する。metadata.redirect.enabledをtrueにし、metadata.redirect.rulesにルールを設定する。Extension.PluginNameを
"RedirectEvaluator"、Extension.Actionを"Update"、Extension.SettingsJsonを完全なプラグインJSONに設定したSettingsUpdateポリシーを作成する。オブジェクト形式は読みやすく、エスケープミスを防ぎやすい。適切なコレクションに割り当て、展開/同期する。
SettingsUpdateポリシーの例:
SettingsJson は id、name、executablePath、Subscription、metadata など、完全なプラグイン JSON である必要があります。
Process Configuration Policiesの実行
Process Configuration Policiesジョブ (ConfigurationPolicyProcessor) がSettingsUpdateポリシーを読み取り、各エンドポイントの Plugins/RedirectEvaluator.json に Extension.SettingsJson を書き込みます。
スケジュール: 同期後、次回の実行サイクルで自動実行されます。
オンデマンド: KeeperClientのRefreshオプションを使い、ポリシー同期と前処理を即座にトリガーします。
この手順の後、エンドポイント上のプラグインファイルにリダイレクトルールが含まれます。実行中のサービスは、設定が再読み込みされるまで (手順4) 古いメモリ上の構成を使っている場合があります。
プラグイン設定の再読み込み
プラグイン JSON ファイルを更新した後、サービスが新しい設定を読み込む必要があります。再読み込みの方法は以下のとおりです。
UpdateSettingsポリシー: ポリシー前処理時に revert-all をトリガー (手順5をご参照ください)
KEPM サービスの再起動: 起動時にディスクからプラグイン構成を読み込み。初回読み込みに最も確実
マシンの再起動: サービスの再起動と同様の効果
KEPMの管理エンドポイントは、ターミナル、PowerShell、curl、その他未署名のツールからトリガーできません。
任意: 再起動なしでリロードする UpdateSettings ポリシー
PolicyTypeを
"UpdateSettings"、Statusを"enabled"とするポリシーを作成する。適切なコレクションに割り当て、展開/同期する。
KeeperPolicyがポリシーを前処理するとき、UpdateSettingsポリシーを検出し revert-all を1回呼び出します。プラグイン設定は現在のメモリ上の構成からストレージへ再インポートされます。
注: UpdateSettingsは現在のメモリ上の構成から再インポートするだけで、ディスク上の JSON ファイルは再読み込みしません。新しい RedirectEvaluator.json を初めてプッシュするときは、サービスの再起動が最も確実です。構成が既に読み込まれている場合の再読み込みには UpdateSettings を使います。
実行時の動作
ユーザーがリダイレクトルールに一致する特権昇格要求をトリガーした場合は、以下の流れになります。
ユーザーが昇格を要求: 例: コマンドラインに
ncpa.cplを含むrundll32.exeポリシー評価: 特権昇格ポリシーが要求を許可。コントロール (MFA、正当な理由、承認) は通常どおり実行
LaunchPrivilegeElevation ジョブが開始:
metadata.redirect.enabledがtrueのとき、check-redirectタスクが実行RedirectEvaluator が呼び出される: コンテキスト (FilePath、CommandLine、IsAdmin、OriginalEventType) を渡して呼び出し。標準出力に JSON を返し、実行側がマージしてエイリアスを追加。下流タスクは
DenyOriginalRequest: true、RedirectTargetExe、RedirectTargetArgsを参照可能ジョブが結果に応じて分岐:
send-deny-redirect: 呼び出し元へ DENY を発行し、元の実行ファイルは起動されない
launch-substitute: 解決済みの代替パスと引数で launch-elevated へ HTTP POST
send-did-elevate-response: DidElevate を送信し、クライアントに成功を表示。ユーザーには代替アプリケーションが表示される
リダイレクトが無効の場合、check-redirect は DenyOriginalRequest: false を設定し、ジョブは通常のlaunch-elevatedパスを続行します。
ターゲット実行ファイルのパス解決
Keeper.NetworkConnections のような targetExe の値は、launch-substitute 呼び出しの前にタスク実行側によって完全パスへ解決されます。実行側は Jobs/bin (該当する場合は Plugins/bin) を参照します。代替起動に使われるのは、KEPM が管理する範囲内のパスのみです。
制限事項
特権昇格のみ
ファイルアクセスなど他のイベント種別では評価されない
両方のパターンが必須
sourceExePattern と commandLinePattern はともに空にできない
先にポリシーが許可している必要
昇格要求はポリシーで許可されている必要あり。拒否された場合、LaunchPrivilegeElevation は実行されず、リダイレクトは評価されない
改ざん保護
初回読み込み後に Plugins/RedirectEvaluator.json の変更を検出した場合、ホットリロードでそのファイルの読み込みをスキップすることがある。起動時にファイルを読み込むため、KEPM サービスを再起動
ターゲット実行ファイル
targetExe は、エンドポイント上に存在しサービスから起動可能な実行ファイルを指す必要あり。短い名前 (パス区切りなし) の場合は Jobs/bin または Plugins/bin 配下へ解決。それ以外は完全な絶対パスを指定
最初にマッチしたルールのみ
ルールは具体的なものから一般的なものへ順序付け
UpdateSettings の範囲
メモリ上の構成からの再インポートのみ (ディスク上の JSON は再読み込みしない)。一度も読み込まれていないファイルの読み込みにはサービスの再起動を使用
ターミナル/スクリプトからの API なし
管理エンドポイントは KEPM と同様に署名された呼び出し元プロセスが必要。ターミナル、PowerShell、curl からは呼び出し不可
関連ドキュメント
参考資料: リダイレクト: リダイレクト機能とルールフィールド
例: 設定の更新: SettingsUpdateポリシーとProcess Configuration Policiesジョブ
参考資料: プラグインとタスクの設定: プラグイン設定 API、revert-all、revert
最終更新

