Windowsのスケジュールされたタスクのクレデンシャルをローテーション

概要

こちらの例では、Keeper PAMを介してパスワードをローテーションしているサービスアカウントとして実行されているWindowsのスケジュールタスクのクレデンシャルをローテーションします。

PowerShellスクリプトを使用

前提条件

これらのスクリプトを使用するには、PowerShell 7が対象のマシンで利用可能で、Enable-PSRemotingを使用して PowerShell 7によるリモート処理が有効になるようにセットアップする必要があります。

記録からパラメータを抽出

ローテーションされる記録内のデータは、BASE64でエンコードされたJSON文字列を介してスクリプトに渡されて利用できるようになります。スクリプトの実行が終了すると、Clear-History が実行され、今後のPowerShellセッションで記録データは利用できなくなります。

# The Gateway will execute your script as follows
"BASE64STRING==" | .\your-script.ps1; Clear-History

バッチファイルを使用

前提条件

以下の例のスクリプトを実行するには、対象サーバー上でRemote Procedure Call (RPC) サービスとWindows Management Instrumentationサービスが有効になっていて実行されている必要があります。

サービスアカウントの認証情報をローテーションするには、ユーザー (この場合はゲートウェイのユーザーアカウント) が対象マシンの管理者グループのメンバーである必要があります。つまり、ゲートウェイは、デフォルトのSYSTEMユーザーとして実行するのではなく、適切なレベルの特権が割り当てられたサービスアカウントとして実行する必要があります。

本例では一般的に使用されるツールであるjqを使用して、記録データを含むスクリプトに渡されるJSONデータを解析するために、します。jqコマンドがインストール済みでPATHにあることを前提としています。

記録からパラメータを抽出

ローテーションされる記録内のデータは、BASE64でエンコードされたJSON文字列を介してスクリプトに渡されて利用できるようになります。

# The Gateway will execute your script as follows
"BASE64STRING==" | .\your-script.bat && echo ####RC %errorlevel%

最終更新