Microsoft AZ-400: 安全性、合規性與 DevSecOps — 學習指南
屬於 Microsoft DevOps Engineer Expert AZ-400 — 學習指南. 使用經過驗證的解答練習: Microsoft 考試中心, 或參加限時模擬考試: ExamRoll.io.
總覽
在以 Azure 為中心的交付管線中,安全性、合規性與 DevSecOps 要求將風險偵測移至最早的階段、持續執行策略,並自動化證據收集。有效的實作會將應用程式安全測試 (SAST/DAST/SCA)、密鑰治理、基礎設施即程式碼 (IaC) 掃描,以及法規控制整合到 CI/CD 生命週期中。在 Azure DevOps 和 GitHub 中,這意味著對每個 PR 執行分析器、透過品質門檻來管制合併、使用能從 Azure Key Vault 擷取有時效性密鑰的最小權限身分識別進行部署,並透過 Microsoft Defender for DevOps 和 Defender for Cloud 持續監控安全態勢。目標不僅是找出問題,還要防止不安全的變更觸及受保護的資源、透過稽核軌跡證明合規性,並維持安全的開發速度。
安全左移、OWASP Top 10 緩解措施與管線強化
安全左移始於 PR 階段的 SAST 和 SCA,並在部署到上層環境前,透過密鑰掃描和目標性的 DAST 來增強。SAST 能揭露程式碼層級的弱點,例如注入點、不安全的反序列化器,以及遺漏的輸出編碼。整合 SonarQube/SonarCloud 或 GitHub code scanning (例如 CodeQL) 來分析每個變更集;在 PR 中標示出與特定程式碼行相關的問題;並強制執行品質閘門,當弱點或覆蓋率未達門檻時,就讓建置失敗。將 SAST 的重點放在 OWASP Top 10 的類別上:
- 注入 (Injection):強制使用參數化查詢/ORM、驗證/正規化輸入,並禁止動態 SQL/字串串接。透過 SAST 規則集和單元測試來強制執行,以確保使用經過審查的資料存取輔助工具。
- 跨網站指令碼 (XSS):要求輸出編碼和內容安全策略 (Content Security Policy)。SAST 的汙點分析應追蹤不受信任的輸入到接收點 (sinks) (例如 innerHTML, Response.Write) 的流向。
- 跨網站請求偽造 (CSRF):強制使用防偽 Token 和 SameSite Cookie。管線可以執行框架分析器,以斷言相關的中介軟體/設定已啟用。
- 不安全的反序列化 (Insecure Deserialization):禁止不安全的二進位/XML 序列化器、限制允許的類型,並偏好使用設定為安全預設值的 JSON 序列化器。SAST 檢查和相依性策略可防止使用已知的危險函式庫。
DAST 在預備環境 (staging environment) 中驗證執行中的建置。在部署到非生產環境後,將 OWASP ZAP 或同等工具自動化為管線作業,使用已驗證的掃描和針對您的應用程式特性調整過的規則集。根據弱點基準來管制晉升:封鎖新出現的高/嚴重級別的發現,並將已接受的例外情況連同其到期日一併保留。
軟體組成分析 (SCA) 在合併前偵測有弱點的第三方套件。使用 Dependabot 提出提升版本的 PR,並在 CI 中使用 OWASP Dependency-Check 產生 SBOM 和 CVE 報告。透過定義允許/拒絕清單 (例如,對於專有產品拒絕 copyleft 授權) 來強制執行授權合規性,並讓包含不允許授權的建置失敗。密鑰掃描必須在 commit 和 CI 階段執行:採用 GitHub Advanced Security 的密鑰掃描,或整合 Gitleaks/Microsoft Security DevOps 來捕捉寫死的憑證、Token 和金鑰;當偵測到密鑰模式時,就封鎖合併並輪替受影響的憑證。
管線強化是不可妥協的。鎖定分支保護、要求 PR 審查,並強制執行 SAST/SCA/DAST 的狀態檢查。在 Azure Pipelines 中,使用受保護的資源、環境核准與檢查,以及必要範本來標準化安全性階段。偏好使用短期的、最小權限的 Token;透過工作負載身分識別聯邦完全避免使用靜態憑證。將自架代理程式限制在私有網路內、將其身分識別的範圍縮到最小,並透過強制使用不允許不受信任的儲存庫執行任意腳本步驟的範本,來停用腳本注入。
密鑰、身分識別、Azure Key Vault 與憑證輪替
Azure Key Vault 是密鑰、金鑰和憑證的權威性儲存庫。將它直接與 CI/CD 整合以消除明文密鑰:
- 管線密鑰:在 Azure DevOps 中,使用一個服務連線將變數群組連結到 Key Vault,該連線的範圍僅限於所需的密鑰名稱。密鑰會在執行期擷取並在日誌中被遮罩。在 GitHub Actions 中,使用帶有聯合身分識別的 azure/login 來取得 Token 並呼叫 Key Vault;避免將用戶端密鑰儲存在儲存庫設定中。
- 受控識別存取:盡可能讓工作負載和部署代理程式使用受控識別或工作負載身分識別聯邦向 Microsoft Entra ID 進行驗證,這樣就不會儲存任何密鑰。遵循最小權限原則,使用 RBAC 或存取原則來設定 Key Vault 的存取範圍 (例如,僅針對特定密鑰版本有 get/list 權限;沒有 purge/delete 權限)。
- 憑證輪替:將 TLS/MTLS 憑證儲存在 Key Vault Certificates 中,並透過整合的 CA 進行自動輪替。設定使用這些憑證的服務 (如 App Service、Application Gateway、透過 CSI Secrets Store 的 AKS Ingress) 參照 Key Vault,這樣更新後的憑證無需重新部署即可被採用。利用 Key Vault 的 certificateNearExpiry 事件觸發 Event Grid,來啟動一個自動化 Runbook 或 Function,以驗證綁定並預熱快取。在部署資訊清單中追蹤憑證版本的使用情況;必要時釘選版本,並在維護期間有計畫地向前更新。
透過私人端點、防火牆規則、清除保護、虛刪除,以及將日誌記錄到 Log Analytics 或儲存體以供稽核,來強化 Key Vault。除非有明確的正當理由,否則應拒絕跨租用戶的存取,並定期輪替緊急存取帳戶的存取權限。
依賴項目、容器、IaC 與合規即程式碼
依賴項目掃描必須同時處理安全性缺陷與授權問題。Dependabot 會持續提出安全的更新建議;使用依賴項目審查策略來阻擋引入有漏洞版本的 PR。OWASP Dependency-Check(或生態系原生工具如 npm audit、pip-audit)應在 CI 中執行,以產生 SBOM (CycloneDX/SPDX),並在違反嚴重性閾值或授權規則時讓建置失敗。若要進行進階的授權治理,可搭配能夠執行法律政策並提供修復工作流程的 SCA 平台。
容器映像檔的安全性始於 CI,並延伸至登錄檔與執行階段:
- Trivy:以管線步驟執行,掃描 Dockerfile 與建置好的映像檔,找出作業系統/套件的 CVE 與設定錯誤;當發現嚴重/高風險問題時,中斷建置。強制使用最小化的基礎映像檔與無根容器 (rootless container)。
- Azure Container Registry 漏洞掃描:啟用 Microsoft Defender for Containers,在映像檔推送/匯入時以及按排程進行掃描。在 Defender for Cloud 中呈現掃描結果,將其匯出至工作項目,並強制執行部署閘門,以阻擋帶有未解決之嚴重/高風險問題的映像檔。
- Defender for Containers:透過執行階段威脅偵測、kube-bench 風格的檢查以及准入控制,將保護延伸至 AKS/ECS/Kubernetes。使用策略,規定只能從以 Notation/ACR 內容信任簽署過的受信任 ACR 中提取映像檔,並在 CI 與叢集准入時驗證簽章。
IaC 安全性確保雲端資源在預設情況下就能安全地被佈建:
- Checkov 與 tfsec:掃描 Terraform 與 Kubernetes 的宣告檔案,找出不安全的設定(例如公開的儲存體、開放的安全群組、缺少加密)。在達到嚴重性閾值時讓建置失敗;將現有技術債建立基準,以專注於新的/變更的資源。
- ARM/Bicep 語法檢查:啟用 Bicep linter (bicepconfig.json) 與 ARM Template Tool Kit (arm-ttk),以強制執行標籤、僅限 HTTPS 的端點、客戶管理的金鑰以及診斷設定等規則。結合 what-if 部署,在套用前偵測組態漂移。
合規即程式碼使用 Azure Policy 與 Defender for Cloud 來持續強制執行控制項並產出報告:
- 指派與 CIS、NIST、ISO 27001 或內部基準一致的 Azure Policy 方案;選擇如 Deny 等效果來建立關鍵的防護機制(例如,資料庫上的公用 IP)、DeployIfNotExists 來部署診斷設定,以及 Audit 來達成可觀察性。將策略定義儲存為版本化的成品,透過 policy-as-code 管線進行測試,並經由 pull request 來進行晉升。
- 使用 Defender for Cloud 的法規合規性儀表板,將跨訂用帳戶與管理群組的控制項遵循情況視覺化。與 Azure Monitor 整合,並將證據匯出至 Log Analytics 或 Event Hubs,以供 SIEM 系統擷取。
- 維護稽核軌跡:使用 Azure Activity Logs 記錄策略事件與指派、Resource Graph 進行合規性查詢、Azure DevOps/GitHub 稽核日誌追蹤 repo 與管線的變更,以及將發行證據自動擷取為管線執行的成品。
← 發行管理與部署策略 · 所有領域 · 測試策略與品質工程 →
練習這些題目 → · 在 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.
通過考試 →