Microsoft AZ-500: セキュリティポスチャ管理とガバナンス — 学習ガイド
こちらの一部です: Microsoft Azure Security Engineer Associate AZ-500 — 学習ガイド. 検証済みの解答で練習: Microsoft試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.
概要
Azure におけるセキュリティ体制管理とガバナンスとは、サブスクリプションやクラウド全体のリスクを低減しつつ、証明可能なコンプライアンスを維持するために、構成を継続的に評価、優先順位付け、強制する規律です。効果的な設計は、体制の可視化と保護のための Microsoft Defender for Cloud、予防的および是正的なガードレールのための Azure Policy、スケーラブルな継承のためのランディングゾーンガバナンス、そして統制を証明するための監査グレードのログ記録を組み合わせたものです。運用上の目標は、防御可能なリスク削減です。つまり、意思決定はエクスポージャーと影響に基づいて行われ、コードによって強制され、設計によって継承され、不変のログによって証明されます。
Microsoft Defender for Cloud: アーキテクチャ、プラン、推奨事項
Defender for Cloud (MDC) は、Azure、ハイブリッド、マルチクラウドからシグナルを取り込み、それらをセキュアスコア、推奨事項、アラートに相関させ、修復をオーケストレーションすることができます。プランとポリシーがすべてのサブスクリプションに継承されるように、管理グループ (MG) のルートで設計します。サブスクリプションは例外のスコープ設定にのみ使用します。マルチクラウドの場合、テナントルート(または専用の「セキュリティ」サブスクリプション)で AWS および GCP 用のネイティブ MDC コネクタをデプロイし、最小権限のアカウントと集中管理された自動プロビジョニングを使用して、エージェントのデプロイとデータ収集を標準化します。
プランの選択はリスクドリブンです:
- Defender for Servers: Plan 1 は脆弱性評価と基本的な強化を提供します。Plan 2 は Microsoft Defender for Endpoint (MDE)、Just-In-Time (JIT) VM アクセス、脅威と行動の分析、ファイル整合性の監視を追加します。インターネットに公開されている、または特権を持つホストには Plan 2 を使用し、エクスポージャーの低いサーバープールには Plan 1 を使用します。
- Defender for Storage: BLOB、ファイル、ADLS Gen2 上の異常なアクセスやマルウェアを検知します。イングレスポイントをカバーしつつコストを管理するために、高リスクのコンテナ(例:パブリックな取り込み口)を対象としたスキャンをアカウントごとに有効にします。
- Defender for SQL: Azure SQL の場合、ベースラインからの逸脱を伴う脅威検出と脆弱性評価を有効にします。マシン上の SQL(Arc 対応を含む)の場合、エージェントベースの保護を追加します。本番データベースで広範に有効にし、ノイズを減らすために通常パターンをベースライン化します。
- Defender for Containers: イメージの脆弱性スキャン(ACR およびランタイム)、Kubernetes 監査分析、ランタイム脅威検出により、AKS および Arc 対応 Kubernetes を保護します。Azure Policy アドオンを介して Kubernetes ポリシー(Gatekeeper/OPA)を強制します。CI/CD スキャンを統合して、デプロイ前に重大な CVE をブロックします。
- Defender for Key Vault: 異常なシークレットアクセスやデータ窃取パターンを検知します。コンテナー管理には Azure RBAC を、データプレーンアクセスにはアクセスポリシー(または RBAC データアクション)を使用して、最小権限でのシークレット操作を実現します。
- Defender for DNS: DNS ベースのデータ窃取とコマンド&コントロールを検知します。インターネットへのエグレスを持つスポーク VNet で優先的に使用します。エージェントは不要です。
- Defender for DevOps: Azure DevOps と GitHub の組織を接続して、リポジトリ、シークレット、IaC の設定ミス、パイプラインの強化を評価します。プルリクエストに対してブロッキングポリシーを使用し、重大度の高い設定ミスをブロックして、リスク削減をシフトレフトします。
セキュリティの推奨事項は、プランの検出結果と Azure Policy の評価を統合します。これらを運用化するには、次の手順を実行します:
- MG スコープでプランの自動プロビジョニングを有効にする。
- 「重大度が高く、インターネットに公開されている」推奨事項を、SLO を持つ変更管理された作業項目として扱う。
- ガバナンスの例外を、有効期限と正当な理由を付けたポリシーの免除として文書化する。
セキュアスコア、コンプライアンス、ワークフローの自動化
セキュアスコアは、「コントロール」(関連するセキュリティ要件のグループ)を正規化されたパーセンテージに集約します。各コントロールにはポイントが割り当てられ、その「改善アクション」に分配されます。スコアへの影響は、リスク削減の可能性と影響を受けるリソースの範囲を反映します。以下の基準で優先順位を付けます:
- 単位労力あたりのスコアへの影響が最も高いもの(クイックウィン:例:所有者に対する MFA の有効化、ストレージへのパブリックアクセスの制限)。
- 攻撃対象領域のエクスポージャー(パブリックエンドポイント、特権ID、脆弱なネットワーク境界)。
- 同じアクションにマッピングされる規制上の義務(コンプライアンス向上を最大化)。
改善アクションを、修復ガイダンス、クイックフィックス、Logic App の自動化と共に使用します。「修復不可」または「設計による軽減」の免除を有効期限付きで設定し、残存リスクを追跡して、定期的な再検証を強制します。
MDC の規制コンプライアンス機能は、構成と推奨事項を標準(例:Azure Security Benchmark、CIS、NIST)にマッピングします。必要な標準を MG スコープで選択し、サブスクリプションごとの乖離を避けます。コンプライアンスダッシュボードを Policy-as-Code のレポートとして扱います。すべての緑色のコントロールは、ポリシー、イニシアチブ、または自動化された構成に追跡可能であるべきです。プロセス証跡(例:インシデント対応)を必要とするコントロールファミリーについては、監査サポートのためにブックのビジュアルやチケット ID をリンクさせます。
ワークフローの自動化は、体制をアクションに結びつけます。典型的なパターンは次のとおりです:
- トリガー:ビジネスクリティカルなサブスクリプションで推奨事項が非健全状態になる → アクション:P1 チケットを発行し、SecOps に通知し、修復タスクを自動作成する。
- トリガー:本番リソースで新たな重大アラートが発生 → アクション:エンドポイントを隔離(MDE)、ストレージオブジェクトを検疫、またはポリシー修復によりパブリックアクセスを無効化する。
ポリシー駆動のガバナンスとランディングゾーン
Azure Policyは、クラウドのドリフトに対する予防的および修正的なガードレールシステムです。主要な要素は次のとおりです:
- 定義: 条件と効果を持つルールです。一般的な効果には、Deny (拒否)、Audit (監査)、Append (追加)、Modify (変更)、DeployIfNotExists (存在しない場合はデプロイ)、AuditIfNotExists (存在しない場合は監査)、Disabled (無効) があります。NICでのパブリックIPを許可しないなど、交渉の余地のないガードレールにはDenyを使用します。マルウェア対策やMDEなど、必要なエージェントや拡張機能を自動インストールするにはDeployIfNotExistsを使用します。
- イニシアチブ: 一貫した割り当てのためにパラメータ化された、キュレーション済みのポリシー定義のセットです (例: Azure Security Benchmarkイニシアチブ)。
- 割り当て: まず管理グループにスコープを設定し、次にターゲットを絞ったオーバーライドのためにサブスクリプションまたはリソースグループにスコープを設定します。監視が完了したら、厳格な必須ポリシーに対して「強制モード」を有効にします。
- 除外: Waiver (許容されたリスク) または Mitigated (代替コントロール) のカテゴリを使用します。再評価を確実にするために、必ず有効期限を設定します。
- 修復タスク: 既存のリソースを構成するために、DeployIfNotExistsとModifyで必要です。ターゲットスコープに対して、ポリシー割り当てのマネージドIDにContributor (および必要に応じてデータプレーン) の権限を付与します。
Windows VMにマルウェア対策拡張機能を強制するためのポリシーのスケルトン例:
{
"properties": {
"displayName": "Deploy antimalware on Windows VMs",
"policyType": "Custom",
"mode": "Indexed",
"parameters": {},
"policyRule": {
"if": {
"allOf": [
{ "field": "type", "equals": "Microsoft.Compute/virtualMachines" },
{ "field": "Microsoft.Compute/virtualMachines/osProfile.windowsConfiguration", "exists": "true" }
]
},
"then": {
"effect": "DeployIfNotExists",
"details": {
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "IaaSAntimalware",
"roleDefinitionIds": ["/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"],
"deploymentScope": "resourceGroup",
"existenceCondition": { "field": "name", "equals": "IaaSAntimalware" },
"deployment": { "properties": { "mode": "incremental", "template": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "resources": [] } } }
}
}
}
}
}
ランディングゾーンのガバナンスは、継承と職務の分離を体系化します:
- 管理グループ: 明確な階層 (テナントルート → プラットフォーム → Corp/Online → Prod/NonProdなどの環境) を構築します。継承を最大化し、サブスクリプションごとのドリフトを最小限に抑えるために、MGレベルでイニシアチブとRBACを割り当てます。特権ロールを検出し、PIMにオンボードします。PIMの構成には全体管理者が必要です。
- サブスクリプションの編成: 影響範囲と予算を分離するために、環境とワークロードの重要度によって分離します。事前に割り当てられたイニシアチブとRBACを持つアーキタイプ (例: 「Mission-Critical AKS」、「Data Platform」) を使用します。
- タグ: 必須タグ (Owner, CostCenter, DataSensitivity, Environment) を標準化し、正規化のためにModify/Appendを介して適用します。本番環境で必須タグが欠落している場合は、Denyでリソース作成を拒否します。
- リソースロック: CanNotDeleteは重要な共有サービスを保護し、ReadOnlyはすべてのPUT操作を防ぎます。ポリシーの強化が完了した後にのみ、慎重に使用します。VMまたはそのリソースグループにReadOnlyロックをかけると、割り当て解除されたVMの起動が妨げられ、構成変更がブロックされることに注意してください。
従来のブループリントのニーズに対しては、ARM/Bicep、Template Specs、およびイニシアチブの割り当てによる「policy-as-code」を採用し、ブループリントのような一貫性のあるデプロイを大規模に実現します。
セキュリティインベントリ、クラウドアプリ、データガバナンス、監査
大規模なインベントリとコンプライアンスには、Azure Resource Graph (ARG) と Policy コンプライアンスレポートを使用します。ARGクエリは、数百万のリソースに対してほぼリアルタイムのポスチャビューを提供します。
securityresources
| where type =~ 'microsoft.security/assessments'
| where properties.status.code == 'Unhealthy'
| summarize unhealthy=count() by tostring(properties.displayName)
| order by unhealthy desc
リソースのポスチャをタグと結合し、データの機密性に基づいてトリアージします。
resources
| where type == 'microsoft.compute/virtualmachines'
| project id, name, resourceGroup, subscriptionId, dataSensitivity = tostring(tags['DataSensitivity'])
| join kind=leftouter (
securityresources
| where type =~ 'microsoft.security/assessments'
| where properties.status.code == 'Unhealthy'
| summarize issues=count() by tolower(tostring(properties.resourceDetails.Id))
) on $left.id == $right['tolower_tostring_properties_resourceDetails_Id']
| project name, dataSensitivity, issues = coalesce(issues, 0)
| order by issues desc
Defender for Cloud Apps (MDCA) はSaaSのリスクを統制します。
- アプリの検出: Cloud Discoveryを介してファイアウォール/プロキシログを取り込むか、Defender for Endpointと統合してエンドポイントベースの検出を行います。リスクスコアと使用状況によってアプリを分類し、承認済み/未承認のマークを付けて、条件付きアクセスとプロキシブロックを推進します。
- セッション制御: Conditional Access App Controlを使用して、機密性の高いアクションのセッションをプロキシします。リアルタイムポリシーを適用して、ダウンロードのブロック、アップロードの監視、コンテンツの墨消し、またはリスクの高いセッションや管理されていないデバイスに対するウォーターマークの付与を行います。
- ガバナンスアクション: Microsoft 365内のファイルを検疫またはラベル付けし、OAuthアプリの同意を取り消し、外部共有を削除し、リスクの高いユーザーを一時停止し、アプリの所有者に通知します。定期的な強制を自動化して、構成のドリフトを防ぎます。
Microsoft Purviewは、ガバナンスをデータにまで拡張します。
- データマップとスキャン: Azure Storage、SQL、Synapse、およびマルチクラウドストアを登録してスキャンし、資産とリネージ(来歴)を検出します。組み込みおよびカスタムの分類子で分類します。
- 秘密度ラベルと保護: 暗号化と使用権限を持つラベルを適用し、コンテンツとコンテキストに基づいて自動的にラベル付けします。Microsoft 365でラベルベースのアクセスを強制し、DLPと統合してデータ漏洩を防ぎます。
- ポリシーの整合: Purviewの秘密度をタグ(例: DataSensitivity)にマッピングし、Azure Policyを介して補完的なコントロール(例: HighlyConfidentialストアにPrivate Endpointsを要求)を推進します。
監査証跡は、改ざんが検知可能で完全でなければなりません。
- Azure Activity Log: サブスクリプションスコープでのコントロールプレーン操作を記録します。診断設定を介してLog Analyticsにストリーミングし、Storageにアーカイブします。インサイダー脅威を最小限に抑えるため、中央の「Security-Logs」サブスクリプションに、サブスクリプション外で長期的なコピーを保持します。
- リソースの診断設定: 重要なプロバイダー(Key Vault、Storage、SQL、AKS、Network Security Groups)で有効にし、データプレーンとサービスログをキャプチャします。検出のためにLog Analyticsに、保持のためにStorageにルーティングします。
- ログのイミュータブル(不変)ストレージ: 時間ベースの保持ポリシーまたは訴訟ホールド(WORM)を持つBlob Storageを使用します。allowProtectedAppendWritesAllを有効にして、不変性が強制されている間も診断が追記を続けられるようにします。コスト管理のためにライフサイクルポリシーを構成しますが、義務付けられた保持期間内に削除してはなりません。これは、規制上の証拠とインシデントフォレンジックを支える基盤となります。
実践的な問題シナリオ
世界的な小売業者であるContosoは、2つの新しい本番環境サブスクリプションをオンボーディングしており、セキュリティポスチャを標準化し、Azure Security Benchmarkコンプライアンスを達成し、運用上の摩擦を最小限に抑えながら7年間不変のログを保持する必要があります。
- 管理グループレベルでガバナンスを確立する
- Prod管理グループを作成し、その下に両方のサブスクリプションを配置します。
- 理由: 継承により、サブスクリプションごとのドリフトなしに一貫したポリシー、Defenderプラン、RBACが保証され、構成負債が削減されます。
- セキュリティイニシアチブとDefender for Cloudプランを割り当てる
- Azure Security Benchmarkイニシアチブを割り当て、ストレージとSQLのパブリックIPをDenyに設定します。Prod MGでDefender for Servers Plan 2、Storage、SQL、Containers、Key Vault、DNSを有効にします。
- 理由: 各プランは高度な検出機能を解放し、イニシアチブはコントロールをガードレールとしてエンコードします。MGスコープでの割り当ては、均一な強制と一貫したセキュアスコアの計算を保証します。
- ポリシー駆動の自動化と除外を実装する
- DeployIfNotExistsポリシーを追加して、必要な場所にMDEとLog Analyticsエージェントを自動インストールし、既存のリソースに対して修復タスクを作成します。すぐにはオンボードできないレガシーVMに対しては、有効期限付きの除外を使用します。
- 理由: DeployIfNotExistsはガイダンスを行動に変換します。期間限定の除外は、重要な運用をブロックすることなくコンプライアンスの勢いを維持します。
- セキュアスコア駆動の修復ワークフローを構成する
- Defender for CloudでLogic Appワークフローを作成し、Prod環境で3%以上のスコア影響を持つ改善アクションが不健康状態になった場合にP1チケットを起票し、リソース所有者に自動通知します。
- 理由: スコアへの影響は、測定可能なリスク削減と修復作業を整合させ、自動化は手動のトリアージなしでSLOを強制します。
- 監査ログを不変性と共に一元化する
- 各サブスクリプションのActivity Logと重要なリソース(Key Vault、Storage、SQL、AKS)から診断設定を作成し、中央のLog Analyticsワークスペースと、7年間の時間ベース保持ポリシーおよびallowProtectedAppendWritesAllが設定されたStorageアカウントに送信します。
- 理由: 一元化は検出とコンプライアンスを簡素化します。不変ストレージは、監査やフォレンジックで要求される否認防止を提供します。
- SaaSの利用とEgressリスクを統制する
- Defender for Cloud AppsをDefender for Endpointに接続してアプリを検出し、未承認の高リスクアプリにマークを付け、承認済みアプリにアクセスする管理されていないデバイスに対してConditional Access App Controlを強制します。
- 理由: シャドーITのリスクを低減し、管理されたエクスペリエンスを妨げることなくリアルタイムのセッション制御を強制します。
- Purviewでデータガバナンスを組み込む
- ContosoのStorageおよびSQL資産をPurviewに登録し、スキャンを実行して秘密度ラベルを自動適用します。ラベルをEnvironmentおよびDataSensitivityタグポリシーにマッピングし、HighlyConfidentialストアに対してPrivate Endpointsを要求するようにします。
- 理由: データ対応ポリシーにより、機密データが検出された場所にネットワークの強化が自動的に適用され、データガバナンスとインフラセキュリティのループが閉じられます。
← 鍵管理、暗号化、証明書 · すべてのドメイン · Microsoft Sentinel とセキュリティオペレーション →
これらの問題を練習する → · 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.
試験に合格する →