Microsoft AZ-500: 安全態勢管理與治理 — 學習指南
屬於 Microsoft Azure Security Engineer Associate AZ-500 — 學習指南. 使用經過驗證的解答練習: Microsoft 考試中心, 或參加限時模擬考試: ExamRoll.io.
策略驅動的治理與登陸區
Azure Policy 是針對雲端漂移的預防性與修正性護欄系統。關鍵要素:
- 定義:一條包含條件與效果的規則。常見的效果包括 Deny、Audit、Append、Modify、DeployIfNotExists、AuditIfNotExists 與 Disabled。針對不可協商的護欄(例如,不允許在 NIC 上使用公用 IP),請使用 Deny。使用 DeployIfNotExists 來自動安裝必要的代理程式或擴充功能(例如,反惡意軟體或 MDE)。
- 方案 (Initiative):一組經過策劃的策略定義,已參數化以便於一致地指派(例如,Azure Security Benchmark 方案)。
- 指派:首先將範圍設定在管理群組,然後是訂閱或資源群組,以進行針對性的覆寫。對於經過監控的硬性強制策略,啟用「強制模式」。
- 豁免:使用 Waiver (已接受風險) 或 Mitigated (補償性控制) 等類別。務必設定到期日以確保重新評估。
- 補救任務:對於 DeployIfNotExists 和 Modify 而言是必要的,用以設定現有資源。將策略指派的受控識別 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": [] } } }
}
}
}
}
}
登陸區治理組織了繼承與職責分離:
- 管理群組:建立清晰的階層結構 (租用戶根 → 平台 → 公司/線上 → 環境,例如 Prod/NonProd)。在管理群組層級指派方案與 RBAC,以最大化繼承並最小化每個訂閱的漂移。探索並將特權角色納入 PIM 管理;設定 PIM 需要 Global Administrator 權限。
- 訂閱組織:依據環境與工作負載關鍵性進行分離,以隔離爆炸半徑與預算。使用原型 (例如「任務關鍵型 AKS」、「資料平台」),並預先指派方案與 RBAC。
- 標籤:標準化必要的標籤 (Owner、CostCenter、DataSensitivity、Environment),並透過 Modify/Append 強制執行以進行正規化;當生產環境中缺少必要標籤時,使用 Deny 拒絕資源建立。
- 資源鎖定:CanNotDelete 保護關鍵的共用服務;ReadOnly 防止任何 PUT 操作。請謹慎使用,且僅在策略強化後才使用。請注意,在 VM 或其資源群組上的 ReadOnly 鎖定會阻止啟動已解除配置的 VM,並封鎖組態變更。
對於舊有的藍圖需求,可採用「策略即程式碼」(policy-as-code) 的方法,搭配 ARM/Bicep、Template Specs 與方案指派,以大規模實現類似藍圖的一致性部署。
安全性盤點、雲端應用程式、資料治理與稽核
大規模的盤點與合規性可透過 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 正在導入兩個新的生產環境訂用帳戶,必須標準化其安全狀態、達成 Azure Security Benchmark 合規性,並保留不可變的日誌七年,同時要最小化維運上的摩擦。
- 在管理群組層級建立治理
- 建立一個 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 範圍內指派可確保一致的強制執行與一致的 Secure Score 計算。
- 實作政策驅動的自動化與豁免
- 新增 DeployIfNotExists 政策,以在需要時自動安裝 MDE 與 Log Analytics 代理程式;為現有資源建立修復任務。對於無法立即導入的舊版 VM,使用具到期日的豁免。
- 理由: DeployIfNotExists 將指引轉化為實際行動;有時限的豁免在維持合規性動能的同時,不會阻礙關鍵營運。
- 設定由 Secure Score 驅動的修復工作流程
- 在 Defender for Cloud 中建立一個 Logic App 工作流程,針對 Prod 環境中任何分數影響 >3% 且狀態變為「不健康」的改善動作,自動開立 P1 工單,並自動通知資源擁有者。
- 理由: 分數影響力將修復工作與可衡量的風險降低對齊,而自動化則無需手動分類即可強制執行 SLO。
- 集中化具不可變性的稽核日誌
- 從每個訂用帳戶的 Activity Log 以及關鍵資源(Key Vault、Storage、SQL、AKS)建立診斷設定,將日誌傳送到一個中央的 Log Analytics 工作區,以及一個設定了七年基於時間的保留原則並啟用 allowProtectedAppendWritesAll 的 Storage 帳戶。
- 理由: 集中化可簡化偵測與合規性工作;不可變儲存體則提供稽核與鑑識所需的不可否認性。
- 治理 SaaS 使用與出口風險
- 將 Defender for Cloud Apps 連接到 Defender for Endpoint 以進行應用程式探索;標記未經認可的高風險應用程式,並對存取已認可應用程式的非受控裝置強制執行 Conditional Access App Control。
- 理由: 降低影子 IT 風險,並強制執行即時工作階段控制,而不會干擾受控管裝置的使用體驗。
- 透過 Purview 嵌入資料治理
- 在 Purview 中註冊 Contoso 的 Storage 與 SQL 資產,執行掃描並自動套用敏感度標籤。將標籤對應到一個 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.
通過考試 →