メインコンテンツまでスキップ
適用対象:
DuoKey Cockpit v2アプリカタログKMIP による外部キー/vault カストディ

この製品ファミリーとは​

Cockpit のカタログにあるデータベース暗号化アプリは、いずれも同じ根本的な課題を異なる方法で解決します。データベースエンジン(またはそのクライアントドライバー)は、ローカルに保存したくない暗号化キーを必要とし、DuoKey はそのキーをテナント vault から、データベース側がすでに話せる標準プロトコル — 通常は KMIP — を通じて提供します。

この傘の下には、2 つの異なる暗号化モデルがあります。

  • エンジンネイティブな Transparent Data Encryption(TDE)。 データベースエンジン自身が暗号化を担います。エンジンは DuoKey からプリンシパルキーまたはマスターキーを取得し(あるいは取得するように設定され)、ディスク上のデータファイル、テーブルスペース、SSTable、コミットログを透過的に暗号化します。アプリケーションやクエリは暗号化が行われていることを意識しません。DuoKey がテーブルのデータを見ることはなく、預かるキーマテリアルだけを扱います。Percona PostgreSQL TDE、MySQL/MariaDB TDE、Cassandra TDE、Couchbase の Encryption at Rest はすべてこのカテゴリーに該当します。
  • クライアントサイド/アプリケーションレベルの暗号化。 データベースエンジンは平文を一切見ません。クライアントドライバーまたはライブラリが、DuoKey から(間接的に)取得したキーを使って特定のフィールドや列をアプリケーションから出る前に暗号化し、戻ってくる際に復号します。データベースが保存・インデックス化するのは暗号文です。MongoDB Client-Side Field-Level Encryption(CSFLE)、MongoDB Queryable Encryption、SQL Server Always Encrypted がこのカテゴリーに該当します。ここでの DuoKey の役割は、最上位のラッピングキー(Customer Master Key またはそれに相当するもの)を預かることに絞られ、レコードごとの暗号化キーそのものを扱うことはありません。
SQL EKM とは別物です

SQL Server Always Encrypted(本セクション)は、SQL EKM(SQL Server TDE を対象とする既存の別製品)とは異なる統合です。直接的な比較は SQL Always Encrypted のページを参照してください。

7 つのエンジン、1 つの外部キーカストディアン
Percona PostgreSQL TDEKMIP
MySQL / MariaDB TDEKMIP(キーリング)
Cassandra TDEKMIP(ノードごと)
MongoDB CSFLEドライバーネイティブ
MongoDB Queryable Encryptionドライバーネイティブ
Couchbase Encryption at RestKMIP
SQL Server Always Encryptedドライバーネイティブ
各エンジンのネイティブプロトコル
DuoKey Cockpit外部キーカストディアン — アプリカタログ
キー / CMK / KEK のカストディ
テナント vault / HSMキーマテリアルがデータベース内に存在することはありません

各エンジンはすでに話せるプロトコル — TDE エンジンと Couchbase は KMIP、クライアントサイドのエンジンはドライバーネイティブな呼び出し — で Cockpit に到達し、Cockpit にリンクされた vault がキーマテリアルの存在する唯一の場所です。

7 つのエンジン​

エンジン暗号化モデルオンボーディング実証ステータス
Percona PostgreSQL TDEエンジンネイティブな TDE(KMIP プリンシパルキー)詳細ページエンドツーエンドで実証済み — 実際の Percona 17.5 コンテナに対して、ライブの KMIP ラウンドトリップとディスク上の暗号文を検証済み
MySQL / MariaDB TDEエンジンネイティブな TDE(キーリングプラグイン)ウィザードデプロイと設定の生成は実物。セルフテストは現時点ではシミュレーション
Cassandra TDEエンジンネイティブな TDE(ノードごとの KMIP キープロバイダー)詳細ページデプロイ成果物とローテーションのランブックは実物。ローリング展開はオペレーターが実行するランブックであり、まだ自動化されていません
MongoDB CSFLEクライアントサイドのフィールドレベル暗号化(不透明な暗号文)ウィザードデプロイと設定の生成は実物。セルフテストは現時点ではシミュレーション
MongoDB Queryable Encryptionクライアントサイドのフィールドレベル暗号化(クエリ可能 — 等価/範囲)詳細ページ出力される encryptedFieldsMap と CMK 参照は実物。セルフテストは現時点ではシミュレーション
Couchbase Encryption at RestKMIP 経由のエンジンネイティブな DEK/KEK ラップ詳細ページKEK のプロビジョニングと KMIP 登録バンドルは実物。Couchbase 側での適用はオペレーターによる手動作業
SQL Server Always Encryptedクライアントサイドの列暗号化(CMK/CEK)詳細ページCMK パスと T-SQL の生成は実物。セルフテストは現時点ではシミュレーション
実証ステータスを正直に読む

現時点でライブかつ自動化されたエンドツーエンドの実証があるのは Percona PostgreSQL TDE だけです。Cockpit が実行する本物の KMIP サーバー、TTLV/mTLS 経由でプリンシパルキーを登録・取得する本物の pg_tde クライアント、そしてライブのコンテナに対してディスク上の暗号文を grep する統合テストがあります。他の 6 つのエンジンは、実際に使用可能なデプロイ成果物 — 設定スニペット、T-SQL、CQL、KMIP 登録バンドル — を生成し、テナント vault にすでに保持されている実在のキーにリンクします(Couchbase の登録ステップはさらに進んで、専用の KEK を直接プロビジョニングします)。ただし、それらのセルフテスト/ヘルスチェックのエンドポイントは現時点ではシミュレーション結果を返し、対象データベースに対するライブのラウンドトリップを実行していません。この点は各ページで明示しています。これは、基盤となるキーカストディや成果物の生成が偽物であることを意味するのではなく、ヘルスチェックがまだライブのプローブに接続されていないというだけです。

アプリカタログでの位置づけ​

ここで扱うすべてのエンジンは、Cockpit のアプリカタログの database カテゴリーに登録されたエントリです。いずれかをデプロイすると、テナントにスコープされたアプリが作成され、そのアプリは次のいずれかを行います。

  • Cockpit の KMIP サーバー経由でラップ/提供される vault キーにリンクする(TDE エンジン、およびクライアントサイドエンジンの CMK)、または
  • 対象システムが KMIP 識別子で参照する専用のキー暗号化キー(KEK)をプロビジョニングする(Couchbase)。

一部のエンジンはガイド付きのマルチステップウィザードでオンボードされ(MySQL TDE、MongoDB CSFLE)、残りはアプリの詳細ページで直接設定します。これは、汎用ウィザードがまだモデル化していないフィールドが必要であるか、オンボーディングが本質的に「プロビジョニングしてオペレーターにバンドルを渡す」一度きりのフローであるためです(Cassandra TDE、MongoDB Queryable Encryption、Couchbase、SQL Always Encrypted)。Percona PostgreSQL TDE も詳細ページからオンボードしますが、これはより豊富な設定項目(コネクションプーリング、フェイルオーバー、レプリカホスト)を反映したものです。

すべてのアプリは、オンボーディングの経路にかかわらず同じライフサイクル、すなわちデプロイ → 有効化/無効化 → ヘルスチェック → セルフテスト → 削除を提供し、これに加えてエンジン固有の操作(Percona のプリンシパルキーローテーション、Always Encrypted の CEK 作成、Couchbase のクラスター登録、Cassandra のレプリケーションを考慮したキーローテーション)を備えます。