Cloud Service
Cloud HSM (Cloud KMS)
FIPS 140-2 Level 3 認証の専用ハードウェアで鍵を守り、厳格なコンプライアンス要件を満たせる保護レベル。Cloud KMS の鍵を HSM 内に閉じ込めて運用する Cloud HSM。AWS KMS の HSM バックエンド/CloudHSM に相当。
- 1.Cloud KMS の保護レベルの一つで、鍵を FIPS 140-2 Level 3 認証の専用 HSM 内に閉じ込める。
- 2.鍵マテリアルは HSM の外に平文で出ず、KMS と同じ API・IAM・監査ログで扱える。
- 3.厳格な規制対象データに限定して使い、汎用データはソフトウェア鍵でコストを抑える。
解決する課題
暗号鍵をマネージドに扱いたいが、鍵マテリアルがソフトウェア上に存在すること自体を規制やポリシーが許さない場面があります。Cloud HSM は Cloud KMS の保護レベルの一つとして、鍵を FIPS 140-2 Level 3 認証の専用ハードウェア(HSM) の内部に閉じ込めて生成・利用します。
- 金融・公共・医療など、HSM での鍵保護が要件として定められている
- 鍵マテリアルをソフトウェアやメモリ上に平文で出したくない
- ただし HSM クラスタの調達・冗長化・パッチ・可用性管理は自前で抱えたくない
- 既存の Cloud KMS の API・IAM・監査の仕組みはそのまま使い回したい
主要概念と用語
- 保護レベル(Protection Level): 鍵マテリアルをどこに置くかの指定。
SOFTWARE、HSM(Cloud HSM)、EXTERNAL(Cloud EKM)から選ぶ。Cloud HSM は鍵作成時に--protection-level hsmを指定したもの - HSM(Hardware Security Module): 鍵を内部で生成・保管し、暗号処理だけを外に提供する耐タンパーな専用ハードウェア
- FIPS 140-2 Level 3: 米国 NIST の暗号モジュール認証規格の水準。物理的な耐タンパーやアイデンティティベースの認証などを要求する。Cloud HSM の HSM はこの水準で認証されている
- キーリング / 鍵 / 鍵バージョン: Cloud KMS と共通の概念。Cloud HSM 鍵も
KeyRingの下のCryptoKeyとそのCryptoKeyVersionとして扱う - アテステーション(Attestation): 鍵バージョンが実際に正規の HSM 内で生成・保持されていることを示す、HSM 製造元の署名付き証明
- インポート: 外部で生成した鍵マテリアルを HSM に取り込む方式。Cloud KMS のインポートジョブ経由でラップして持ち込む
- CMEK(Customer-Managed Encryption Key): 各サービスの暗号化に利用者管理の鍵を使う仕組み。その鍵の保護レベルとして Cloud HSM を選べる
仕様・制限・クォータ
- 位置づけ: 独立サービスではなく Cloud KMS の保護レベル。課金・クォータ・公式ドキュメントも Cloud KMS の一部として扱われる
- 対応用途: 対称暗号化、非対称暗号化・署名、MAC など、Cloud KMS が提供する主要な鍵用途に対応(提供範囲はリージョンや時期で変わるため公式参照)
- ロケーション: 鍵はリージョン/マルチリージョン等のロケーションに作成し、CMEK は原則リソースと同一ロケーションの鍵を使う。Cloud HSM が利用できるロケーションは限られるため事前確認が必要
- 鍵マテリアルの境界: HSM 鍵のマテリアルは HSM の外に平文で出ない。エクスポート不可で、利用は暗号オペレーション API 経由に限られる
- アテステーション: 各 HSM 鍵バージョンについてアテステーションを取得でき、HSM 由来であることを検証できる
- クォータ: 暗号オペレーションには QPS のレート上限があり、ソフトウェア鍵とは別枠になりうる。具体値は変動するため公式のクォータページを参照
内部の仕組み
Cloud HSM では、鍵マテリアルが HSM の内部で生成され、その境界を平文で越えません。利用者は Cloud KMS の API を通じて「この鍵バージョンで暗号化・復号・署名してほしい」と依頼し、実際の暗号処理は HSM 内で行われます。Google が HSM クラスタの冗長構成・容量・パッチ・物理セキュリティを運用するため、利用者は HSM 機器を意識せずマネージドに使えます。
- 鍵の利用・管理操作は Cloud Audit Logs(Data Access / Admin Activity)に記録され、誰がいつどの鍵バージョンを使ったかを監査できる
- 各 HSM 鍵バージョンには アテステーション が紐づき、鍵が正規の HSM 内に存在することを暗号学的に検証できる
- 大きなデータは エンベロープ暗号化 が基本。ローカルで生成したデータ暗号鍵(DEK)でデータを暗号化し、その DEK を HSM 鍵(KEK)でラップして保管する
Cloud HSM は独立サービスではなく、Cloud KMS の鍵を作るときに選べる保護レベルの一つです。 鍵の作成・IAM・ローテーション・監査などの操作は通常の Cloud KMS とまったく同じで、違いは鍵マテリアルが専用ハードウェアの中に閉じ込められる点です。
設計パターン / ベストプラクティス
- 規制・ポリシーで HSM 保護が要求されるデータに限定して Cloud HSM 鍵を使い、汎用データはソフトウェア鍵に分けてコストを抑える
- 用途・環境・データ分類ごとに鍵を分割し、対称鍵は自動ローテーションを設定する
- 重要なリソースは CMEK の保護レベルに HSM を指定し、暗号化を利用者側の鍵で統制する
- 監査要件が厳しい場合は、鍵バージョンの アテステーションを取得・保管して HSM 由来を証明できるようにする
- HSM が利用できるロケーションを設計初期に確認し、対象リソースと同一ロケーションに鍵を配置する
運用・監視
- 鍵の利用・管理は Cloud Audit Logs で監査する。Data Access ログは明示的な有効化が必要
PERMISSION_DENIED時は対象鍵の IAM ポリシー と、呼び出し元のロール(暗号化/復号)を確認する- CMEK で暗号化したリソースが読めない場合は、鍵バージョンの無効化・破棄予定やサービスエージェントへの権限付与漏れを疑う
- ローテーション後はプライマリバージョンと鍵の状態(有効/無効/破棄予定)を確認する
- レート上限に当たる場合は エンベロープ暗号化(DEK) でクライアント側に処理を寄せ、HSM 呼び出し回数を削減する
コスト
課金は Cloud KMS と同じく「有効な鍵バージョン数(月額)」+「暗号オペレーションのリクエスト数」が基本です。Cloud HSM 鍵はソフトウェア鍵より単価が高い傾向があるため、用途を絞るのがコスト最適化の要点です。
| 項目 | 課金の考え方 | コスト最適化のヒント |
|---|---|---|
| HSM鍵の保持 | 有効なHSM鍵バージョンごとの月額(ソフトウェアより高め) | 規制対象データに限定し、不要バージョンは破棄 |
| 暗号オペレーション | encrypt/decrypt/sign 等のリクエスト数で従量課金 | 大容量データはエンベロープ暗号化でHSM呼び出しを削減 |
| 鍵の分割 | 鍵バージョン数に比例して保持費が増える | 用途・環境で適切に分けつつ、過剰な細分化は避ける |
セキュリティ
- 鍵リソースごとに IAM で最小権限。暗号化(
cloudkms.cryptoKeyEncrypter)と復号(cloudkms.cryptoKeyDecrypter)のロールを用途で分離する - HSM 鍵のマテリアルはエクスポート不可で、平文が境界を越えない点を前提に設計する
- 監査要件には アテステーション と Cloud Audit Logs(Data Access) を組み合わせ、HSM 由来と利用履歴の両方を残す
- 組織全体の暗号化方針は 組織ポリシー で強制し、重要リソースに CMEK と HSM 保護レベルを必須化する
- 削除は即時ではなく破棄予定期間を活用し、誤破棄に備える
Cloud HSM は鍵マテリアルを専用ハードウェアで守りますが、鍵に広すぎる IAM 権限を付与すれば、結局その鍵で暗号・復号できる主体が増えてしまいます。 HSM 保護レベルの選択と、IAM の最小権限・ローテーション・監査ログの有効化は別々に必ず両立させてください。
関連サービス・比較
最も近い選択肢は同じ Cloud KMS の ソフトウェア保護レベル です。保護の強さ・コスト・要件適合の観点で比較します。
| 観点 | Cloud HSM(HSM保護) | Cloud KMS(ソフトウェア保護) |
|---|---|---|
| 鍵マテリアルの場所 | FIPS 140-2 Level 3 認証の専用HSM内 | Googleが管理するソフトウェアバックエンド |
| FIPS水準 | 140-2 Level 3 | 140-2 Level 1 相当 |
| API・IAM・監査 | Cloud KMS と共通 | Cloud KMS と共通 |
| アテステーション | HSM由来を証明可能 | 対象外 |
| コスト | 鍵バージョン単価が高め | 比較的安価 |
| 向く用途 | HSM保護が要件の規制対象データ | 一般的なCMEK・暗号化用途 |
ハンズオン / CLI例
# キーリングを作成(ロケーションは作成後に変更不可)
gcloud kms keyrings create hsm-keyring \
--location asia-northeast1
# HSM 保護レベルの対称暗号鍵を作成し、自動ローテーションを設定
gcloud kms keys create hsm-data-key \
--location asia-northeast1 \
--keyring hsm-keyring \
--purpose encryption \
--protection-level hsm \
--rotation-period 90d \
--next-rotation-time 2026-09-01T00:00:00Z
# 鍵バージョンのアテステーション(HSM由来の証明)を取得
gcloud kms keys versions describe 1 \
--location asia-northeast1 \
--keyring hsm-keyring \
--key hsm-data-key \
--attestation-file hsm-key-attestation.dat
# サービスアカウントに復号権限のみを最小権限で付与
gcloud kms keys add-iam-policy-binding hsm-data-key \
--location asia-northeast1 \
--keyring hsm-keyring \
--member "serviceAccount:app@PROJECT_ID.iam.gserviceaccount.com" \
--role roles/cloudkms.cryptoKeyDecrypter
# HSM 鍵を CMEK としてデフォルト指定した GCS バケットを作成
gcloud storage buckets create gs://my-hsm-cmek-bucket \
--location asia-northeast1 \
--default-encryption-key projects/PROJECT_ID/locations/asia-northeast1/keyRings/hsm-keyring/cryptoKeys/hsm-data-key
Google Cloud Service
Cloud HSM (Cloud KMS)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
セキュリティ・ID
比較で見る軸
クラウド: Google Cloud / カテゴリ: セキュリティ・ID / 難易度: intermediate
導入後に効く点
鍵マテリアルは HSM の外に平文で出ず、KMS と同じ API・IAM・監査ログで扱える。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Google Cloud
- カテゴリ
- セキュリティ・ID
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- security / operational
判断チェックリスト
- 自社の用途が「セキュリティ・ID / security」に近いか確認する。
- 強みである「Cloud KMS の保護レベルの一つで、鍵を FIPS 140-2 Level 3 認証の専用 HSM 内に閉じ込める。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。