security
A
信頼度ランク
| S | 公式ソース確認済み |
| A | 成功実績多数・失敗例少数 |
| B | 賛否両論 |
| C | 動作未確認・セキュリティリスク高 |
| Z | 個人所感 |
CloudHSM vs KMS — ハードウェアセキュリティモジュールの選択基準
AWS CloudHSMとKMSの根本的な違い、FIPS 140-2 Level 3準拠、シングルテナントHSM、KMSカスタムキーストアとしてのCloudHSM利用、コストと運用負荷の比較を解説。
一言結論
ほとんどの規制要件はKMSのFIPS 140-2 Level 2で満たせるため、CloudHSMはAWSも鍵にアクセスできない完全制御やFIPS Level 3が法的に求められる限定的なユースケースに絞って採用すべきだ。
KMS と CloudHSM の根本的違い
KMS(AWS Key Management Service):
→ AWSマルチテナントHSMを使用
→ FIPS 140-2 Level 2 準拠(一部 Level 3)
→ キーの管理はAWSと共有(AWS側がHSWを管理)
→ 完全マネージド(ユーザーは鍵の使い方のみ管理)
→ AWS各サービスとネイティブ統合
CloudHSM:
→ シングルテナントHSM(専用ハードウェア)
→ FIPS 140-2 Level 3 準拠
→ キーの完全制御はユーザー側(AWSもアクセス不可)
→ VPC内に配置、ユーザーが管理責任を持つ
→ AWS Managed Keyはない(カスタムキーのみ)
コンプライアンス要件での使い分け
FIPS 140-2 Level 2(KMS)で十分なケース:
→ ほとんどの規制要件(SOC 2, ISO 27001, PCI DSS等)
→ AWS サービス暗号化(S3, RDS, EBS等)
→ コスト効率を重視する場合
FIPS 140-2 Level 3(CloudHSM)が必要なケース:
→ 金融機関の規制(一部のPCI DSS要件)
→ 政府・防衛関連の規制
→ 鍵の完全制御(AWSも含めて誰もアクセスできない)を要求される場合
→ 独自の暗号化アルゴリズムを使いたい場合
CloudHSM の構成
CloudHSMはVPC内のHSMデバイスとして動作する。
推奨構成(高可用性):
VPC
├── AZ-a: CloudHSM インスタンス 1
└── AZ-b: CloudHSM インスタンス 2
→ 2台以上のHSMでクラスターを構成
→ HSM間でキーが自動同期される
→ 1台が故障しても継続稼働
接続方式:
→ VPC内のEC2/コンテナからクライアントライブラリ経由でアクセス
→ VPCエンドポイントは不要(VPN内直接通信)
CloudHSM のセットアップ
# CloudHSMクラスターの作成
aws cloudhsmv2 create-cluster \
--hsm-type hsm1.medium \
--subnet-ids subnet-aaa subnet-bbb
# HSMの追加
aws cloudhsmv2 create-hsm \
--cluster-id cluster-xxx \
--availability-zone ap-northeast-1a
# 初期化(自己署名CA証明書の生成とクラスター証明書の発行)
# → 詳細なセットアップはCloudHSMクライアントを使って実施
KMS カスタムキーストア(CloudHSM連携)
KMSの使い勝手をそのままに、CloudHSMでキーを保管する。
# カスタムキーストアの作成
aws kms create-custom-key-store \
--custom-key-store-name my-cloudhsm-store \
--cloud-hsm-cluster-id cluster-xxx \
--trust-anchor-certificate file://customerCA.crt \
--key-store-password password123
# カスタムキーストアに接続
aws kms connect-custom-key-store \
--custom-key-store-id cks-xxx
# カスタムキーストアにKMSキーを作成
aws kms create-key \
--custom-key-store-id cks-xxx \
--description "CloudHSM backed key"
KMS カスタムキーストア(CloudHSM)の特徴:
→ KMSのAPI/SDK/統合をそのまま使える
→ キーの暗号化マテリアルはCloudHSMに保管
→ S3, EBS, RDS等のKMS統合サービスと組み合わせ可能
→ CloudHSMへの接続が切れるとキーが使用不可になる(注意)
コスト比較
KMS:
AWS管理キー: 無料
CMK(カスタマー管理キー): $1/月/キー
API呼び出し: $0.03/10,000回
CloudHSM:
クラスター作成: 無料
HSMインスタンス: $1.60/時間(約$1,168/月)
2台構成(推奨): 約$2,336/月
→ CloudHSMは月数千ドルのコストが発生
→ コスト的にKMSが優位だが、規制要件がある場合はCloudHSMを選択
試験頻出ポイント
| シナリオ | 回答 |
|---|---|
| FIPS 140-2 Level 3 の証明が必要 | CloudHSM |
| AWSも含めて誰もキーにアクセスできない | CloudHSM |
| KMSのAPI互換でCloudHSMにキーを保管 | KMSカスタムキーストア |
| 一般的なAWSサービス暗号化(S3等) | KMS CMK で十分 |
| CloudHSMの最小推奨台数 | 2台(高可用性のため) |
まとめ
KMSはほとんどのユースケースで十分な暗号化を提供するが、FIPS 140-2 Level 3準拠やキーの完全制御が必要な規制環境ではCloudHSMを選択する。KMSカスタムキーストアを使えばKMSのAPIを維持しながらCloudHSMにキーを保管できる。コストはCloudHSMが大幅に高いため、要件を慎重に評価する。