將容器影像從程式碼映射到執行時

當 適用於雲端的 Defender 發現容器映像中的漏洞時,追蹤該映像檔至原始的 CI/CD 管線運行會很困難。 無論映像是在容器登錄檔中,還是在 Kubernetes 叢集中運行,這個挑戰都很常見。 沒有管線背景,要找到合適的開發者並迅速開始修復會變得困難。 Defender 雲端安全態勢管理(CSPM)包含 DevOps 安全功能,能將容器工作負載從程式碼映射到雲端,讓團隊能更快開始修復。

本文說明可用的映射方法、每種方法的前置條件,以及如何在 Azure 入口網站驗證程式碼到執行時的映射。 在開始之前,請確保符合所需的 Defender CSPM 或 Defender for Containers 的先決條件。

程式碼到執行時 – 技術前置條件

建立 程式碼與執行時關係需具備以下先決條件。

一般前提(所有方法)

無論採用何種映射方法,以下先決條件皆適用:

  • Defender CSPM(雲端安全態勢管理)或容器的Defender必須在您的雲端環境中啟用。
    • Defender for Containers 包含有限的映射功能。
  • 容器映像必須 透過 CI/CD 管線建置。
    • 手動建立並推送的圖片不被支援,雖然有些手動建立的圖片仍可能出現在地圖結果中。
  • 容器映像必須 能被 適用於雲端的 Defender 發現,方法如下:
    • 儲存在 支援的容器登錄檔中,或
    • 在支援的 Kubernetes 環境中運行

選項一:將您的程式碼環境連接到 適用於雲端的 Defender。

當你將 Azure DevOps 或 GitHub 環境連接到 適用於雲端的 Defender 時,一組自動化工具會自動啟動。 自動化工具 不 會影響您現有的 DevOps 工作流程,並啟用程式碼與執行時的對應。

備註

  • 目前支援 Azure DevOps 與 GitHub
  • 在連接 前 建置並部署的容器映像,支援可能有限

關於如何將程式碼環境連接到 適用於雲端的 Defender 的步驟,請參見:

選項二:基於 Docker 標籤的映射

Docker 標籤式映射依賴於建置時直接嵌入容器映像中的元資料。 適用於雲端的 Defender 會從 OCI/Docker 映像清單中擷取這些元資料,並用它將映像檔與其原始資料庫關聯起來。

欲了解更多關於 Docker 標籤映射的資訊,請參閱:

備註

  • 基於 Docker 標籤的映射 不需要 DevOps 連接器。
  • 映射適用於 Defender CSPM 或 Defender for Containers 所涵蓋的 Kubernetes 環境。

選項三:基於 GitHub 聲明的映射

基於證明的映射使用在 GitHub Actions 工作流程中生成的密碼學上可驗證的來源中繼資料。 這些證明會將容器映像連結至其精確的來源存放庫、認可與建置身分。

欲了解更多關於基於證明的映射,請參見:

驗證你的程式碼與執行時映射(Azure portal)

無論你使用哪種映射方法(DevOps 連接器、Docker 標籤或 GitHub 認證),你都可以在 Azure 入口網站驗證程式碼與執行時的映射。 以下範例展示了如何在 Azure DevOps CI/CD 管線中建立容器映像並推送至登錄檔後,查看映射結果。 使用 Cloud Security Explorer 查看地圖:

  1. 登入 Azure 入口網站。

  2. 前往 適用於雲端的 Microsoft Defender>Cloud Security Explorer。 容器映像映射最多可能需要四小時才會顯示。

  3. 若要查看基本對應,請選取 [容器映像]>+>[由程式碼存放庫推送]。

    顯示容器基本對應方式的螢幕擷取畫面。

  4. (可選)選取 + by 容器映像,為查詢新增篩選器,例如 有漏洞,以便僅顯示具有常見漏洞與揭露(CVE)的容器映像。

  5. 執行查詢後,你會看到容器登錄檔與管線之間的對應。 選擇......連接線(邊緣)旁的 ... 以查看更多細節。

    顯示容器對應結果進階查詢的螢幕擷取畫面。

下一步