メインコンテンツまでスキップ

ネットワーク要件

このページでは、オンプレミス 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 がある場合)は専用の ハードニング済みセグメントに配置してください。

接続ゾーン
ユーザー / オフィス / M365
443
エッジ / IngressLB VIP · リバースプロキシ
アプリケーションゾーンCockpit UI · Cockpit API (DKE/KMS/KMIP)
データゾーンPostgreSQL クラスター · Redis
セキュアゾーンOpenBao · オプションの DuoKey MPC KMS / HSM
ID プロバイダーAzure AD / LDAP

トラフィックはエッジから入り、アプリケーションゾーンに到達します。アプリケーションゾーンはセグメント化されたデータゾーン、ハードニング済みのセキュアゾーン、および 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 と確認します。

リンク指標推奨値備考
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%レプリケーションとフェイルオーバーの健全性はクリーンなリンクに依存します
DuoKey MPC KMS を追加する場合は同一サイト(またはメトロ圏)に配置してください

RTT が 10 ms を超える サイト間(あるいはロスやジッターの多いリンク)に MPC ノードを配置 すると、すべての鍵操作が遅くなり、操作のタイムアウトを引き起こす可能性があります。離れた 2 つのデータセンターの場合は、WAN をまたいで単一クラスターを ストレッチ するのではなく、 アクティブ/パッシブ フェイルオーバーを備えた サイトごとの MPC クラスター を推奨します。 VM のみの展開 → マルチサイト HA を参照してください。

オプションの Securosys HSM

ハードウェアの信頼の基点として 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 VIP443/TCP
ユーザー → Cockpit UI / API社内クライアントIngress / LB VIP443/TCP
KMIP クライアント → Cockpit API(オプション)KMIP 対応アプリケーションCockpit API の KMIP エンドポイント5696/TCP
管理者 → 管理系(SSH)ジャンプホスト / 踏み台ノードおよび VM の管理 IP22/TCP

イースト・ウェスト(プラットフォーム内部)​

フロー送信元宛先ポート
フロントエンド → APICockpit UICockpit API443/TCP(内部)
API → DuoKey MPC KMS(オプションのバックエンド)Cockpit APIDuoKey MPC クラスター443/TCP(OAuth2)
DuoKey MPC ノード ↔ ノード(オプションのバックエンド)MPC ノードMPC ノードDuoKey のリリースに準拠(mTLS/TCP)
API → データベースCockpit APIPostgreSQL プライマリ + レプリカ5432/TCP
PostgreSQL レプリケーションプライマリ ↔ レプリカPostgreSQL ノード5432/TCP
API → キャッシュCockpit APIRedis VIP / ノード6379/TCP
API → シークレットCockpit API / ESOOpenBao VIP8200/TCP
OpenBao RaftOpenBao ↔ OpenBaoOpenBao ノード8201/TCP

プラットフォームサービスと外向き通信​

フロー送信元宛先ポート
全ホスト → NTPすべてのノード / VMNTP サーバー123/UDP
全ホスト → DNSすべてのノード / VM内部リゾルバー53/UDP、53/TCP
Cockpit → ID プロバイダーCockpit APIAzure AD / LDAP443/TCP · LDAP 389/636/TCP
API → Securosys HSM(オプション)Cockpit APISecurosys HSMベンダーに準拠(PKCS#11 / KMIP 5696/TCP)
GitOps → ソースおよびレジストリArgoCDGit ソース / イメージレジストリ443/TCP、22/TCP
可観測性のスクレイプ / ログVictoriaMetrics / vmagent · VectorAPI およびノードのメトリクス / ログエンドポイントスタックに準拠
バックアップ → オブジェクトストレージクラスター / バックアップエージェントS3 互換エンドポイント443/TCP
Geo ロードバランサーのヘルスチェックGSLB / LBサイトごとのサービス VIP443/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>

関連項目​