# CLIによるローテーション管理

{% hint style="warning" %}
従来の`rotate` (プラグインベース) および`pam rotation set`コマンドは非推奨となりました。\
`pam rotation edit`を使用してローテーションスケジュールを設定し、`pam action rotate`を使用してKeeperゲートウェイ経由のオンデマンドローテーションを実行してください。
{% endhint %}

***

## 要件

* **対象レコードが準備されていること**。ローテーション対象のP**AMマシン**、**PAMユーザー**、その他の特権レコードがすべてKeeperボルト内の共有フォルダに存在している必要があります。
* **Keeperゲートウェイがインストールされ、オンラインであること** (以下の手順1を参照)
* **少なくとも1つのPAM構成が存在し**、ゲートウェイが参照されていること (手順2を参照)
* administrator (管理者) またはrotation-manager (ローテーションマネージャー) のロールで**Keeperコマンダーにサインイン**していること

***

### 手順1 – ゲートウェイの作成または指定

コマンダーの `pam gateway` サブコマンドでゲートウェイサービスを管理します。

| タスク                                    | コマンド (省略形)                                                                      |
| -------------------------------------- | ------------------------------------------------------------------------------- |
| 既存のゲートウェイを一覧表示                         | `pam gateway list`                                                              |
| 新しいゲートウェイの作成とワンタイムトークンの生成              | `pam gateway new --name "<Gateway_Name>" --application "<KSM_Application_UID>"` |
| Dockerインストール用に `GATEWAY_CONFIG` ブロブを生成 | `pam gateway new -n "<Gateway_Name>" -a "<App_UID>" --config-init b64`          |

{% hint style="info" %}
既存ゲートウェイのUIDは `pam gateway list --verbose` でいつでも確認できます。
{% endhint %}

***

### 手順2 – ゲートウェイを利用するPAM構成の作成

`pam config new` (または `pam config edit` ) 使用して、ゲートウェイとローテーション、検出、トンネル、接続を関連付けるルールを構築します。

```bash
pam config new --title "Prod Rotation" \
               --gateway "<Gateway_UID>" \
               --shared-folder "<Shared_Folder_UID>" \
               --rotation on \
               --schedule "0 2 * * *"
```

* `--gateway` で、手順1で作成したKeeperゲートウェイに構成を紐付けます。
* `--rotation on` で、この構成に紐づくレコードのローテーション機能を有効にします。
* `--schedule` で、CRON形式のデフォルトスケジュールを設定します (`pam rotation edit` でレコード単位に上書き可能)。

構成のUIDは `pam config list` で確認できます。

***

### ローテーションコマンドの理解 (簡単なおさらい)

| コマンド                | 実際の動作                                                          |
| ------------------- | -------------------------------------------------------------- |
| `rotate`            | **非推奨**: コマンダーから直接実行される従来のプラグインベースローテーション                      |
| `pam action rotate` | Keeperゲートウェイ経由で即時ローテーションジョブを実行                                 |
| `pam rotation edit` | ローテーション設定 (スケジュール、リソース、複雑さなど) を個別または複数レコードに適用 (即時ローテーションは行わない) |

***

### コマンド: `pam rotation edit`

`pam rotation edit`で、レコードに保存されているKeeperPAMのローテーションメタデータを編集します。

#### 主なオプション

<table><thead><tr><th width="300.4609375">オプション</th><th>説明</th></tr></thead><tbody><tr><td><code>--record</code> / <code>-r</code></td><td>UID、名前、またはパターンで個別のレコードを対象にします。</td></tr><tr><td><code>--folder</code> / <code>-fd</code></td><td>フォルダ内のすべてのレコードを対象にします (一括更新)。</td></tr><tr><td><code>--force</code> / <code>-f</code></td><td>確認プロンプトをスキップします。</td></tr><tr><td><code>--config</code> / <code>-c</code></td><td>リンクするPAM構成のUIDまたはパスを指定します。</td></tr><tr><td><code>--iam-aad-config</code> / <code>-iac</code></td><td>IAM / Azure AD ユーザー向けの <code>--resource</code> の代替オプションです。</td></tr><tr><td><code>--resource</code> / <code>-rs</code></td><td>操作対象となるリソースレコードのUIDまたはパスを指定します。</td></tr><tr><td><code>--schedulejson</code> / <code>-sj</code></td><td>スケジューラーオブジェクトをJSON形式で指定します。</td></tr><tr><td><code>--schedulecron</code> / <code>-sc</code></td><td>CRON形式のスケジュール文字列を指定します。</td></tr><tr><td><code>--on-demand</code> / <code>-od</code></td><td>ローテーションをオンデマンド (スケジュールなし) に設定します。</td></tr><tr><td><code>--schedule-config</code> / <code>-sf</code></td><td>リンクされたPAM構成からスケジュールを継承します。</td></tr><tr><td><code>--complexity</code> / <code>-x</code></td><td>パスワードの複雑さを指定します(length,upper,lower,digits,symbols[,symbol_set])。</td></tr><tr><td><code>--admin-user</code> / <code>-a</code></td><td>ローテーションを管理するPAMユーザーのUIDまたはパスを指定します。</td></tr><tr><td><code>--enable</code> / <code>-e</code></td><td>対象のレコードでローテーションを有効にします。</td></tr><tr><td><code>--disable</code> / <code>-d</code></td><td>対象のレコードでローテーションを無効にします。</td></tr><tr><td><code>--schedule-only</code> / <code>-so</code></td><td>対象のレコードのスケジュールのみを更新します (構成、リソース、複雑さは変更しません)。</td></tr></tbody></table>

詳細ヘルプ: `pam rotation edit --help`

***

### 実用例

< >で示されたプレースホルダは、実際のUIDやパスに置き替えて使用してください。

**例1. 単一マシンで毎日ローテーション**

```bash
pam rotation edit --record "<Machine_UID>" \
                  --config "<PAM_Config_UID>" \
                  --resource "<Machine_UID>" \
                  --schedule daily \
                  --enable
```

**例2. JSONを使用した毎週ローテーション**

```bash
pam rotation edit --record "<Machine_UID>" \
                  --config "<PAM_Config_UID>" \
                  --resource "<Machine_UID>" \
                  -sj '{"type":"WEEKLY","weekday":"SATURDAY","time":"22:00","tz":"America/New_York"}' \
                  --enable
```

**例3. フォルダ内すべてのレコードのローテーションを一括有効化**

```bash
pam rotation edit --folder "/Shared/Prod" \
                  --config "<PAM_Config_UID>" \
                  --resource "<Gateway_Proxy_User_UID>" \
                  --schedule monthly \
                  --enable --force
```

**例4. ローテーション設定の削除**

```bash
pam rotation edit --record "<Machine_UID>" --reset
```

{% hint style="info" %}
`-so` は `--enable` または `--disable` と組み合わせて使用することで、他のパラメーターに影響を与えることなく、既存のスケジュールをすばやく有効化または一時停止できます。
{% endhint %}

**例5. オンデマンドローテーション (スケジュールなし)**

```
pam rotation edit --record "<Machine_UID>" --on-demand --enable
```

**例6. パスワードの複雑さを設定**

```
pam rotation edit --record "<PAM_User_UID>" \
                  --complexity 20,1,4,2,2,.=+- \
                  --enable
```

***

### オンデマンドローテーションの実行

スケジュールを無視して今すぐローテーションを実行したい場合

```bash
pam action rotate --record "<Machine_UID>"
```

コマンダーがジョブをKeeperゲートウェイに送信し、ゲートウェイが対象リソースに対して適切なプラグインまたはネイティブドライバを実行します。

***

### 参考

* `pam action gateway-info --gateway <Gateway_UID>` – ゲートウェイのヘルス状態とバージョン確認
* `pam rotation list` – ローテーションが有効なリソースを確認
* `pam action job-info --gateway <Gateway_UID>` – 過去のローテーションジョブログを確認
* `pam rotation script` – ポストローテーションスクリプトの管理

***

### バッチモード

多数のコマンドを一括で実行するには、Keeperの[Batch Mode](/keeperpam/jp/commander-cli/command-reference/misc-commands.md#run-batch-command)コマンドをご参照ください。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/keeperpam/jp/privileged-access-manager/references/managing-rotation-via-cli.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
