メインコンテンツまでスキップ
encrypted dataAzure Managed HSMExternal Key Manager (EKM) プロトコルwrap / unwrapkey controlDuoKey Cockpitお客様の鍵暗号化鍵vault APIVault / HSMkey never exportedRevoke the key → instant lockout
Azure Managed HSM keeps the data; DuoKey keeps the key. You stay in control — revoke the key and the data goes dark, everywhere.
適用対象:
Azure Managed HSMAzure SQL Transparent Data EncryptionCustomer-Managed Keys (CMK)External Key Manager (EKM)

Azure EKM とは​

Azure の外部キーマネージャー(EKM)プロトコルを使用すると、鍵暗号化鍵(KEK)を Azure 内に保存する代わりに、Azure Managed HSM がデータ暗号化鍵(DEK)のラップとアンラップを、お客様が運用する鍵マネージャーに委任できます。Managed HSM 上の顧客管理鍵で構成された Azure サービス — Azure SQL Database の Transparent Data Encryption(TDE)や列レベル暗号化など — は、DEK を保護または復元する必要があるたびに EKM エンドポイントを呼び出します。

DuoKey Cockpit はこのプロトコル(API バージョン 0.1-preview)を組み込みアプリとして実装しています。DuoKey が EKM プロキシとして動作し、KEK が DuoKey vault の外に出ることはありません。

Azure EKM のリクエストパス
Azure SQL TDEManaged HSM 上の顧客管理鍵
Azure Storage / その他の CMK ワークロード列レベル暗号化など
相互 TLS 上の EKM プロトコル(0.1-preview)
DuoKey Cockpit エンドポイント推測不可能なスラッグ — /azureekm/{slug}mTLS 終端: クライアント CA の検証、任意の Subject CN ピン留め
ラップ / アンラップ
テナント vaultKEK(AES-256 または RSA-2048/4096)を保持RSA 秘密鍵はラップ/アンラップ中も外に出ない

Azure はラップ/アンラップのたびに mTLS で終端された Cockpit エンドポイントを呼び出します。KEK 自体がテナント vault の外に出ることはありません。

ラップ / アンラップ

Azure は、お客様の KEK でラップまたはアンラップする DEK を送信します。KEK 自体が Azure に公開されることはありません

相互 TLS

すべてのリクエストは、お客様が設定した CA にチェーンする必要があるクライアント証明書で認証されます

アルゴリズムの選択

AES-256 鍵には AES Key Wrap(パディングあり/なし)、RSA 鍵には RSA-OAEP-256 を使用できます

セルフテストとヘルスチェック

組み込みのラップ/アンラップ往復テストと、エンドポイントの構造化されたヘルスチェック

Cockpit の Apps モデルへの適合​

DuoKey の他の統合と同様に、Azure EKM プロキシは Cockpit の Apps カタログからデプロイされる App です。別途インストールするものはありません。他のアプリや鍵を管理するのと同じインターフェースから EKM エンドポイントをデプロイでき、エンドポイントはデプロイ時に選択した単一の vault と鍵にバインドされます。

サポートされるアルゴリズム​

アルゴリズム鍵タイプ説明
A256KWAES-256AES Key Wrap(RFC 3394)
A256KWPAES-256パディング付き AES Key Wrap(RFC 5649)— 任意長の平文向け
RSA-OAEP-256RSA-2048 / RSA-4096SHA-256 を使用する RSA-OAEP
暗号処理が実行される場所

AES アルゴリズムの場合、ラップ/アンラップは vault から取得した生の KEK を使用して実行されます。RSA-OAEP-256 の場合は代わりに vault アダプターに処理が委任されるため、HSM で保護された RSA 秘密鍵が vault の外に出ることはありません。

動作の仕組み​

1

Azure が DEK の保護または復元を必要とする

Azure Managed HSM(または Azure SQL TDE のように Managed HSM の顧客管理鍵で構成された Azure サービス)が、新しい DEK をラップする、あるいは以前ラップした DEK をアンラップする必要が生じます。

2

Azure が mTLS 経由で EKM プロキシを呼び出す

Azure はすべてのリクエストでクライアント証明書を提示します。エンドポイントで相互 TLS が必須になっている場合(既定)、DuoKey は証明書が設定済みのクライアント CA にチェーンすることを検証し、期待する Subject CN をピン留めしている場合は証明書の CN がそれと一致することも検証します。

3

DuoKey がエンドポイントの鍵を解決する

推測不可能なエンドポイントパス(そのスラッグ)は、エンドポイントのデプロイ時に選択した vault と鍵 — つまり鍵暗号化鍵 — に解決されます。

4

KEK に対してラップまたはアンラップが実行される

A256KW/A256KWP の場合、処理は vault から取得した KEK の生の鍵マテリアルに対して実行されます。RSA-OAEP-256 の場合は vault に委任されるため、秘密鍵が vault の外に出ることはありません。

5

結果が Azure に返される

ラップ(またはアンラップ)された鍵のバイト列が、同じ mTLS 接続を通じて Azure に返されます。鍵で監査ログが有効になっている場合、その操作は DuoKey の監査証跡に記録されます。

デプロイ時に作成されるエンドポイント​

Azure EKM アプリをデプロイすると、自動生成されたスラッグで識別されるエンドポイントが 1 つ、/azureekm/<slug> の配下に作成されます。

操作パス目的
プロキシ情報POST /azureekm/{slug}/infoプロキシの識別情報を返します。Azure がエンドポイントを検出するために使用します
鍵メタデータPOST /azureekm/{slug}/{key_name}/metadata鍵のタイプ、サイズ、サポートされる操作(および RSA 鍵の場合は公開モジュラスと指数)を返します
ラップPOST /azureekm/{slug}/{key_name}/wrapkeyKEK で DEK を暗号化します
アンラップPOST /azureekm/{slug}/{key_name}/unwrapkey以前ラップされた DEK を復号します
ヘルスGET /azureekm/{slug}/health監視用のシンプルなヘルスチェック
プロトコルエンドポイントに JWT はありません

これらのエンドポイントは、ユーザーセッションや JWT ではなく、相互 TLS と推測不可能なスラッグによって Azure を認証します。スラッグはエンドポイントのデプロイ時に生成されるもので、資格情報として扱う必要があります。

主な機能​

相互 TLS

クライアント CA の検証と、特定の Managed HSM ID に対する任意の Subject CN ピン留め

AES と RSA のアルゴリズム

A256KW、A256KWP、RSA-OAEP-256 — エンドポイントごとに許可するアルゴリズムを制限できます

vault で保護された KEK

鍵が DuoKey vault の外に出ることはありません。RSA 秘密鍵はラップ/アンラップ中も外に出ません

セルフテスト

ワンクリックのラップ/アンラップ往復テスト — AES-256 の KEK では実際の鍵に対して実行され、それ以外では合成的な疎通確認として実行されます。エンドポイントのヘルスチェックは RSA でも実際の鍵を使用します

構造化されたヘルスチェック

デプロイ状況、鍵の可用性、ラップ/アンラップ、mTLS 設定を 1 回の呼び出しで検証します

監査ログ

鍵で監査ログが有効になっている場合、ラップとアンラップの操作が記録されます

ユースケース​

Azure SQL TDE

Azure Managed HSM の外部でお客様が管理する KEK により、SQL Database の Transparent Data Encryption 鍵を保護します。

列レベル暗号化

Managed HSM の CMK 上に構築された Always Encrypted / 列レベル暗号化のシナリオでも、外部に保持された同じ KEK を使用します。

鍵の主権

暗号化されたデータの管理は Azure に任せたまま、鍵暗号化鍵をお客様自身の管理下に維持します。

即時の失効

DuoKey でエンドポイントまたは鍵を無効にすると、Azure はただちにラップとアンラップを実行できなくなります。

前提条件​

前提条件

  • 顧客管理鍵/外部キーマネージャー向けに構成された Azure Managed HSM(またはそれをバックエンドとする Azure サービス)
  • EKM 接続用の Azure のクライアント証明書を発行するクライアント CA 証明書
  • AES-256 鍵(A256KW/A256KWP 用)または RSA-2048/4096 鍵(RSA-OAEP-256 用)を含む DuoKey vault
  • Apps を管理する権限を持つ DuoKey Cockpit の管理者アクセス

はじめに​

ベンダードキュメント​