共用方式為


將容器映像從程式碼對應至雲端

在容器映像中識別出弱點時,無論是儲存在容器登錄中,還是在 Kubernetes 叢集中執行時,安全性從業者可能會難以將其追蹤回原本建置的 CI/CD 管線。 如果沒有該內容,很難識別負責修正問題的開發人員。 Microsoft Defender 雲端安全性狀態管理 (CSPM) 包含 DevOps 安全性功能,可讓您將雲端原生應用程式從程式代碼對應至雲端。 因此,您可以輕鬆地啟動開發人員補救工作流程,並縮短補救容器映射中弱點所需的時間。

必要條件

  • 已將適用於雲端的 Defender 上線的 Azure 帳戶。 如果您尚未擁有 Azure 帳戶,請建立免費帳戶

  • 針對 Azure DevOps:

    • Microsoft安全性 DevOps (MSDO) 擴充功能 必須安裝在 Azure DevOps 組織上。

    • 請確定所有連線的 Azure DevOps 組織都會共用並安裝適用於 DevOps 擴充功能的 Microsoft Defender。 針對新上線的連接器,這會自動完成。 此延伸模組會自動將工作插入所有 Azure Pipelines,以收集數據以進行容器對應。

    • 必須使用 YAML 管線,因為不再支持傳統管線。

  • 針對 GitHub:

  • 已啟用 Defender CSPM

  • 容器映像必須使用 Docker 來建置,而且 Docker 用戶端必須在建置期間可以存取 Docker 伺服器。

將容器映像從 Azure DevOps 管線對應至容器登錄

在 Azure DevOps CI/CD 管線中建置容器映像並將其推送至登錄之後,請參閱使用 雲端安全性總管對應:

  1. 登入 Azure 入口網站

  2. 瀏覽至 適用於雲端的 Microsoft Defender>雲端安全性總管。 容器映像對應最多可能需要 4 小時的時間才會出現在雲端安全性總管中。

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

    顯示如何尋找容器基本對應的螢幕擷取畫面。

  4. (選擇性) 選取 [容器映射] 的 [+] 以將其他篩選新增至您的查詢,例如 [有弱點] 僅篩選具有 CVE 的容器映像。

  5. 執行查詢之後,您會看到容器登錄與 Azure DevOps 管線之間的對應。 選取邊緣旁的 ...,以查看 Azure DevOps 管線執行位置的更多詳細資料。

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

以下是使用容器映像對應之進階查詢的範例。 從在網際網路中公開的 Kubernetes 工作負載開始,您可以將具有高嚴重性 CVE 的所有容器映像追蹤回建置容器映像的 Azure DevOps 管線,讓安全性從業者能夠啟動開發人員補救工作流程。

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

注意

如果您的 Azure DevOps 組織已在 2023 年 11 月 15 日之前建立 Azure DevOps 連接器,請流覽至 [ 組織設定>延伸模組 > 共用 ],並安裝容器映像對應裝飾專案。 如果您沒有看到與組織共用的延伸模組,請填寫下列 表單

將容器映像從 GitHub 工作流程對應至容器登錄

  1. 確保您已將 GitHub 連接器上線至適用於雲端的 Defender。

  2. 執行下列 MSDO 工作流程:

name: Build and Map Container Image

on: [push, workflow_dispatch]

jobs:
  build:
    runs-on: ubuntu-latest
    # Set Permissions
    permissions:
      contents: read
      id-token: write
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v4
        with:
          python-version: '3.8' 
    # Set Authentication to Container Registry of Choice. 
    # The example below is for Azure Container Registry. Amazon Elastic Container Registry and Google Artifact Registry are also supported. 
   - name: Azure Container Registry Login 
        uses: Azure/docker-login@v1 
        with:
        login-server: <containerRegistryLoginServer>
        username: ${{ secrets.ACR_USERNAME }}
        password: ${{ secrets.ACR_PASSWORD }}
    # Build and Push Image
    - name: Build and Push the Docker image 
        uses: docker/build-push-action@v2
        with:
          push: true
          tags: ${{ secrets.IMAGE_TAG }}
          file: Dockerfile
     # Run Mapping Tool in MSDO
    - name: Run Microsoft Security DevOps Analysis
      uses: microsoft/security-devops-action@latest
      id: msdo

在 GitHub 工作流程中建置容器映像並將其推送至登錄之後,請參閱使用 雲端安全性總管對應:

  1. 登入 Azure 入口網站

  2. 瀏覽至 適用於雲端的 Microsoft Defender>雲端安全性總管。 容器映像對應最多可能需要 4 小時的時間才會出現在雲端安全性總管中。

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

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

  4. (選擇性) 選取 [容器映射] 的 [+] 以將其他篩選新增至您的查詢,例如 [有弱點] 僅篩選具有 CVE 的容器映像。

  5. 執行查詢之後,您會看到容器登錄與 GitHub 工作流程管線之間的對應。 選取邊緣旁的 ...,以查看 GitHub 工作流程執行位置的更多詳細資料。

以下是使用容器映像對應之進階查詢的範例。 從在網際網路中公開的 Kubernetes 工作負載開始,您可以將具有高嚴重性 CVE 的所有容器映像追蹤回建置容器映像的 GitHub 存放庫,讓安全性從業者能夠啟動開發人員補救工作流程。

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

下一步