Microsoft AZ-500: 鍵管理、暗号化、証明書 — 学習ガイド
こちらの一部です: Microsoft Azure Security Engineer Associate AZ-500 — 学習ガイド. 検証済みの解答で練習: Microsoft試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.
概要
Azureにおける鍵管理は、Azure Key VaultとAzure Managed HSMが中心となります。これらのサービスは、暗号化マテリアルの安全な保管、一貫性のあるAPI、監査可能な操作を提供し、保存時、転送中、およびアプリケーション層の暗号化を支えます。運用上の目標は、鍵の管理責任をアプリケーションのランタイムから分離し、スコープを限定した認可とネットワーク設定によって影響範囲を最小化し、回復可能性とローテーションを強制して長期にわたるシークレットのリスクを低減することです。
Azure Key VaultとManaged HSMのアーキテクチャと認可
Azure Key Vaultのアーキテクチャ
- サービス構成: マルチテナントのフロントエンド、データプレーン用のリージョンパーティション、テナントごとの分離、およびAzure ADによる認証で構成されます。キーはソフトウェア保護 (Standard価格レベル) またはHSM保護 (Premium価格レベル) のいずれかです。シークレットと証明書は常にソフトウェアで保護されます。
- 価格レベル: Standard (ソフトウェアキー) は汎用目的でコスト効率に優れます。Premium (HSMバックアップキー) は、FIPS 140-2レベル2/3相当の保護、またはキーマテリアル専用のHSM境界が必要な場合に使用します。規制要件がある場合や、「RSA-HSM」または「EC-HSM」を持つキーを使用する場合は、Premiumを選択します。
- 論理的な削除と消去保護: 論理的な削除は常に有効で、保持期間を設定できます (7~90日、一般的には90日)。消去保護を有効にすると、特権の高いユーザーであっても、保持期間が経過するまでコンテナーやオブジェクトの完全な削除を防ぎます。運用上の理由: カスタマーマネージドキー (CMK) を格納するコンテナーでは、消去保護を有効にすべきです。これがないと、偶発的または悪意のある消去によって、依存するデータ (例: そのキーで暗号化されたストレージやデータベース) が回復不能になる可能性があります。
- 回復: 削除されたコンテナーオブジェクトは一覧表示して回復できます。コンテナーレベルの回復もサポートされています。バックアップは暗号化されたBLOBを生成し、同じAzureリージョンおよびクラウド内の互換性のあるコンテナーに復元できます。理由: 定期的にキーのバックアップをエクスポートして別途安全に保管し、復元テストを行ってRTOを検証します。
認可モデル
- アクセス許可モデル: コンテナーアクセスポリシー (レガシー) vs Azure RBAC (推奨)。
- アクセスポリシー: コンテナーごとに定義し、キー、シークレット、証明書に対してきめ細かいアクセス許可を付与します。少数のプリンシパルに対して、非常に厳密でオブジェクトタイプ固有のランタイム権限が必要な場合に最適です。
- Azure RBAC: RBACデータプレーンロールを使用するには、コンテナーのアクセス許可モデルを「Azureロールベースのアクセス制御」に設定します。利点: サブスクリプション/リソースグループ/コンテナーのスコープで設定可能、PIM対応の割り当て、一元的なガバナンスと監査。新規デプロイメントや管理操作に推奨されます。
- 組み込みのコンテナーロール (例): Key Vault Administrator (完全な管理)、Key Vault Crypto Officer (キー管理、ただしアクセスポリシーは管理不可)、Key Vault Secrets Officer、Key Vault Certificates Officer、Key Vault Reader。運用ガイダンス:
- アクセスモデルやネットワークACLの設定を委任する場合は、RBAC (例: Key Vault Administrator) を使用します。
- 単一のコンテナー内で証明書の挿入/削除を最小権限で行うには、アクセスポリシーまたはKey Vault Certificates OfficerなどのデータプレーンRBACロールを使用します。
- スコープの設計: 過剰な権限付与を避けるため、RBACはコンテナーのスコープで割り当てることを推奨します。リソースグループスコープは、複数のコンテナーが同一の運用チームを共有する場合にのみ使用します。ランタイムアクセスにサブスクリプションスコープの割り当てを使用することは避けてください。
Managed HSM
- アーキテクチャとセキュリティドメイン: Managed HSMは、顧客ごとに提供されるシングルテナントのFIPS 140-2レベル3検証済みHSMクラスターです。セキュリティドメインは、クラスターのキーマテリアルの移植性を保護します。クラスター間のバックアップ/復元には、セキュリティドメインの秘密鍵のクォーラムが必要です。理由: ドメインキーを生成し、異なる管理者にまたがってエスクローします。DR用のHSMへの復元をテストします。
- ロールモデル: Azure RBACと統合されています。ロールには、Managed HSM Administrator、Crypto Officer、Crypto User、Readerが含まれます。職務の分離: 管理者はクラスターを管理し、暗号化責任者はキーを管理し、暗号化ユーザーは操作のためにキーを使用します。
- 高可用性: 複数のHSMパーティションとSLAで保証されたサービスによるリージョン冗長性を備えています。サポートされているリージョンではゾーン冗長性も利用可能です。リージョン間の災害復旧には、バックアップとセキュリティドメインに依存します。
- ユースケース: 支払い処理、コード署名、エンベロープ暗号化のためのキーラッピング、およびレベル3のHSM境界を必要とする規制対象のワークロード。
オブジェクトとライフサイクル:キー、シークレット、証明書、およびローテーション
キー、シークレット、証明書
- キー: 暗号化操作(署名、検証、ラップ/アンラップ、暗号化/復号化)用。アルゴリズムの強度とパフォーマンスに基づいてキーの種類/サイズを選択します(例:コンプライアンスにはRSA 3072/4096、パフォーマンスにはECC P-256/P-384)。
- シークレット: パスワード、接続文字列、APIトークンなどの任意のバイト/文字列。暗号化操作には使用されません。
- 証明書: 秘密キー付きのX.509。証明書オブジェクトと対応するシークレット(PFX/PEM)の両方として保存されます。TLS/MTLSやコード署名のライフサイクルに役立ちます。
ライフサイクル操作とローテーション
- バージョニング: 設定またはインポートごとに、不変のバージョンが生成されます。アプリケーションは、変更管理のニーズに応じて、決定論的な動作のためにはバージョン付きのシークレットを参照するか、最新バージョンを自動的に取得するためにはバージョンレスURIを参照する必要があります。
- ローテーション戦略:
- キー: それらをサポートするAzureサービス(例:Storage、SQL TDE、AKV-managed secrets)には、バージョンレスのキーURIを推奨します。新しいバージョンを追加してローテーションします。サポートされている場合、サービスは自動的に再バインドします。サービスが固定されたバージョンを必要とする場合は、再構成ステップを自動化します。AKVのローテーションポリシーとアラートでローテーションを強制します。
- シークレット: Event Grid通知によってトリガーされるAzure Automation、Functions、またはLogic Appsを介してローテーションするか、プロバイダーネイティブのローテーション(例:SASまたはデータベースパスワードのローテーション)を使用します。可能な限りマネージドIDに置き換えることで、長期間有効な静的シークレットを回避します。
- 証明書: 「ライフタイムアクション」を持つ証明書ポリシーを定義して、有効期限が切れる前に自動更新します。ハンズフリーの更新のために統合された発行者を使用します。
証明書管理
- インポート/生成: 既存のPFX/PEM(秘密キー付き)をインポートするか、CSRを生成し、Key Vaultが設定済みのCAで発行を完了させます。
- 自動更新と発行者: DigiCert、GlobalSign、またはエンタープライズMicrosoft CAなどの発行者をKey Vault経由で設定します。通知と更新のしきい値を持つ自動更新を有効にします。
- アプリケーション統合:
- App ServiceおよびFunctions: マネージドIDでKey Vault参照を使用します。プラットフォームはローテーションされたシークレットを自動的に同期します。
- Application Gateway/WAF: Key Vaultから証明書のシークレットIDを参照します。Gatewayは新しいバージョンを自動的に取得します。
- AKS: Secrets Store CSI driverとAzure Key Vault providerを介して証明書をマウントします。
最小権限での証明書操作のためのRBAC割り当ての例:
az role assignment create \
--assignee <userObjectId> \
--role "Key Vault Certificates Officer" \
--scope $(az keyvault show -n kv-prod --query id -o tsv)
ネットワークセキュリティとサービス統合
Key Vaultのネットワーク
- ファイアウォールルール: 承認されたソースに制限するために「選択されたネットワーク」に設定します。理由:有効なトークンがあっても、インターネットからのトラフィックを防ぎます。
- 仮想ネットワークサービスエンドポイント: プライベートIPなしで特定のサブネットからのトラフィックを許可します。有効化が簡単で、露出を減らします。迅速な分離が必要で、DNSの変更が不要な場合に使用します。
- プライベートエンドポイント: VNet内のボールトにプライベートIPを割り当て、真のプライベート接続を実現します。パブリックネットワークアクセスをブロックします。理由:最も強力なデータ漏洩対策であり、信頼性の高い環境やアウトバウンドインターネットが制限されている場合に必要です。
- 信頼されたサービス: 「信頼されたMicrosoftサービスを許可する」を設定すると、ネットワーク制限にもかかわらず、特定のAzureサービスがボールトにアクセスできるようになります。ローテーション中にStorage暗号化スキャンキーなどのシナリオで必要です。限定的に有効にし、依存関係を文書化します。
カスタマーマネージドキー(CMK)とキーURI
- サポートされているサービス: Azure Storage、SQL Database (TDE)、Synapse、Databricks、AKS secrets encryption at rest、App Configuration、Event Hubs、Service Bus、およびDisk Encryption Setを介したManaged Disks。
- キーURI戦略:
- バージョンレスURI: サービスが新しいキーバージョンでの自動再バインドをサポートしている場合に推奨します。サービスを更新することなくシームレスなローテーションを可能にします。
- バージョン付きURI: 一部のサービスで必須です。ローテーションイベントに連動したサービス構成の更新を自動化します。
- ローテーションパターン:
- 段階的なローテーション: 新しいキーバージョンを作成し、サービスがアクセスできることを検証し、エラーを監視し、安全な期間が経過した後にオプションで古いバージョンを無効にします。
- イベント駆動: key-new-versionイベントでEvent Gridを使用して、検証またはサービス再構成のワークフローをトリガーします。
エンベロープ暗号化の統合
- Azureサービスは、データ暗号化キー(DEK)をローカルで(例:AES-256)、キー暗号化キー(KEK)をKey Vault/HSMで使用してDEKをラップします。運用上、KEKの可用性とネットワークアクセスを確保することが重要です。なぜなら、損失やアクセスブロックはサービス運用を停止させる可能性があるためです。
例:AKVキーでDEKをラップする
# base64-encode a 32-byte DEK; wrap using RSA-OAEP
az keyvault key wrap-key \
--vault-name kv-prod \
--name app-kek \
--algorithm RSA-OAEP \
--value $(openssl rand -base64 32)
暗号化、保管時のデータオプション、シークレットハイジーン
中核となる暗号化の概念
- 対称暗号化: 1つのキーで暗号化/復号を行う (例: AES-GCM/CTR)。高速であり、バルクデータの暗号化に最適。
- 非対称暗号化: 公開/秘密鍵ペア (RSA/ECC) を鍵交換や署名に使用する。低速であり、信頼の確立やDEKのラップに最適。
- ハッシュ化: 一方向ダイジェスト (例: SHA-256)。完全性のためのもので、暗号化ではない。
- 署名: 秘密鍵で署名を生成し、公開鍵で検証する。否認防止と完全性を保証。
- エンベロープ暗号化: 非対称KEKと対称DEKを組み合わせ、パフォーマンスと鍵管理の分離を実現する。
Azure Disk Encryptionとストレージ暗号化
- Managed Disksのデフォルト暗号化: プラットフォームマネージドキー (PMK) を使用したサーバーサイド暗号化 (SSE)。運用オーバーヘッドが最小限。
- Disk Encryption Set (DES) を使用したCMK: Key VaultまたはManaged HSMキーを参照するDESをディスク、スナップショット、イメージに使用する。理由: 鍵のライフサイクルの一元管理と失効、顧客による管理というコンプライアンス要件を満たすため。
- ADE (Azure Disk Encryption): ゲストOS内のBitLocker (Windows) または dm-crypt (Linux)。OSレベルの暗号化体制、ドメインにバインドされたディスクレベルのキープロテクター、または既存のコンプライアンス要件が必要な場合に使用する。運用上のトレードオフ: 複雑性の増大、拡張機能の管理、VMプロビジョニングへの潜在的な影響。
- 二重暗号化:
- ディスク: インフラストラクチャ層でのPMKによるSSEと、DES経由のCMKを組み合わせ、2つの独立した暗号化レイヤーを実現する。
- ストレージアカウント: コンテナ/ワークロードごとに個別のCMKを持つ暗号化スコープを使用し、利用可能な場合はインフラストラクチャ暗号化と組み合わせて2つのレイヤーを実現する。
- 暗号化スコープ (Azure Storage): コンテナごとまたはBLOBごとに個別のCMKを持つスコープを定義し、テナント/ワークロードのリスクを分離し、広範な影響を与えずにターゲットを絞ったローテーションを可能にする。
シークレットハイジーンと運用プラクティス
- マネージドID: Azureリソースにシステム割り当てまたはユーザー割り当てマネージドIDを使用し、Key Vaultや各種サービス用のトークンを取得することで、埋め込み資格情報を排除する。RBACやアクセスポリシーのスコープを狭く設定する。
- シークレットスキャン: Microsoft Defender for DevOps、GitHub Advanced Securityのシークレットスキャン、およびリポジトリ保護を有効にする。プルリクエストと統合して既知の資格情報パターンをブロックする。
- パイプラインとIaC: Azure PipelinesのKey Vaultタスク統合や、GitHub ActionsのOIDCベースのフェデレーション資格情報を使用し、永続化されたシークレットを回避する。ログにシークレットを出力せず、出力をマスクする。漏洩したマテリアルは直ちにローテーションする。
- アプリ設計: 安全な場合はバージョンレス参照を優先する。キャッシュは最小限にし、トークンの再取得とシークレットの再フェッチによって401/403を処理し、ローテーションイベントをサポートする。
証明書管理の深掘り
- ポリシーベースの発行: Key Vault の証明書ポリシーで、サブジェクト、SAN、キー使用法、EKU、キーの種類/サイズ、キーの再利用設定を定義します。理由: 環境全体で一貫した TLS 体制を維持するため。
- 発行者の統合: Key Vault で CA プロファイルを構成します。プライベート PKI の場合、カスタム発行者経由で Microsoft ADCS と統合するか、Azure Key Vault の Certificate Connector を使用します。パブリック CA を使用すると、AKV の外部に秘密キーを公開することなく、自動更新が可能になります。
- 自動更新オペレーション: ライフタイムアクション(例: 有効期限の 60 日前に更新、90 日前に通知)を使用します。運用上、更新期間を変更フリーズ期間と調整し、依存サービスが自動同期されるようにします。
- アプリケーションでの利用: シークレット(PFX/PEM)として取得するか、プラットフォームサービスで参照によってバインドします。新しいバージョンへのゼロダウンタイムでのロールオーバーのために、プラットフォームネイティブなバインディング(App Service, Application Gateway)を優先します。Kubernetes の場合、CSI 経由でマウントし、ローテーション時にローリング再起動をトリガーします。
実践的な問題シナリオ
Siemens AG は、Azure 上の IoT テレメトリを保護し、保存データに対する強力なキー管理を徹底し、グローバルに分散したフリート全体で証明書とシークレットのローテーションを自動化する必要があります。
- コンテナーと HSM の境界を確立する
- アプリケーションのシークレット/証明書用にリージョンごとの Premium Key Vault を、KEK 操作用に Managed HSM を作成します。
- 理由: Premium コンテナーは必要に応じて HSM に裏付けられたキーを有効にできます。Managed HSM は、ラッピング操作に対してレベル 3 の保証と独立したキー管理を提供します。
- 回復可能性とガードレールを強制する
- すべてのコンテナーと Managed HSM で消去保護を有効にし、論理的な削除の保持期間を 90 日に設定します。Azure Policy を適用して、消去保護のないコンテナーを監査/拒否します。
- 理由: 消去による壊滅的なデータ損失を防ぎます。ポリシーによって構成ドリフトの発生を確実に防ぎます。
- RBAC を使用して認可を一元化する
- コンテナーを Azure RBAC のアクセス許可モデルに設定します。PIM を介して小規模なプラットフォームチームに Key Vault Administrator を割り当て、コンテナーのスコープでアプリチームに Key Vault Secrets Officer を割り当て、セキュリティエンジニアに Managed HSM Crypto Officer を割り当てます。
- 理由: RBAC と PIM の組み合わせにより、最小権限、時間制限付きの昇格、一貫した監査が実現します。職務の分離により、管理者がキーを使用することを防ぎます。
- プライベートエンドポイントでネットワークをロックダウンする
- ハブ VNet にプライベートエンドポイントを作成し、パブリックネットワークアクセスを無効にします。CMK を使用する Storage アカウントに対してのみ「信頼されたサービス」を有効にします。
- 理由: プライベートエンドポイントは、パブリックへの公開を排除し、データ流出経路をブロックしつつ、必要なサービスからコンテナーへのフローを維持します。
- CMK と暗号化戦略を実装する
- Storage については、Premium コンテナー内のバージョンレス KEK URI を使用してワークロードごとに暗号化スコープを定義します。Managed Disks については、HSM の CMK を使用した Disk Encryption Sets を使用します。二重暗号化のために、インフラストラクチャレベルの暗号化を有効にします。
- 理由: ワークロードごとのキーは影響範囲を縮小します。バージョンレス URI はシームレスなローテーションを可能にします。二重暗号化は厳格なコンプライアンス要件を満たします。
- キーとシークレットのローテーションを自動化する
- AKV のキーローテーションポリシー(例: 年次有効期限、9ヶ月でローテーション)と、検証ジョブをトリガーする Event Grid 通知を構成します。サービスでマネージド ID を使用し、静的な資格情報を削除します。
- 理由: 予測可能で自動化されたローテーションは、長期間有効なキーやシークレットからのリスクを低減します。マネージド ID は、脆弱な共有シークレットを置き換えます。
- 証明書を運用に乗せる
- DigiCert 発行者との統合を利用した Key Vault 証明書ポリシーを使用し、有効期限の 60 日前に自動更新を設定します。Application Gateway と App Service で証明書を参照によってバインドします。
- 理由: 自動更新はサービス停止を防ぎ、手動でのキー操作を回避します。プラットフォームのバインディングは、再デプロイなしで新しいバージョンを自動的に取得します。
- 検証と監視
- Key Vault と Managed HSM の診断ログを有効にして Log Analytics に送信し、不正なアクセス試行、ファイアウォールによる拒否、有効期限切れ間近のイベントについてアラートを設定します。セキュリティドメインのクォーラムを使用して、コンテナーと HSM のバックアップの復元テストを四半期ごとに実行します。
- 理由: 継続的な監視により、設定ミスや攻撃を迅速に検出します。復元テストにより、プレッシャー下での回復可能性を保証します。
← データ、ストレージ、データベースのセキュリティ · すべてのドメイン · セキュリティポスチャ管理とガバナンス →
これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
試験に合格する →