Azure Stream Analytics カスタマーマネージドキーによるデータ暗号化設定について

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、
「どうやって直すのか?」 という具体的な修復手順(Azure Portal、Azure CLI、Terraformなど)まで、分かりやすく解説します。

この記事では、Stream Analyticsジョブでカスタマーマネージドキーによるデータ暗号化が無効になっている問題について、リスクと対策を解説します。

ポリシーの説明

Azure Stream Analyticsは、ストリーミングデータ処理のためのリアルタイム分析サービスです。IoTデバイス、アプリケーション、サービスからのデータストリームを分析し、毎秒数百万のイベントをサブ秒の遅延で処理できます。

Stream Analyticsは、クエリ定義、接続文字列、ユーザー定義関数、チェックポイントデータ、ジョブの状態情報などの機密メタデータを保存します。デフォルトではMicrosoftマネージドキーで暗号化されますが、カスタマーマネージドキー(CMK)により以下の利点が得られます:

  • 暗号化キーの完全制御: キーのライフサイクル全体(作成、ローテーション、無効化、削除)を顧客が管理
  • コンプライアンス準拠: HIPAA、PCI-DSS、FedRAMP、GDPR、ISO 27001などの厳格な規制要件を満たす
  • カスタムキーローテーション: 組織のセキュリティポリシーに応じた自動または手動のキーローテーション実装
  • 監査証跡: Azure Key Vaultのログを通じたキー使用状況の完全な可視化と監査
  • Bring Your Own Key (BYOK): オンプレミスのHSMで生成したキーのインポートをサポート

リスク

カスタマーマネージドキーを使用せずにStream Analyticsジョブを運用する場合、以下のセキュリティリスクが存在します:

1. データ露出リスク

  • クエリ定義、接続詳細、構成がMicrosoftマネージドキーのみで保存される
  • 暗号化されたデータへのアクセス権限に対する詳細な制御が制限される
  • 業界固有の暗号化要件を満たせない可能性
  • キーローテーションスケジュールやアクセスポリシーを制御できない

2. コンプライアンス違反リスク

  • データレジデンシー:暗号化キーが特定の地理的地域に保持されることを保証できない
  • 顧客制御暗号化の義務を満たせない(特に金融、医療、政府機関での要件)
  • 規制監査での指摘や罰則のリスク(最大で年間売上高の4%の制裁金の可能性)
  • キー管理に関する組織のセキュリティポリシーやISMS要件を実装できない

3. アクセス制御の制限

  • セキュリティインシデント時に独立してアクセスを取り消す能力の欠如
  • Microsoft内部者による理論的アクセスリスク(実際のリスクは極めて低い)
  • インシデント時のMicrosoftキー回復プロセスへの依存

4. ビジネス上の影響

  • データソースとシンクの接続詳細が顧客制御なしで保存される
  • ビジネスインテリジェンスを含むクエリロジックの潜在的露出
  • 状態情報を含むチェックポイントデータのリスク

修復方法

コンソールでの修復手順

Azure コンソールを使用して、Stream AnalyticsジョブでCMK暗号化を有効化します。

前提条件

  • 適切な権限を持つAzureサブスクリプション(所有者または共同作成者ロール)
  • ソフト削除と削除保護が有効なAzure Key Vault(Premium SKU推奨)
  • ストレージアカウント(汎用v2、Standard または Premium パフォーマンス層)
  • Stream Analyticsジョブ(CMK設定は作成時のみ可能、既存ジョブは再作成が必要)

重要: 既存のStream Analyticsジョブは、CMKを有効にするために再作成する必要があります。ジョブの停止時間を最小限にするため、計画的なメンテナンスウィンドウで実施してください。

フェーズ1:Azure Key Vaultのセットアップ

ステップ1:Azure Key Vaultの作成/構成

  1. Azure Portal → リソースの作成 → セキュリティ → Key Vault
  2. 基本設定を構成:
    • リソースグループ:適切なリソースグループを選択
    • Key Vault名:一意の名前を入力
    • リージョン:Stream Analyticsジョブのリージョンと一致させる
    • 価格レベル:StandardまたはPremium

ステップ2:必要なセキュリティ機能の有効化

  1. Key Vault設定 → プロパティ
  2. ソフト削除を有効化(デフォルトで有効、Azure CLIまたはPowerShellで確認)
  3. 削除保護を有効化(CMKに必須、本番環境では必ず有効化)
  4. 保持期間を設定(7-90日、推奨:90日)
  5. ネットワーク設定:プライベートエンドポイントまたは選択されたネットワークからのアクセスのみ許可(推奨)

ステップ3:暗号化キーの作成

  1. Key Vault → キー → 生成/インポート
  2. キー設定を構成:
    • キータイプ:RSA(推奨)またはRSA-HSM(ハードウェアセキュリティモジュール使用)
    • キー名:命名規則に従った名前(例:”key-sa-prod-cmk-001″)
    • キーサイズ:2048(最小要件)、3072、または4096(高セキュリティ環境推奨)
    • 有効:はい
    • 有効期限:組織のキーローテーションポリシーに従って設定(推奨:1年)
    • 自動ローテーション:有効化(30日前に通知)

フェーズ2:ストレージアカウントの構成

ステップ4:ストレージアカウント暗号化の構成

  1. ストレージアカウント → セキュリティ + ネットワーク → 暗号化
  2. カスタマーマネージドキーを選択
  3. 暗号化設定を構成:
    • キーソース:Azure Key Vault
    • Key Vault:構成済みのKey Vaultを選択
    • キー:ステップ3で作成した暗号化キーを選択
    • バージョン:自動または手動のキーバージョン管理を選択

ステップ5:マネージドIDアクセスの設定

  1. ストレージアカウント → アクセス制御(IAM)
  2. ロールの割り当てを追加をクリック
  3. 権限を構成:
    • ロール:ストレージBLOBデータ共同作成者
    • アクセスの割り当て:マネージドID
    • サブスクリプション:適切なサブスクリプションを選択
    • マネージドID:Stream Analyticsセットアップで構成

フェーズ3:Stream Analyticsジョブの構成

ステップ6:CMK付きStream Analyticsジョブの作成

  1. Azure Portal → リソースの作成 → Stream Analyticsジョブ
  2. ジョブの基本設定を構成:
    • ジョブ名:わかりやすい名前を入力
    • サブスクリプション:適切なサブスクリプションを選択
    • リソースグループ:Key Vaultおよびストレージアカウントと同じ
    • 場所:Key Vaultのリージョンと一致させる
    • ホスティング環境:クラウド

ステップ7:ジョブストレージアカウント設定の構成

  1. ジョブ作成ウィザードの「ジョブストレージアカウント」セクションに移動
  2. チェックボックス:「このジョブに必要なすべてのプライベートデータ資産をストレージアカウントで保護する」にチェック
  3. フェーズ2で構成したストレージアカウントを選択
  4. 認証モード:「接続文字列」または「マネージドID」を選択(マネージドID推奨)
  5. コンテナー名:専用のコンテナーを指定(例:”stream-analytics-job-storage”)
  6. ジョブ作成を完了

ステップ8:マネージドID権限の構成

  1. ジョブ作成後、Stream Analyticsジョブ → ID に移動
  2. システム割り当てマネージドIDを有効化
  3. 後で使用するためオブジェクトIDをコピー
  4. Key Vault → アクセスポリシー → アクセスポリシーの追加
  5. アクセスポリシーを構成:
    • キーのアクセス許可:取得、キーの折り返し、キーの折り返しを解除
    • プリンシパルの選択:ステップ3のオブジェクトIDで検索
    • 承認されたアプリケーション:空白のまま
  6. 追加をクリックして保存

フェーズ4:検証とテスト

ステップ9:構成の検証

  1. Stream Analyticsジョブ → 設定 → ジョブストレージアカウントに移動
  2. 接続テストを実行し、ステータスが「接続済み」を確認
  3. Key Vault → アクセスポリシーでマネージドIDの権限を確認
  4. Stream Analyticsジョブ → クエリでサンプルデータを使用した動作テスト
  5. Azure Monitor → ログでCMK関連のエラーがないことを確認
  6. Key Vault → 監査ログでキーアクセスが正常に記録されていることを確認

最後に

この記事では、Stream Analyticsジョブでカスタマーマネージドキーによるデータ暗号化が無効になっている問題について、リスクと対策を解説しました。

カスタマーマネージドキーを実装することで、暗号化キーの完全な制御、詳細なアクセス管理、カスタムキーローテーションポリシーの実装が可能になります。これにより、HIPAA、PCI-DSS、GDPR、ISO 27001などの厳格な規制要件を満たし、組織のセキュリティポリシーに完全に準拠したデータ保護を実現できます。

この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。

CSPMについてはこちらで解説しております。併せてご覧ください。

参考情報

この記事をシェアする

クラウドセキュリティ対策実践集一覧へ戻る

貴社の利用状況に合わせた見積もりを作成します。

料金プランを詳しく見る