將容器映像從程式碼對應至雲端
當儲存在容器登錄或在 Kubernetes 叢集中執行的容器映像中識別弱點時,安全性從業者可能會難以追溯到最先建置容器映像的 CI/CD 管線,並識別開發人員補救擁有者。 透過 Microsoft Defender 雲端安全性態勢管理 (CSPM) 中的 DevOps 安全性功能,您可以將雲端原生應用程式從程式碼對應到雲端,以輕鬆啟動開發人員補救工作流程,並縮短容器映像中弱點補救的時間。
必要條件
已將適用於雲端的 Defender 上線的 Azure 帳戶。 如果您尚未擁有 Azure 帳戶,請建立免費帳戶。
已上線至 Microsoft Defender 的 Azure DevOps 或 GitHub 環境會自動在所有連線的 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 管線中建置容器映像並將其推送至登錄之後,請參閱使用 雲端安全性總管對應:
登入 Azure 入口網站。
瀏覽至 適用於雲端的 Microsoft Defender>雲端安全性總管。 容器映像對應最多可能需要 4 小時的時間才會出現在雲端安全性總管中。
若要查看基本對應,請選取 [容器映像]>+>[由程式碼存放庫推送]。
(選擇性) 選取 [容器映射] 的 [+] 以將其他篩選新增至您的查詢,例如 [有弱點] 僅篩選具有 CVE 的容器映像。
執行查詢之後,您會看到容器登錄與 Azure DevOps 管線之間的對應。 選取邊緣旁的 ...,以查看 Azure DevOps 管線執行位置的更多詳細資料。
以下是使用容器映像對應之進階查詢的範例。 從在網際網路中公開的 Kubernetes 工作負載開始,您可以將具有高嚴重性 CVE 的所有容器映像追蹤回建置容器映像的 Azure DevOps 管線,讓安全性從業者能夠啟動開發人員補救工作流程。
注意
如果您的 Azure DevOps 組織在 2023 年 11 月 15 日之前建立 Azure DevOps 連接器,請瀏覽至 [組織設定]>[延伸模組]>[共用],並安裝容器映像對應裝飾項目。 如果您沒有看到與組織共用的延伸模組,請填寫下列 表單。
將容器映像從 GitHub 工作流程對應至容器登錄
確保您已將 GitHub 連接器上線至適用於雲端的 Defender。
執行下列 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 工作流程中建置容器映像並將其推送至登錄之後,請參閱使用 雲端安全性總管對應:
登入 Azure 入口網站。
瀏覽至 適用於雲端的 Microsoft Defender>雲端安全性總管。 容器映像對應最多可能需要 4 小時的時間才會出現在雲端安全性總管中。
若要查看基本對應,請選取 [容器映像]>+>[由程式碼存放庫推送]。
(選擇性) 選取 [容器映射] 的 [+] 以將其他篩選新增至您的查詢,例如 [有弱點] 僅篩選具有 CVE 的容器映像。
執行查詢之後,您會看到容器登錄與 GitHub 工作流程管線之間的對應。 選取邊緣旁的 ...,以查看 GitHub 工作流程執行位置的更多詳細資料。
以下是使用容器映像對應之進階查詢的範例。 從在網際網路中公開的 Kubernetes 工作負載開始,您可以將具有高嚴重性 CVE 的所有容器映像追蹤回建置容器映像的 GitHub 存放庫,讓安全性從業者能夠啟動開發人員補救工作流程。