Cloud Service
Azure Key Vault Managed HSM
規制要件を満たす占有HSMで暗号鍵を完全管理。Azure Key Vault Managed HSM が単一テナント専用プールと FIPS 140-3 Level 3 検証、セキュリティドメインによる鍵主権を提供。AWS CloudHSM 相当。
- 1.単一テナント専用の HSM プールで暗号鍵を生成・保管するサービス。
- 2.セキュリティドメインとクォーラムで鍵の主権を自組織が握る。
- 3.AWS の CloudHSM に近く、占有HSMと厳格な規制要件向け。
解決する課題
- 共有基盤ではなく単一テナント専用のハードウェアで暗号鍵を保護したい(マルチテナント分離では不十分な規制要件)
- 鍵マテリアルの主権を自組織が完全に握りたい(Microsoft でも鍵を取り出せない設計)
- FIPS 140-3 Level 3 など厳格な検証レベルが監査・コンプライアンスで求められる
- 大量の HSM 保護鍵を高いスループットで集中管理したい(Storage / SQL / Disk のカスタマー管理キーの保管先)
主要概念と用語
- Managed HSM プール: 専用 HSM パーティションの論理コンテナ。共有基盤ではなく、契約した組織が占有する単一テナント構成
- セキュリティドメイン(Security Domain): HSM プールを暗号学的に縛るデータの塊。鍵やロール割り当てなどプール全体の状態を暗号化して保護し、災害復旧や別 HSM への移行の起点になる。生成時に取得し、安全に保管する必要がある
- クォーラム(M of N): セキュリティドメインを複数の RSA 鍵で分割保護する仕組み。例として 3 個の鍵のうち 2 個が揃わないとセキュリティドメインを復号できない、といった閾値を設定する
- ローカル RBAC(マネージドHSMロール): プール内で完結する独自のロールベース認可。Azure 全体の RBAC とは別に、HSM 管理者・暗号担当者などのロールをデータプレーンで割り当てる
- 保護レベル(hsm-platform): 鍵は HSM の境界内で生成・保持され、平文で外部に出ない。FIPS 140-3 Level 3 検証済みのハードウェアで動作する
- BYOK(Bring Your Own Key): オンプレミスの HSM で生成した鍵を暗号化したまま取り込み、自組織起源の鍵として運用する
- 論理的な削除(Soft Delete)/ 消去保護(Purge Protection): 誤削除・悪意ある削除からプールと鍵を守る安全装置
仕様・制限・クォータ
- プールは複数の HSM パーティションで構成され、可用性のために冗長化される。鍵はパーティション間でレプリケートされる
- 暗号操作のスループットは Vault(premium)より高い水準を狙える設計で、1 秒あたりの操作数に上限(スロットリング)がある。超過時は
429 Too Many Requestsが返るためリトライ(指数バックオフ)が前提 - 格納できる鍵の数や種類(RSA / EC / AES など)に上限があり、用途に応じて選ぶ
- Soft Delete は既定で有効で、削除後も保持期間内は復元できる。Purge Protection を有効化すると保持期間中の完全削除を禁止できる
- 各 Azure サービス(Storage / SQL / Disk など)の**カスタマー管理キー(CMK)**の保管先として参照できる
セキュリティドメインのファイルとクォーラム用の秘密鍵を紛失すると、HSM プールの状態を復号できず、災害時に復旧できなくなります。生成直後に安全な複数の場所へ保管し、クォーラム鍵を保持する担当者を分散させてください。
内部の仕組み
Managed HSM の鍵は、鍵マテリアル自体が HSM の境界外に出ないことが前提です。アプリは「この鍵で暗号化・署名して」という暗号操作をプールに依頼し、結果だけを受け取ります。大きなデータには各サービスがエンベロープ暗号化を使い、実データは高速なデータ暗号化キー(DEK)で暗号化し、その DEK を Managed HSM 上のキー暗号化キー(KEK)でラップして保管します。
- プールの作成後、**セキュリティドメインを生成・ダウンロードして初めて有効化(アクティベート)**される。この手順を経るまでプールは使えない
- すべてのアクセスは Microsoft Entra ID で認証され、**ローカル RBAC(マネージドHSMロール)**で認可される
- 鍵・操作の**ログは Azure Monitor(診断設定)**経由で Log Analytics / Storage / Event Hubs に送れる
- アプリ側はマネージド ID で認証すれば、プールにアクセスするための資格情報自体が不要になる
共有基盤の HSM で十分なら Key Vault premium がコスト・運用ともに軽量です。単一テナント専用・セキュリティドメインによる鍵主権・高いスループットが要件のときに Managed HSM を選びます。
設計パターン / ベストプラクティス
- セキュリティドメインのファイルとクォーラム鍵を分散保管し、復旧手順を文書化・訓練する
- ローカル RBAC で職務を分離(管理者・暗号担当者・読み取りなど)し、最小権限を徹底する
- アプリにはマネージド ID を付与し、資格情報のハードコードを排除する
- Purge Protection を本番で有効化し、CMK を使うサービスの鍵を不可逆な削除から守る
- 鍵のローテーションポリシーを設定し、有効期限切れ前に自動更新する
- BYOK で持ち込んだ鍵も含め、用途・環境ごとにプールやキーを整理する
運用・監視
- 診断設定を有効化し、すべてのアクセスと暗号操作を Log Analytics で監査する
- 鍵のローテーション期限・有効期限をアラート(Azure Monitor)で監視する
403 Forbidden時は ローカル RBAC ロール割り当て / ネットワーク(ファイアウォール・Private Endpoint) を確認する429(スロットリング)時は指数バックオフでリトライし、頻繁に使う鍵操作の負荷を平準化する- Private Endpoint でパブリックアクセスを遮断し、VNet 内からのみ到達可能にする
コスト
固定費の比重が大きいのが特徴です。プールを確保している時間に対して課金され、Vault の従量課金とは性質が異なります。
| 項目 | 課金の考え方 | 向いている用途 |
|---|---|---|
| HSMプール | 確保している時間に対する固定費 | 占有HSM・規制要件・鍵主権 |
| 暗号操作 | プール内で実行(プール固定費に内包) | 高スループットな署名・ラップ |
| Vault premium との比較 | Vault は操作ごとの従量+HSM鍵の月額 | 共有基盤で十分な一般用途 |
Managed HSM は使っていなくてもプールの固定費が発生します。一般的なシークレット保管や少数の HSM 保護鍵なら Key Vault(standard / premium) のほうが安く済むことが多いです。
セキュリティ
- 単一テナント専用 HSM と FIPS 140-3 Level 3 検証で、共有基盤では満たせない要件に対応する
- セキュリティドメイン + クォーラムで鍵の主権を自組織が握り、Microsoft でも鍵を取り出せない
- ローカル RBAC で職務を分離し、アクセスを最小化する
- ネットワーク制限(ファイアウォール許可・Private Endpoint)でパブリック到達面を縮小する
- Soft Delete + Purge Protection で誤削除・悪意ある削除から守る
- 診断ログで全アクセスを監査し、異常をアラートする
セキュリティドメインのファイルやクォーラム鍵を、保管せず放置したり 1 か所だけに置いたりするのは NG です。紛失すると災害時に復旧できません。また、全員に管理者ロールを付与する「広すぎる権限」も避け、ローカル RBAC で用途別ロールに絞ってください。
関連サービス・比較
最も近いのは AWS CloudHSM です。占有 HSM という位置づけが共通します。
| 観点 | Azure Managed HSM | AWS CloudHSM |
|---|---|---|
| 位置づけ | 単一テナント専用HSMプール | 専有HSMクラスター |
| 検証レベル | FIPS 140-3 Level 3 | FIPS 140-2/140-3 Level 3 |
| 鍵の主権 | セキュリティドメイン+クォーラム | クラスタ所有者が管理 |
| 認証 | Entra ID+ローカルRBAC | PKCS#11/HSMユーザー |
| 誤削除保護 | Soft Delete+Purge Protection | クラスタ削除保護 |
Managed HSM は Key Vault ファミリーの一員で、共有基盤の Key Vault(standard / premium) とは別の占有プールです。多くの用途は Vault で足り、規制要件や鍵主権が必要なときに Managed HSM を選びます。
ハンズオン / CLI例
# Managed HSM プールを作成(管理者に自分を指定)
az keyvault create \
--hsm-name demo-mhsm-0628 \
--resource-group demo-rg \
--location japaneast \
--administrators "$(az ad signed-in-user show --query id -o tsv)" \
--retention-days 90
# セキュリティドメインを生成してダウンロード(3個中2個のクォーラム)
# ※ cert1.cer〜cert3.cer は事前に用意した RSA 公開鍵証明書
az keyvault security-domain download \
--hsm-name demo-mhsm-0628 \
--sd-wrapping-keys cert1.cer cert2.cer cert3.cer \
--sd-quorum 2 \
--security-domain-file demo-sd.json
# ローカル RBAC で暗号担当者ロールを付与
az keyvault role assignment create \
--hsm-name demo-mhsm-0628 \
--role "Managed HSM Crypto User" \
--assignee "$(az ad signed-in-user show --query id -o tsv)" \
--scope /keys
# RSA 鍵を HSM 保護で作成
az keyvault key create \
--hsm-name demo-mhsm-0628 \
--name app-kek \
--kty RSA-HSM \
--size 2048
Azure Service
Azure Key Vault Managed HSMを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
セキュリティ・ID
比較で見る軸
クラウド: Azure / カテゴリ: セキュリティ・ID / 難易度: intermediate
導入後に効く点
セキュリティドメインとクォーラムで鍵の主権を自組織が握る。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Azure
- カテゴリ
- セキュリティ・ID
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- security / operational / reliability
判断チェックリスト
- 自社の用途が「セキュリティ・ID / security」に近いか確認する。
- 強みである「単一テナント専用の HSM プールで暗号鍵を生成・保管するサービス。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。