DuoKey MPC クラスター — 3 サイト、サイトあたり 3 ノード
DuoKey MPC KMS は DuoKey 独自の鍵保管クラスターです。すべての鍵は各ノードにまたがる シェア に分割され、各暗号操作はそれらのノード間で 共同で計算 されます。そのため、 単一のノードが完全な鍵を保持することは決してありません。データセンターレベルの 回復性を確保するには、3 つのデータセンターそれぞれに 3 ノード、合計 9 ノード を展開します。
DuoKey MPC KMS は オプション のボールトバックエンドです。鍵の保管はデフォルトで 組み込みの Software Vault が使用されます。展開に必要な場合に MPC クラスターを追加して ください。前提条件 → 鍵の保管 を参照して ください。これは DuoKey 独自 の MPC であり、サードパーティの Sepior TSM ではありません。 したがって、MongoDB、Audit Node、KMaaS ポータル、メッセージキューはいずれも不要 です。 各ノードには Cockpit API が OAuth2 経由でアクセスし、メタデータは PostgreSQL に保持されます。
トポロジーの概要
Cockpit API が MPC クラスターを駆動します。3 つのデータセンターそれぞれで 3 ノードが稼働し、各サイトは鍵メタデータ用の PostgreSQL クラスターに支えられます。
2 つのトポロジー
9 つのノードをどのように接続するかは、データセンター間の距離によって決まります。
1. 分散クラスター — 単一の 9 ノードクラスター
- 各データセンターに 3 ノードを配置した、単一 の論理 MPC クラスターです。
- すべての鍵操作は 参加ノード間で共同で計算 されるため、サイト間リンクがホットパス上に 存在します。低レイテンシーのメトロ/キャンパスリンク(RTT 2 ms 以下) でのみ実用的です。
- クラスターのしきい値の範囲内で、サイト全体の喪失 に耐えられます(残る 2 サイトに 9 ノード中 6 ノードが残ります)。
- 3 つのデータセンターが近接している(同一メトロ圏内の)場合に 使用します。
2. サイトごとのクラスター — アクティブ/パッシブ(3 × 3 ノード)
- 各データセンターが 独立した 3 ノードクラスター を実行し、同時にアクティブなのは 1 つの DC のみ です。
- 鍵メタデータは サイト間でレプリケート されます(PostgreSQL)。Geo ロードバランサー/ LB がトラフィックを次の正常なデータセンターにフェイルオーバーします。
- 鍵操作は 同一サイト内 で完結するため、より高いサイト間レイテンシーを許容 できます (リージョナル WAN リンク)。
- データセンターが 地理的に離れている 場合に 使用します。
| 分散型(9 ノード) | サイトごとのアクティブ/パッシブ(3×3) | |
|---|---|---|
| クラスター | 9 ノードのクラスター 1 つ | 3 ノードのクラスター 3 つ |
| アクティブなサイト | 3 サイトすべてが参加 | 同時に 1 サイトのみ |
| サイト間レイテンシー | 2 ms 以下(ホットパス上) | より高くても可(レプリケーションのみ) |
| サイト喪失への耐性 | あり(しきい値が許す限り) | あり(フェイルオーバー) |
| 最適な用途 | 同一メトロ/キャンパス | 地理的に離れた DC |
3 つのデータセンターが高速なメトロリングで接続されている場合、分散型 クラスターが 単一クラスターとして最も強い回復性を提供します。距離が離れている場合は、鍵操作が WAN を 越えないように サイトごとのアクティブ/パッシブ を使用してください。実測のレイテンシーに 基づき、DuoKey と選択を確認してください。 ネットワーク要件 を参照してください。
サイジング
LIGHT プロファイル に準拠します。MPC ノードは合計 9 台 (サイトあたり 3 台)で、加えて鍵メタデータ用の PostgreSQL クラスターをサイトごとに配置します。
| ロール | 数 | ノードあたり vCPU | ノードあたり RAM | ディスク |
|---|---|---|---|---|
| DuoKey MPC ノード | 9(3 × 3) | 4 | 8 GB | 20 GB |
| PostgreSQL(鍵メタデータ、サイトごと) | 3 / サイト | 6 | 16 GB | 100 GB SSD |
各鍵操作はノード間で共同計算されるため、MPC 層は CPU バウンドなホットパスになります。 高負荷の DKE では、他の層よりも先にノードの vCPU をスケールする(またはノードを追加する) ようにしてください。
ネットワーク
| フロー | 送信元 | 宛先 | ポート |
|---|---|---|---|
| Cockpit API → MPC クラスター | Cockpit API | MPC ノード(サイトごと) | 443/TCP(OAuth2) |
| MPC ノード ↔ ノード | MPC ノード | MPC ノード | DuoKey のリリースに準拠(mTLS/TCP) |
| MPC ノード → データベース | MPC ノード | PostgreSQL | 5432/TCP |
| PostgreSQL レプリケーション | プライマリ ↔ レプリカ | PostgreSQL ノード(サイト間) | 5432/TCP |
- MPC ノード間の レイテンシー は極めて重要です。 ネットワーク要件 → データセンター間レイテンシー を参照してください。
- MPC のトラフィックは 専用のハードニング済み VLAN(セキュアゾーン)に配置してください。
- すべてのノードで クロックを同期 してください(NTP)。時刻がずれたノードは共同計算から 拒否される可能性があります。
高可用性
- しきい値ベースの保管 — 単一のノードも単一の管理者も、完全な鍵を保持することは決して ありません。ノードを 1 つ失っても鍵マテリアルが露出することはありません。
- 分散型 — データセンター全体を失っても、残る 2 サイトでクラスターの稼働が継続します (しきい値の範囲内)。
- アクティブ/パッシブ — アクティブなデータセンターを失った場合はパッシブ側に フェイルオーバーします。鍵メタデータはすでにレプリケートされています。
- サイト内の 3 ノードは、別々のハイパーバイザーホスト/アンチアフィニティグループ に 分散して配置してください。
関連項目
- VM のみの展開 — マルチサイトスタック全体と DC ごとのサイジング
- ネットワーク要件 — レイテンシー、NTP、ファイアウォールのフローマトリクス
- 前提条件 → 鍵の保管 — ボールトバックエンド
- リファレンスアーキテクチャ — OpenShift + VM のハイブリッド設計