共用方式為


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

當儲存在容器登錄或在 Kubernetes 叢集中執行的容器映像中識別弱點時,安全性從業者可能會難以追溯到最先建置容器映像的 CI/CD 管線,並識別開發人員補救擁有者。 透過 Microsoft Defender 雲端安全性態勢管理 (CSPM) 中的 DevOps 安全性功能,您可以將雲端原生應用程式從程式碼對應到雲端,以輕鬆啟動開發人員補救工作流程,並縮短容器映像中弱點補救的時間。

必要條件

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

  • 已上線至 Microsoft Defender 的 Azure DevOpsGitHub 環境會自動在所有連線的 Azure DevOps 組織中共用並安裝。 這會自動將工作插入所有 Azure Pipelines,收集資料以進行容器對應。

  • 針對 Azure DevOps,Azure DevOps 組織上安裝的 Microsoft Security DevOps (MSDO) 延伸模組

  • 針對 GitHub,GitHub 存放庫中設定的 Microsoft Security DevOps (MSDO) 動作。 此外,GitHub 工作流程必須具有「id-token: write」權限,才能與適用於雲端的 Defender 同盟。 如需範例,請參閱 這個 YAML

  • 已啟用 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 存放庫,讓安全性從業者能夠啟動開發人員補救工作流程。

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

下一步