ネットワーク要件
このページでは、オンプレミス DuoKey 展開における ネットワークの前提条件 をまとめます。 これらは 両方 の展開モデル、すなわち OpenShift リファレンスアーキテクチャ と VM のみの展開 に適用され、接続性、サイト間のレイテンシー/帯域幅、 時刻同期、名前解決、およびファイアウォールのフローマトリクスを扱います。
スタックの構成は次のとおりです。フロントエンド(UI)、Cockpit API(バックエンド。 DKE / KMS / KMIP エンドポイント)、PostgreSQL クラスター、Redis、シークレット用の OpenBao、さらに ArgoCD(GitOps)と可観測性のための VictoriaMetrics / VictoriaLogs です。鍵の保管はデフォルトで組み込みの Software Vault を使用します。展開でオプションの DuoKey MPC KMS クラスター (3 ノード以上)や Securosys HSM を鍵保管バックエンドとして追加する場合は、 以下のセクションでそれらのネットワーク要件も扱います。 サードパーティの TSM もメッセージブローカーも存在しません。
サイト間レイテンシー(DuoKey MPC クラスター を追加する場合、および PostgreSQL レプリケーション のため)とファイアウォールのフローマトリクスは、オンプレミスの本番稼働を 最も頻繁に妨げる項目です。インストール中ではなく、インストール 前 に検証してください。
接続ゾーン
DuoKey はセグメント化されたネットワーク内で動作するように設計されています。推奨される構成は 3 つのゾーンを使用します。シークレットのトラフィック(OpenBao、HSM がある場合)は専用の ハードニング済みセグメントに配置してください。
トラフィックはエッジから入り、アプリケーションゾーンに到達します。アプリケーションゾーンはセグメント化されたデータゾーン、ハードニング済みのセキュアゾーン、および ID プロバイダーと通信します。
推奨されるセグメンテーションは、アプリケーション、セキュア(OpenBao / HSM)、 データ(PostgreSQL、Redis)の各トラフィックに対して別々の VLAN を用意することです。 ハードニングと TLS の詳細については ネットワークセキュリティ を参照してください。
データセンター間のレイテンシーと帯域幅
オプションの DuoKey MPC KMS を鍵保管バックエンドとして追加する場合、レイテンシーに 敏感なリンクが 2 つあります。1 つ目は MPC クラスターです。すべての鍵操作(DKE のラップ/ アンラップ、署名)は 3 ノード以上にまたがって共同で計算される ため、ノード間の レイテンシーが鍵操作時間を直接左右します。2 つ目は、どの鍵保管バックエンドを使用する場合でも 常に関係する、サイト間の PostgreSQL レプリケーション です。鍵のラップ/アンラップは Cockpit API がローカルのボールトバックエンド(Software Vault、MPC、または HSM)と データベースに対して実行するため、サイト内のアプリケーション ↔ データ間のレイテンシーも 低く保つ必要があります。
以下の数値は エンジニアリング上のガイダンス であり、契約上の保証ではありません。最終的な 配置(単一サイト、ストレッチ、アクティブ/パッシブ)は、可用性とパフォーマンスの目標に照らして DuoKey と確認します。
| リンク | 指標 | 推奨値 | 備考 |
|---|---|---|---|
| DuoKey MPC ノード ↔ ノード(オプションのバックエンド) | 往復レイテンシー | 2 ms 以下(理想値)、約 5 ms を超えると劣化 | すべての鍵操作がノード間で共同計算されます。低く安定した RTT が極めて重要です |
| DuoKey MPC ノード ↔ ノード(オプションのバックエンド) | ジッター / パケットロス | ジッター 1 ms 以下 · ロス約 0% | 同期的な共同計算は再送によって停滞します |
| Cockpit API ↔ DuoKey MPC クラスター(オプションのバックエンド) | 往復レイテンシー | 2 ms 未満(同一サイト) | バックエンドは鍵操作のたびにクラスターを呼び出します |
| PostgreSQL プライマリ ↔ レプリカ | 往復レイテンシー | 同期 レプリケーションでは 5 ms 以下 | これを超える場合は 非同期 レプリケーションを使用し、わずかな RPO を許容します |
| PostgreSQL プライマリ ↔ レプリカ | 帯域幅 | 1 Gbps 以上(大規模層では 10 Gbps 以上) | サイジング階層 に合わせて算定します |
| Cockpit API ↔ PostgreSQL / Redis(同一サイト) | 往復レイテンシー | 1 ms 未満 | 同一サイトのスイッチド LAN |
| アプリケーションゾーン ↔ セキュアゾーン(OpenBao) | 往復レイテンシー | 5 ms 未満 | シークレットはリクエストごとではなくサービス起動時に取得されます |
| サイト ↔ サイト(全体) | 帯域幅 · ジッター · ロス | 1 Gbps 以上 · 低ジッター · ロス約 0% | レプリケーションとフェイルオーバーの健全性はクリーンなリンクに依存します |
RTT が 10 ms を超える サイト間(あるいはロスやジッターの多いリンク)に MPC ノードを配置 すると、すべての鍵操作が遅くなり、操作のタイムアウトを引き起こす可能性があります。離れた 2 つのデータセンターの場合は、WAN をまたいで単一クラスターを ストレッチ するのではなく、 アクティブ/パッシブ フェイルオーバーを備えた サイトごとの MPC クラスター を推奨します。 VM のみの展開 → マルチサイト HA を参照してください。
ハードウェアの信頼の基点として Securosys HSM を追加する場合、バックエンドは鍵操作のたびに HSM を呼び出します。低レイテンシーで信頼性の高い リンク上(理想的には同一サイト)に 配置してください。鍵の保管 を参照してください。
配置パターン
- 単一サイト(推奨デフォルト): スタック全体を(追加している場合は DuoKey MPC クラスターも 含めて)1 つのデータセンターに配置し、ノードは別々のラック/障害ドメインに分散します。
- アクティブ/パッシブ(リージョナル): サイトごとに独立したスタック(使用する場合は サイトごとの MPC クラスターも含む)を配置し、PostgreSQL/OpenBao のレプリケーションと、 トラフィックを誘導する Geo ロードバランサー を組み合わせます。サイト間リンクが低速または長距離の場合に使用します。
- ストレッチ(メトロ): 低レイテンシーのメトロリンクで接続された近接する 2 つの データセンターにまたがる単一スタックです(MPC を使用する場合は 2 ms 以下、同期 DB レプリケーションでは 5 ms 以下)。高速で信頼性の高いリンクでのみ使用してください。
時刻同期(NTP)
正確に同期されたクロックは 必須 です。時刻がずれると、TLS /証明書の有効性チェック、 2FA(TOTP)ログイン、JWT /トークンの有効期限が壊れ、監査ログの相関付けも信頼できなくなります。
| 要件 | 推奨事項 |
|---|---|
| プロトコル | すべてのホストおよび VM 上の NTP(またはプラットフォームの chrony) |
| ソース | 到達可能な冗長 NTP サーバー 2 台以上(内部アプライアンスまたは pool) |
| 最大クロックスキュー | 全ノード間で 1 秒未満。100 ms 未満 を目標にします |
| エアギャップサイト | ローカルの stratum-1/2 NTP ソース(GPS/PTP アプライアンスなど)。ノードをフリーランさせないでください |
| タイムゾーン | ホストは UTC で運用し、ローカライズは UI でのみ行います |
名前解決(DNS)
外部、内部、および重要な スプリットホライズン DKE エンドポイント を含む DNS レコードの 完全な一覧は、専用のページに記載されています。DNS レコード
ネットワークレベルの要件:
- すべてのホスト/VM は 2 台以上 の内部リゾルバーを参照します。リゾルバーは内部ゾーンと (フォワーダー経由で)パブリック名の両方に応答できる必要があります。
- DKE エンドポイントの スプリットホライズン DNS。同じホスト名が、社内ネットワークでは 内部 LB VIP に、社外ではパブリック Ingress に解決され、同じ TLS 証明書 を使用します。
- レコードは単一ノードではなく、必ず ヘルスチェック付きのロードバランサー VIP に 向けてください。
ファイアウォールのフローマトリクス
以下のフローを開放してください。<...> は自社の VIP /サブネットのプレースホルダーです。
ベンダーに準拠 と記載されたポートは、お使いのバージョンに応じて HSM /ボールトベンダーから
提供されます。
ノース・サウス(ユーザー → プラットフォーム)
| フロー | 送信元 | 宛先 | ポート |
|---|---|---|---|
| オフィス / M365 → DKE 鍵エンドポイント | クライアント、*.protection.outlook.com | パブリック Ingress / DKE VIP | 443/TCP |
| ユーザー → Cockpit UI / API | 社内クライアント | Ingress / LB VIP | 443/TCP |
| KMIP クライアント → Cockpit API(オプション) | KMIP 対応アプリケーション | Cockpit API の KMIP エンドポイント | 5696/TCP |
| 管理者 → 管理系(SSH) | ジャンプホスト / 踏み台 | ノードおよび VM の管理 IP | 22/TCP |
イースト・ウェスト(プラットフォーム内部)
| フロー | 送信元 | 宛先 | ポート |
|---|---|---|---|
| フロントエンド → API | Cockpit UI | Cockpit API | 443/TCP(内部) |
| API → DuoKey MPC KMS(オプションのバックエンド) | Cockpit API | DuoKey MPC クラスター | 443/TCP(OAuth2) |
| DuoKey MPC ノード ↔ ノード(オプションのバックエンド) | MPC ノード | MPC ノード | DuoKey のリリースに準拠(mTLS/TCP) |
| API → データベース | Cockpit API | PostgreSQL プライマリ + レプリカ | 5432/TCP |
| PostgreSQL レプリケーション | プライマリ ↔ レプリカ | PostgreSQL ノード | 5432/TCP |
| API → キャッシュ | Cockpit API | Redis VIP / ノード | 6379/TCP |
| API → シークレット | Cockpit API / ESO | OpenBao VIP | 8200/TCP |
| OpenBao Raft | OpenBao ↔ OpenBao | OpenBao ノード | 8201/TCP |
プラットフォームサービスと外向き通信
| フロー | 送信元 | 宛先 | ポート |
|---|---|---|---|
| 全ホスト → NTP | すべてのノード / VM | NTP サーバー | 123/UDP |
| 全ホスト → DNS | すべてのノード / VM | 内部リゾルバー | 53/UDP、53/TCP |
| Cockpit → ID プロバイダー | Cockpit API | Azure AD / LDAP | 443/TCP · LDAP 389/636/TCP |
| API → Securosys HSM(オプション) | Cockpit API | Securosys HSM | ベンダーに準拠(PKCS#11 / KMIP 5696/TCP) |
| GitOps → ソースおよびレジストリ | ArgoCD | Git ソース / イメージレジストリ | 443/TCP、22/TCP |
| 可観測性のスクレイプ / ログ | VictoriaMetrics / vmagent · Vector | API およびノードのメトリクス / ログエンドポイント | スタックに準拠 |
| バックアップ → オブジェクトストレージ | クラスター / バックアップエージェント | S3 互換エンドポイント | 443/TCP |
| Geo ロードバランサーのヘルスチェック | GSLB / LB | サイトごとのサービス VIP | 443/TCP(または L4 プローブ) |
どのサービスを L4 と L7 のどちらのロードバランサーの背後に配置するか、ヘルスチェックの設計、 TLS のパススルーと終端、セッションアフィニティについては VM のみの展開 → ロードバランシング で説明しています。
MTU、プロキシ、その他の考慮事項
- MTU: エンドツーエンドで一貫した MTU を維持してください。サイト間の経路で VPN / オーバーレイ/ジャンボフレームを使用している場合は パス MTU を検証してください。 サイレントなフラグメンテーションはデータベースレプリケーションを劣化させます。
- アウトバウンドプロキシ: 制限されたネットワークでは、DKE/M365 のフローや外部の IdP/OCSP/CRL の取得に 明示的なプロキシ許可リスト が必要になる場合があります。 エアギャップサイトでは、ローカルの CRL/OCSP レスポンダーとイメージミラーをホストする 必要があります。
- DKE エンドポイントの前段に SSL インスペクションを行うミドルボックスを置かないでください。 TLS の傍受は、DKE フローが依拠するクライアント ↔ API 間の信頼を破壊します。
- ロードバランサーのアイドルタイムアウト は、正当な鍵操作の最長時間を上回る必要があります。 DKE/API のパスでは十分に長いキープアライブを設定してください。
検証
# Inter-site latency & loss to a DuoKey MPC node and a PostgreSQL replica
mtr -rwzbc100 <mpc-node-ip>
mtr -rwzbc100 <postgres-replica-ip>
# Time sync (chrony): offset should be well under 100 ms
chronyc tracking
chronyc sources -v
# Firewall reachability (returns "succeeded" when the flow is open)
nc -vz <mpc-cluster-vip> 443
nc -vz <postgres-vip> 5432
nc -vz <openbao-vip> 8200
nc -vz <ntp-server> 123 # UDP: use `nc -vzu`
# DNS split-horizon (compare internal vs external answers)
dig +short dke.example.com @<internal-resolver>
関連項目
- 前提条件 — ハードウェアサイジングとプラットフォーム要件
- VM のみの展開 — VM のサイジングと Geo ロードバランシングによるマルチサイト HA
- DNS レコード — レコードの完全な一覧とスプリットホライズン
- ネットワークセキュリティ — セグメンテーション、TLS、ハードニング
- リファレンスアーキテクチャ — OpenShift + VM のハイブリッド設計