本文將協助你修復在 Kubernetes 中使用適用於容器的 Microsoft Defender 設定或使用受限部署時的常見問題。
門控部署在部署時根據支援容器登錄的漏洞掃描結果強制執行容器映像安全政策。 它會與 Kubernetes 的許可控制器整合,以在圖像進入叢集前加以檢查。
入門與設定問題
問題:啟用 Defender for Containers 後,門控部署未啟動
可能的原因:
- 所需方案擴充已停用
- Defender 感測器被停用或未配置到叢集
- Kubernetes 叢集版本早於 1.31
- 容器登錄範圍內的 Defender for Containers 計畫或相關擴充(登錄存取或安全發現擴充)皆被停用
解決方法:
確認 Defender for Containers 方案中啟用以下切換選項:
- 防禦感測器
- 安全門禁
- 登錄檔存取
- 安全發現
確保你的 Kubernetes 叢集運行版本 1.31 或更新版本。
對於 Azure:檢查叢集是否能存取容器登錄檔(ACR),並且是否已設定 Microsoft Entra ID 認證。 對於 AKS 叢集,請確保叢集有 kubelet 身份,且准入控制艙的服務帳號包含在 kubelet 身份的聯邦憑證中。
問題:安全規則未觸發
可能的原因:
- 規則範圍與部署的資源不符。
- CVE 條件未被滿足。
- 映像檔在掃描結果尚未可用前就已部署。
解決方法:
請檢查規則範圍及匹配標準。
檢查映像檔是否有符合規則條件的漏洞。
確保映像檔存在支援的容器登錄檔。 登錄檔必須屬於啟用登錄檔存取與安全發現的訂閱、帳號或專案。
確保 Defender for Cloud 在部署前掃描映像檔。 如果沒有達到,篩選條件就不適用。
備註
Defender for Containers 會在初次推送事件後幾小時內掃描支援容器登錄檔中的映像檔。 欲了解更多關於掃描觸發器的資訊,請參閱支援 Defender for Container 環境的脆弱性評估。
問題:排除條款未適用
可能的原因:
- 排除範圍與資源不符。
- 排除條款已過期。
- 匹配標準配置錯誤。
解決方法:
- 建立規則時請檢視排除設定。
- 確認排除是否仍然有效。
- 檢查資源(像是圖片、Pod 或命名空間)是否符合排除條件。
開發者經驗與 CI/CD 整合
門控部署會在部署時強制執行政策。 當你部署容器映像時,可能會看到特定的訊息或行為。
常見開發者訊息
| 場景 | Message |
|---|---|
| 因 CVE 而被封鎖的圖片 | 來自伺服器的錯誤:許可 webhook "defender-admission-controller.kube-system.svc" 拒絕要求:mcr.microsoft.com/mdc/dev/defender-admission-controller/test-images:one-high:圖像包含 2 個高或更高的 CVE,這樣超過允許記數:0 個。” |
| 影像被阻擋,因為掃描結果遺失 | 在批准回覆中未找到有效的報告 政策不允許未掃描的影像 |
| 允許影像但監控(稽核模式) | 申請入學被允許。 安全掃描會在背景執行(審計模式)。 深入了解:https://aka.ms/KubernetesDefenderAuditRule |
| 允許圖像,無需掃描結果 (稽核模式) | 申請入學被允許。 安全掃描會在背景執行(審計模式)。 了解更多: https://aka.ms/KubernetesDefenderAuditRule| |
開發者的最佳實務
- 部署前掃描映像檔以避免繞過門控。
- 在初期部署時使用稽核模式來監控影響,避免阻塞。
- 必要時與保全團隊協調申請排除。
- 請監控入場監控以掌握規則評估和執行情況。
相關內容
如需詳細指導與支援,請參閱以下文章:
概觀:到 Kubernetes 叢集的容器圖像受限部署介紹此功能、其價值以及其運作方式
啟用指南:為 Kubernetes 叢集配置門控部署 逐步說明入職、規則建立、排除事項與監控
常見問題:Defender for Containers 的閘控部署 針對客戶常見問題解答,關於閘控部署行為與設定