本指南提供沙盒專案的設置步驟,幫助您評估 GitHub Advanced Security(GHAS)與 適用於雲端的 Microsoft Defender 的端對端整合,並以簡單的使用案例呈現。
此整合透過將執行時風險與上下文與原始程式碼關聯,最大化 Microsoft 雲端原生應用安全性,以加速 AI 驅動的修復。
遵循本指南,你:
- 將您的 GitHub 儲存庫設置為支援 適用於雲端的 Defender。
- 建立執行時風險因子。
- 將程式碼連結到執行時資源。
- 測試 適用於雲端的 Defender 的真實應用案例。
Prerequisites
| 層面 | 詳細資料 |
|---|---|
| 環境要求 | - GitHub 帳號,並以 適用於雲端的 Defender 建立連接器 - GHAS 授權 - 在訂閱上啟用 Defender 雲端安全態勢管理(DCSPM) - Microsoft Security Copilot(可選用於自動修復) |
| 角色和權限 | - 安全管理員權限 - Azure 訂閱上的安全管理員(可在 適用於雲端的 Defender 中查看偵測結果) - GitHub 組織擁有者 |
| 雲端環境 | 僅在商業雲端提供(不適用於 Azure Government、21Vianet 運營的 Azure 或其他主權雲端)。 |
準備您的環境
步驟 1:建立 GitHub 倉庫並執行工作流程
要測試整合,請使用已經包含所有內容的 Sandbox 範例 GitHub 倉庫來建立一個脆弱容器映像。
在設置儲存庫之前,請確保:
- 為你計劃在 適用於雲端的 Defender 入口中使用的 GitHub 組織定義一個連接器。 請依照「 將您的 GitHub 環境連接到 適用於雲端的 Microsoft Defender」中的步驟操作。
- 為您的 GitHub 連接器設定無代理程式碼掃描功能。 請依照 「配置無代理碼掃描(預覽)」中的步驟操作。
- 使用私人倉庫來整合。
- 將以下儲存庫複製到你的 GitHub 組織:
- https://github.com/build25-woodgrove/mdc-customer-playbook 這個儲存庫啟用了 GHAS,並且已接入到啟用了 Defender CSPM 的 Azure 租戶。
在資料庫中,請依照以下步驟操作:
- 移至設定。
- 在左側窗格,選擇祕密與變數> 動作。 然後選擇 新儲存庫秘密。
- 在儲存庫或組織層級加入以下秘密:
| 變數 | 說明 |
|---|---|
| ACR_ENDPOINT | 容器登錄檔的認證伺服器。 |
| ACR_USERNAME | 容器登錄檔的用戶名。 |
| ACR_PASSWORD | 容器登錄的密碼。 |
Note
你可以為這些變數選擇任何名稱。 他們不需要遵循特定的模式。
你可以依照以下步驟在 Azure 入口網站找到這些資訊:
- 選擇你想部署到的容器登錄檔。
- 在 設定中,選擇 存取鍵。
- 存取金鑰面板顯示驗證伺服器的金鑰、使用者名稱和密碼。
在你的儲存庫中,選擇 「動作」,選擇 「建置並推送到ACR 」工作流程,然後選擇 執行工作流程。
檢查映像檔是否已部署到你的容器登錄檔。 以範例儲存庫為例,映像檔應該存在一個帶有標籤mdc-mock-0001的登錄檔mdc-ghas-integration中。
在叢集上部署與執行容器相同的映像檔。 完成此步驟的一種方法是連接叢集並使用指令 kubectl run 。 這裡有一個 Azure Kubernetes Service(AKS)的範例:
設定叢集訂閱:
az account set --subscription $subscriptionID
為叢集設定憑證:
az aks get-credentials --resource-group $resourceGroupName --name $kubernetesClusterName --overwrite-existing
部署映像檔:
kubectl run $containerName --image=$registryName.azurecr.io/mdc-mock-0001:mdc-ghas-integration
步驟 2:建立範例風險因子(業務關鍵規則)
適用於雲端的 Defender 偵測到的整合相關風險因素之一是業務關鍵性。 組織可以制定規則,將資源標示為業務關鍵。
- 在 適用於雲端的 Defender 入口網站,前往 環境設定>資源重要性。
- 在右側窗格,選擇連結以開啟 Microsoft Defender。
- 選擇 建立新分類。
- 輸入名稱和描述。
- 在查詢建構器中,選擇 雲端資源。 寫一個查詢,將 資源名稱 設為已部署到叢集中的容器名稱,以進行驗證。 然後選取下一步。
- 在 預覽資產 頁面,如果 Microsoft Defender 已經偵測到你的資源,容器名稱會顯示為 K8s-container 或 K8s-pod 的資產類型。 即使名字還沒看出來,也要繼續下一步。
- 選擇一個嚴重性等級,然後檢視並提交分類規則。
Note
Microsoft Defender 會在偵測到容器後,對該容器套用關鍵性標籤。 此程序最多可能需要 24 小時。
步驟三:確認你的環境已經準備好
驗證確認你的環境已正確配置,能將程式碼呈現為執行時建議,並產生可執行的結果。
在此步驟中,Defender 會驗證完整程式碼與執行時可視性。
- 適用於雲端的 Microsoft Defender 持續監控原始碼庫的安全漏洞。
- 部署前,會在容器登錄中掃描容器映像等組建成品。
- Kubernetes 叢集中的執行時工作負載被監控以防安全風險。
- 適用於雲端的 Defender 會對每個產物進行關聯與追蹤,從程式碼、建置與部署,到執行時再回溯。
Note
在前述步驟應用後,可能需要長達24小時才能看到以下結果。
測試 GitHub 無代理掃描是否能偵測到該儲存庫。
到雲端安全檔案總管執行查詢。 驗證查詢測試 Defender 是否能識別由你的管線和工作負載產生的產物。 如果查詢回傳結果,表示掃描與關聯性運作正常。
Note
如果沒有回傳結果,可能表示產物尚未產生、掃描未設定,或是權限缺失。
- 驗證 適用於雲端的 Defender(在 Azure Container Registry 中)是否掃描了容器映像並用它來建立容器。
- 在查詢中,請填寫你具體部署的條件。
- 確認容器是否在運作,且 適用於雲端的 Defender 是否掃描了 AKS 叢集。
- 驗證 適用於雲端的 Defender 端的風險因子設定正確。 在 適用於雲端的 Defender 的庫存頁面搜尋你的容器名稱,應該會看到它被標記為關鍵。
Note
此步驟僅在風險因子尚未設定於環境中時才需要。
成功的驗證確保後續步驟,如推薦、活動及 GitHub 議題產生,能產生有意義的成果。