> For the complete documentation index, see [llms.txt](https://docs.keeper.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keeper.io/keeperpam/jp/endpoint-privilege-manager/user-guides/airgapped-support.md).

# エアギャップ対応

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

EPMは、機密ネットワーク、エアギャップのデータセンター、外向きインターネットが制限された高度に規制された環境など、エンドポイントがKeeperクラウドバックエンドに接続できない環境でも展開できます。本ページでは、オフラインエージェント登録、ローカルポリシー管理、およびオンライン展開とエアギャップ展開の運用上の違いを取り扱います。

## エアギャップ運用の概要 <a href="#overview-of-airgapped-operation" id="overview-of-airgapped-operation"></a>

標準的なオンライン展開では、KEPMエージェントがHTTPS経由でKeeperクラウドバックエンドに登録し、sync-downでポリシーを受信し、監査イベントとインベントリデータをクラウドへ送信します。エアギャップ展開では、これらのネットワーク経路はいずれも利用できません。

KEPMでは、以下の2つの仕組みがあります。

1. **オフライン登録:** エージェントがKeeperバックエンドへの直接接続を行わずに、有効な登録を取得できる2段階のプロセスです。
2. **ローカルポリシーファイル:** エンドポイント上にJSONファイルとして直接配置されたポリシーで、クラウド接続なしで読み込まれ、適用されます。

両方の仕組みは併用も単独利用も可能です。接続が断続的に利用可能なときはバックエンドと同期し、利用できないときはローカルポリシーにフォールバックする**ハイブリッドモード**でも運用できます。

## オフライン登録 <a href="#offline-registration" id="offline-registration"></a>

標準登録では、エージェントがKeeperバックエンドに直接到達する必要があります。オフライン登録では、直接接続を2段階のデータ転送プロセスに置き換え、USB、ネットワーク共有、環境で利用可能なその他のファイル転送方法で実施できます。

{% stepper %}
{% step %}
**エアギャップマシンで登録を初期化**

エアギャップマシンでKEPMサービスを実行した状態で、ローカルMQTT API経由で `OfflineRegisterInit` リクエストを送信します。これにより、ネットワークアクセスを必要とせず、エージェントの公開鍵とマシン識別子を含む登録初期化ペイロードが生成されます。

**このステップのレスポンスに含まれる項目**

* `AgentUID`: このエージェントを表す一意の識別子
* `PublicKey`: エージェントのECDSA公開鍵 (Base64URLエンコード)
* `MachineID`: このマシンを識別するハッシュ

**このデータをエクスポートし、利用可能な転送方法 (USBドライブ、印刷したQRコード、社内ファイル共有など) で接続可能なマシンへ転送**してください。
{% endstep %}

{% step %}
**接続可能なマシンで登録を完了**

接続可能なマシン上 (またはKeeper管理コンソールへアクセスできる管理者経由) で、エクスポートした初期化データを使って登録を完了します。Keeperバックエンドは、結果の登録データ (`AgentData` パッケージ) をエージェントの公開鍵で暗号化するため、該当のエアギャップエージェントのみが復号できます。

**暗号化された `AgentData` ファイルをエアギャップマシンへ戻し**、`OfflineRegisterComplete` リクエスト経由でエージェントに渡します。

**登録後**

オフライン登録が完了すると、エージェントはオンライン登録後とまったく同じように動作します。登録済みのIDを持ち、ポリシーを読み込み、監査イベントを生成します。監査イベントは、投稿可能な接続が利用可能になるまでローカルにキューイングされます。

すでに登録済みのエアギャップエージェントで再登録または登録更新を行う場合は、初期化リクエストに `"ForceRegister": true` を含めるか、先に `KeeperUnregistrationHelper` でエージェントの登録を解除してください。
{% endstep %}
{% endstepper %}

## ローカルポリシーファイル <a href="#local-policy-files" id="local-policy-files"></a>

完全エアギャップおよびハイブリッド展開のいずれでも、ポリシーはKEPMインストールディレクトリ内の `policies/` フォルダに直接配置したJSONファイルとして展開できます。

<table data-header-hidden="false" data-header-sticky><thead><tr><th width="125.3333740234375">プラットフォーム</th><th>ポリシーフォルダ</th></tr></thead><tbody><tr><td>Windows</td><td><code>C:\Program Files\Keeper Security\Endpoint Privilege Management\Plugins\bin\KeeperPolicy\policies\</code></td></tr><tr><td>Linux</td><td><code>/opt/keeper/sbin/Plugins/bin/KeeperPolicy/policies/</code></td></tr><tr><td>macOS</td><td><code>/Library/Keeper/sbin/Plugins/bin/KeeperPolicy/policies/</code></td></tr></tbody></table>

KeeperPolicyプラグインはこのフォルダを監視し、ファイルの追加・変更・削除時に自動的に再読み込みします。サービスの再起動は不要です。

**ローカルポリシーファイルはサーバー同期ポリシーより優先されます。** ローカルファイルにサーバーポリシーと同じ `PolicyId` のポリシーが含まれる場合、ローカル版が使用されます。これにより、全体のフリート構成に影響を与えず、特定環境でのローカル上書きが可能になります。

### **対応している2つのファイル形式**

*前処理済みポリシーレジストリ形式:* 稼働中のKEPMインスタンスからエクスポートされたポリシーレジストリの完全スナップショットです。解決済みコレクションを含む完全な評価済み状態を記録できるため、エアギャップ展開ではこの形式を推奨します。接続可能なマシンから `currentPolicies.json` をコピーしてエクスポートします。

*生のポリシーテンプレート形式:* 管理コンソールでポリシーを定義する際と同じ形式の個別ポリシーJSONファイルです。読み込み時にローカルエージェントが前処理します。

## 暗号化ポリシーデータのインポート <a href="#importing-encrypted-policy-data" id="importing-encrypted-policy-data"></a>

ローカルポリシーファイルを中央のポリシー構成と同期させる必要がある環境では、KEPMでは暗号化ポリシーデータパッケージをインポートできます。エージェントが通常ネットワーク経由で受信する `SyncDownResponse` ペイロードと同じ内容を、エージェントの公開鍵で暗号化したファイルです。

### **手順**

1. Keeperバックエンドへアクセスできる接続可能なマシン上で、対象のエアギャップエージェント向けにポリシーデータをエクスポートします。エクスポートはそのエージェントの公開鍵で暗号化されるため、生成対象の特定エージェントのみが復号できます。
2. 暗号化されたバイナリファイルを、利用可能な転送方法でエアギャップマシンへ転送します。
3. ファイルのパスを指定して、ローカルMQTT APIへ `OfflinePolicyData` メッセージを送信します。

エージェントはファイルを復号し、ライブのsync-downレスポンスとまったく同様にポリシーを処理し、アクティブなポリシーレジストリを更新します。

### **よくあるエラー**

<table data-header-hidden="false" data-header-sticky><thead><tr><th width="236">エラー</th><th>原因</th></tr></thead><tbody><tr><td><code>not registered</code></td><td>ポリシーデータをインポートする前に、エージェントの登録を完了する必要がある</td></tr><tr><td><code>Filename does not exist</code></td><td>ポリシーデータファイルへのパスが誤っているか、アクセスできない</td></tr><tr><td>復号失敗</td><td>ポリシーデータファイルが別のエージェント向けに暗号化されている</td></tr></tbody></table>

## ハイブリッド展開 <a href="#hybrid-deployments" id="hybrid-deployments"></a>

ハイブリッド展開では、エージェントが定期的 (例: 月次、または管理VLANへ手動接続したとき) にバックエンドへ接続し、通常どおり同期できます。接続のない期間は、最後に同期したポリシーを適用し、`policies/` フォルダ内のローカルポリシーファイルで補完します。

断続的な接続がある環境では、最もシンプルなアプローチです。特別な構成は不要です。エージェントは接続が利用可能なときに自動同期し、利用できないときはキャッシュされたポリシーにフォールバックします。

## エアギャップ環境における監査イベント <a href="#audit-events-in-airgapped-environments" id="audit-events-in-airgapped-environments"></a>

KEPMエージェントは、バックエンドに到達できない場合、監査イベントをローカルにキューイングします。接続が回復すると、キューイングされたイベントが自動的に投稿されます。イベントはエージェントの統合ストレージに保存され、サービス再起動中も失われません。

接続が回復しない環境 (完全な恒久的エアギャップ) では、監査イベントがローカルに蓄積され、ローカルHTTP APIまたはログファイル経由で抽出し、内部のSIEMまたは監査システムへ転送する必要があります。ログファイルのパスと形式については、[ログの確認](/keeperpam/jp/endpoint-privilege-manager/user-guides/reading-logs.md)をご参照ください。

## セキュリティ上の考慮事項 <a href="#security-considerations" id="security-considerations"></a>

**登録データはエンドツーエンドで暗号化されます。** オフライン登録中に返される `AgentData` パッケージは、エージェントの公開鍵で暗号化されます。転送媒体が傍受されても、別のエージェントの登録に使うことはできません。

**ポリシーファイルは不正な改ざんから保護する必要があります。** ローカルポリシーファイルはサーバー同期ポリシーより優先されます。`policies/` フォルダはサービスアカウントのみが書き込み可能であることを確認してください。推奨ファイル権限設定については、[セキュリティ強化](/keeperpam/jp/endpoint-privilege-manager/user-guides/security-hardening.md)ガイドをご参照ください。

**暗号化ポリシーのインポートはエージェント固有です。** あるエージェント向けに生成された暗号化ポリシーデータファイルは、別のエージェントでは使用できません。復号に失敗します。これにより、ポリシーデータファイルがマシン間で再利用されることを防ぎます。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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/endpoint-privilege-manager/user-guides/airgapped-support.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.
