# 一時アカウントと特権昇格

## 概要

PAMマシン、PAMデータベース、PAMディレクトリの各レコードタイプは、**一時**アカウントでセッションを認証するよう構成できます。さらに、一時アカウントまたは既存アカウントを、セッション期間中だけ指定のグループまたはロールに**昇格**させることもできます。一時アカウントと昇格した権限はすべてセッション終了時に自動的に取り除かれるため、ターゲットシステムに恒久的な特権が残りません。これにより、盗まれた認証情報を使った横方向への移動を抑止し、運用負荷を抑えつつ、追いやすい監査証跡を残せます。

**一時アカウント**

Keeperは、割り当てられた任意のターゲットリソース上に一時アカウントを作成できます。例:

* Active Directory / LDAPドメインユーザー
* Windowsユーザー
* Linuxユーザー
* MySQLユーザー
* PostgreSQLユーザー
* Microsoft SQL Serverユーザー

一時アカウントとは、セッション専用に作成されるシステム生成の時間制限付きアカウントです。Keeperゲートウェイは、アクセスが承認されたときにターゲットシステム上にアカウントを作成し、セッション終了時に自動削除します。ターゲットシステムに恒久的なアカウントは残りません。

**特権昇格**

特権昇格では、一時または既存のアカウントが、セッション期間中だけターゲットシステム上の指定グループまたはロールに一時的に割り当てられます。昇格した権限はセッション終了時に自動的に取り消されます。

**対応接続プロトコル**

* RDP
* データベース接続 (MySQL、PostgreSQL、SQL Server、Oracle など)
* SSH
* VNC

本ガイドでは、Keeperボルト内のPAMレコードタイプで一時アカウントと特権昇格を設定する方法を説明します。

## PAM設定 — 一時アカウントと特権昇格の構成

### JIT設定へ移動

PAMマシン、PAMデータベース、またはPAMディレクトリのレコードタイプで、PAM設定画面のJITタブへ移動する手順は、以下のとおりです。

1. PAMレコードタイプを編集します。
2. PAM設定セクションの「編集」をクリックします。
3. 表示されたウィンドウの「JIT」セクションに移動します。

<figure><img src="/files/xxLvGnBX6f59SVxcZL6D" alt=""><figcaption></figcaption></figure>

JITタブでは、以下のフィールドを設定できます。

<table><thead><tr><th width="261.5625">フィールド</th><th>定義</th></tr></thead><tbody><tr><td>管理用ポート</td><td>一時アカウントの作成など管理操作に使用するポートです。この値はローテーションタブから継承され、JITタブからは変更できません。</td></tr><tr><td>接続用に一時的アカウントを作成する</td><td>有効にすると、セッション用にシステム生成の時間制限付きアカウントが作成されます。一時アカウントは <code>keeper_&#x3C;UID></code> の命名規則で作成されます。<br><br>一時アカウントの種類はレコードタイプによります。<strong>PAMマシン:</strong> ドメインユーザーまたはローカルユーザー (Windows、Linux、または Mac)。<br><strong>PAMデータベースおよびPAMディレクトリ</strong>: アカウント種別は自動的に検出されます。</td></tr><tr><td>接続中にアカウントを昇格させる</td><td>有効にすると、接続の認証に使用されるアカウント (一時アカウントを含む) が、指定のグループまたはロールに一時的に昇格します。マシンおよびディレクトリユーザーには <strong>グループ</strong>、データベースには <strong>ロール</strong> を選択します。<br><br>例: ローカルWindowsユーザーの場合は「Administrators」、AWSの場合はフルARN (例: <code>arn:aws:iam::12345:role/Admin</code>) です。</td></tr></tbody></table>

**注**: JITを完全に構成するには、以下のレコードタイプフィールドを設定する必要があります。

<table><thead><tr><th width="208.35546875">レコードタイプ</th><th>JITで必要なフィールド</th></tr></thead><tbody><tr><td>PAMマシン</td><td>オペレーティングシステム<br><br>指定可能な値: Windows、Linux、Mac</td></tr><tr><td>PAMデータベース</td><td>データベースの種類</td></tr><tr><td>PAMディレクトリ</td><td>ディレクトリの種類</td></tr></tbody></table>

### ドメインユーザー向け昇格の構成

#### **一時ドメインユーザーをADグループに昇格**

一時ドメインユーザーをActive Directoryグループに昇格させる場合、PAMディレクトリレコードをリンクし、グループ名を識別名 (DN) 形式で指定する必要があります。

**例:** グループ名が **`RemoteUsers`** の場合、DNは以下のとおりです。

```
CN=RemoteUsers,CN=Users,DC=example,DC=com
```

グループ名にスペースが含まれる場合は、DNを引用符で囲む必要があります。

**例:** グループ名が **`Remote Users`** の場合、DNは以下のとおりです。

```
"CN=Remote Users,CN=Users,DC=example,DC=com"
```

#### **一時ドメインユーザーをローカルグループに昇格**

マシン上のローカルグループに昇格させる場合は、ローカルグループ名を直接指定します (例: `RemoteUsers`)。ローカルグループではDN形式は不要です。

#### **既存ドメインユーザーをADグループに昇格**

既存ドメインユーザーはPAMユーザーレコードとして定義され、PAMマシンレコードタイプで定義されたターゲットへの起動認証情報として使用できます。

既存ドメインユーザーをActive Directoryグループに昇格させる場合は、以下の手順に従います。

1. PAMユーザーレコードでローテーション設定を構成し、PAMディレクトリレコードにリンクします。
2. このPAMユーザーを起動認証情報として使用するPAMマシンレコードで、**JIT** タブに移動し、**接続中にアカウントを昇格させる** を有効にします。
3. ターゲットグループを識別名 (DN) 形式で指定します。

既存ユーザーは、PAMユーザーレコードにリンクされたディレクトリサービス上で、指定グループに一時的に昇格します。セッション終了時に昇格は解除されます。

### データベースユーザー向け昇格の構成

一時および既存のデータベースユーザーを、データベースサーバー上の指定ロールに昇格できます。PAMデータベースレコードで **JIT** タブに移動し、**接続中にアカウントを昇格させる** を有効にして **ロール** を選択し、ターゲットロール名を入力します。

例として、セッション中に読み取り専用アクセスを付与するには `readonly` のロールを指定します。ユーザーにはセッション期間中だけ `readonly` のロールが割り当てられ、セッション終了時にロールは自動的に削除されます。

**トラブルシューティング: MySQLの一時ユーザーに権限がない**

新規作成されたMySQLユーザーに権限がない場合があります。KeeperPAMは一時ユーザーを動的に作成するため、ユーザーごとに手動で権限を付与する機会がありません。

これを解決するには、MySQL 8以降の **mandatory roles** を使用します。Mandatory rolesはサーバー上に作成されるすべてのユーザーに自動割り当てされ、一時ユーザーにも手動介入なしに必要な権限が付与されます。

**セットアップ手順**

MySQL管理者 (例: `root`) として、以下のコマンドを実行します。

```sql
-- 手順1: 必要な権限を持つロールを作成
CREATE ROLE 'readonly';

-- 手順2: すべてのスキーマに対する読み取り専用アクセスを付与
GRANT SELECT ON *.* TO 'readonly';

-- 手順3: すべてのユーザー (将来の一時ユーザーを含む) にロールを必須にする
SET GLOBAL mandatory_roles = 'readonly';

-- 手順4: ログイン時にロールが自動有効化されるようにする
SET GLOBAL activate_all_roles_on_login = ON;
```

**手順4は必須です。** これがないと mandatory roles は割り当てられても有効化されず、接続時に一時ユーザーに権限がないように見えたままになります。

**再起動後も維持する**

設定をMySQL再起動後も維持するには、MySQL設定ファイル (`my.cnf` または `my.ini`) に以下を追加します。

```sql
[mysqld]
mandatory_roles = 'readonly'
activate_all_roles_on_login = ON
```

**権限の調整**

読み取り専用ではなく読み書きアクセスを付与する場合は、ロールの権限を調整します。

```sql
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'readonly';
```

または別ロールを作成します。

```sql
CREATE ROLE 'readwrite';
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'readwrite';
SET GLOBAL mandatory_roles = 'readonly,readwrite';
```

**構成の確認**

以下を実行して、設定が正しいことを確認できます。

```sql
SELECT @@mandatory_roles;
SELECT @@activate_all_roles_on_login;
```

## ワークフローおよびKeeperコネクションとの併用

一時アカウントと特権昇格は、ワークフローおよび[コネクション](/jp/keeperpam/privileged-access-manager/connections.md)と組み合わせると効果的です。ワークフローによって承認や時間制限、説明責任が確保され、適切な権限のもとでのみ一時アカウントと昇格権限が付与されます。[コネクション](/jp/keeperpam/privileged-access-manager/connections.md)を使えば、ユーザーはボルトからターゲットリソースへ直接セッションを起動できます。

詳しくは以下をご参照ください。

* [ワークフロー](/jp/keeperpam/privileged-access-manager/just-in-time-access-jit/workflow.md)
* [一時的アカウント](/jp/keeperpam/privileged-access-manager/connections/authentication-methods.md#ephemeral-account)<br>


---

# 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/jp/keeperpam/privileged-access-manager/just-in-time-access-jit/ephemeral-accounts-and-privilege-elevation.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.
