Azure ストレージアカウントにおけるCMK暗号化設定
このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、 「どうやって直すのか?」 という具体的な修復手順(Azure Portal、Azure CLI、PowerShell、Terraformなど)まで、分かりやすく解説します。
この記事では、重要なデータを格納するAzureストレージアカウントでカスタマーマネージドキーによる暗号化を設定する方法について、リスクと対策を解説します。
ポリシーの説明
重要なビジネスデータ、個人情報(PII)、機密情報などを格納するストレージアカウントでは、標準的なMicrosoft管理キーによる暗号化では不十分な場合があります。
特に規制要件の厳しい業界(金融、医療、政府機関、重要インフラなど)では、カスタマーマネージドキー(CMK)による暗号化が必須要件となり、組織が独自に暗号化キーを管理し、必要に応じて即座にアクセスを無効化できる能力が求められます。
修復方法
コンソールでの修復手順
Azure コンソールを使用して、重要データを格納するストレージアカウントでカスタマーマネージドキーによる暗号化を有効にします。
事前準備
- データ分類とリスク評価
- データ分類レベル:
- Critical: 金融取引、医療記録、政府機密情報
- High: PII、クレジットカード情報、知的財産
- Medium: 内部業務データ、顧客コミュニケーション
- Low: 公開情報、マーケティング資料
- 規制要件マッピング:
- GDPR/CCPA: 個人データ
- PCI-DSS: カード会員データ
- HIPAA: 保護対象保健情報(PHI)
- SOX: 財務記録
- データ分類レベル:
- エンタープライズ級Key Vaultの選定
- Azure Key Vault Premium:
- コスト効率的(約$5/キー/月)
- 中程度のセキュリティ要件に適合
- Azure Managed HSM:
- 完全なシングルテナントHSM
- 高コスト(約$3,600/HSM/月)
- 最高レベルのセキュリティ要件に適合
- 地理的冗長性:
- プライマリとセカンダリリージョンにKey Vaultを配置
- クロスリージョンバックアップの実装
- Azure Key Vault Premium:
手順
- 専用Key Vaultの作成(重要データ用)
- Azure Portalで「Key Vaults」に移動
- 「作成」をクリックし、以下の設定を行う:
- 名前: kv-critical-[environment]-[region]
- 価格レベル: Premium(HSMバックアップ)
- 削除保護(Purge Protection): 有効(必須、不可逆)
- 論理的な削除(Soft Delete): 有効(既定)
- 保持期間: 90日(規制要件に応じて調整)
- ネットワーク設定:
- ファイアウォール: 有効
- プライベートエンドポイント: 設定推奨
- ゼロトラストアクセス制御の実装
- RBAC設定 (Key Vaultの「アクセス制御(IAM)」):
- 「Key Vault Administrator」: セキュリティチームのみ(2-3名)
- 「Key Vault Crypto Service Encryption User」: ストレージアカウントのマネージドID
- 「Key Vault Reader」: 監査担当者(読み取りのみ)
- 条件付きアクセス:
- 時間制限: 業務時間内のみアクセス許可
- 地理的制限: 特定の国/リージョンからのみ
- MFA必須: 全管理者アクセスにMFAを強制
- Privileged Identity Management (PIM):
- Just-In-Timeアクセス: 最大4時間の一時的権限付与
- 承認ワークフロー: 2名以上の承認者が必要
- アクセスレビュー: 四半期ごとの権限見直し
- RBAC設定 (Key Vaultの「アクセス制御(IAM)」):
- エンタープライズ級暗号化キーの構成
- Key Vaultの「キー」セクションで「生成/インポート」
- キー仕様:
- キーの種類: RSA-HSM(FIPS 140-2 Level 2/3保護)
- RSAキーサイズ:
- 4096ビット: 重要データ(長期保管)
- 3072ビット: 一般機密データ
- 2048ビット: 短期保管データ
- キー名命名規則:
cmk-[dataclass]-[env]-[YYYYMMDD]- 例: cmk-critical-prod-20240101
- キーローテーションポリシー:
- 自動ローテーション: 有効
- ローテーションスケジュール:
- Criticalデータ: 30日
- Highデータ: 60日
- Mediumデータ: 90日
- 通知設定: ローテーション29日前にアラート
- ストレージアカウントの高度な設定

- 対象ストレージアカウントの「セキュリティとネットワーク」→「暗号化」
- 「暗号化の種類」で「カスタマー マネージド キー」を選択
- 「インフラストラクチャの暗号化」を有効化(二重暗号化)
- 暗号化スコープの作成:
- 重要データ用の専用スコープを作成
- スコープごとに異なるキーを割り当て
- 包括的な監視とアラート体制
- 診断ログ設定:
- Log Analyticsワークスペースへの全ログ送信
- Azure Sentinelとの統合(SIEM/SOAR)
- ログ保持期間: 最低1年(コンプライアンス要件)
- クリティカルアラート設定:
- P1 – 緊急:
- キー削除/無効化操作
- アクセスポリシー変更
- 5回以上の認証失敗
- P2 – 高:
- キー使用量の200%以上の増加
- 未承認地域からのアクセス
- 業務時間外の管理操作
- P3 – 中:
- キーローテーション期限接近
- バックアップ失敗
- P1 – 緊急:
- インシデントレスポンス:
- 24/7 SOC通知
- 自動エスカレーションプロセス
- Runbookによる対応手順の標準化
- 診断ログ設定:
- エンタープライズBCP/DR戦略
- バックアップ戦略:
- キーバックアップ: 毎日自動実行
- バックアップ保存先:
- プライマリ: Azure Backup Vault
- セカンダリ: オフサイトHSM
- ターシャリ: エスクローサービス
- 保持期間: 7年(法的要件に準拠)
- ディザスタリカバリ:
- RTO(目標復旧時間): 4時間
- RPO(目標復旧時点): 1時間
- フェイルオーバー手順:
- セカンダリKey Vaultへの切り替え
- DNSレコード更新
- ストレージアカウントのキー再設定
- DRテスト: 四半期ごとに実施
- バックアップ戦略:
最後に
この記事では、重要データを格納するAzureストレージアカウントにおけるエンタープライズ級CMK実装について解説しました。
特に規制要件の厳しい業界(金融、医療、政府機関)では、このエンタープライズ級のCMK実装がGDPR、HIPAA、PCI-DSS等のコンプライアンス要件を満たす上で必須となります。
この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。