DevOps 平臺的安全性考慮
安全性應一律是雲端式開發平臺的優先順序,例如 Azure DevOps 和 GitHub。 Microsoft更新並維護基礎雲端基礎結構的安全性,但您必須檢閱及設定您自己的 Azure DevOps 組織和 GitHub 實例的安全性最佳做法。
無論您透過基礎結構部署環境作為持續整合和持續部署 (CI/CD) 管線中的程式碼,或將程式代碼部署至裝載於 Azure 中的應用程式,請考慮下列重要安全性領域。
限制對 DevOps 工具的存取
透過 Microsoft Entra 識別符,使用角色型訪問控制 (RBAC) 遵循最低許可權原則。 為使用者和服務提供他們執行其商務功能所需的最低 DevOps 平臺存取量。 如需詳細資訊,請參閱下列文章:
- 將您的組織連接到 Microsoft Entra ID
- Microsoft Entra 單一登錄 (SSO) 與 GitHub Enterprise Cloud 整合
- Azure DevOps 安全性最佳做法
建立Microsoft Entra標識符作為身分識別管理平面之後,請遵循最佳做法,以 使用 Microsoft Entra 群組成員資格來管理 Azure DevOps 角色指派。 您可以將 Azure DevOps 角色指派給 Microsoft Entra 群組,並調整使用者的 Microsoft Entra 成員資格來變更或移除其 Azure DevOps 存取權。
使用Microsoft Entra ID 權利管理 來建立存取套件,以允許Microsoft Entra 使用者對必要資源進行時間限制存取,以完成其工作。
您也可以使用Microsoft Entra Privileged Identity Management 進行 Just-In-Time 存取,將個人提升至 Azure DevOps Administrator 角色一段時間。
使用 Azure DevOps 組織、專案或物件層級的安全組、原則和設定來管理 Azure DevOps 中的安全性。 請考慮盡可能在 Azure DevOps 中停用許可權繼承。
限制存放庫和分支存取
限制存放庫存取、許可權和分支建立,以保護您的程式代碼和環境免於遭受不想要或惡意的變更。 在 Azure DevOps 中使用安全組來限制對存放庫 的存取。 藉由設定 分支許可權來限制誰可以讀取和更新分支中的程序代碼。
限制管線存取和許可權
惡意代碼可能會竊取企業數據和秘密,以及損毀的生產環境。 實作防護措施,以防止管線中的惡意代碼部署。 藉由限制存取和實作護欄,您也可以防止從任何遭入侵的管線橫向暴露至其他專案、管線和存放庫。
請考慮遵循累加方法來保護您的 YAML 管線。 如需詳細資訊,請參閱 規劃如何保護您的 YAML 管線。
根據安全性需求選取 DevOps 代理程式
您可以使用Microsoft裝載或自我裝載的代理程式來提供 Azure DevOps 和 GitHub 管線。 每種代理程式類型都有取捨。
使用Microsoft裝載的代理程式,您不需要擔心升級或維護。 透過自我裝載的代理程式,您可以有更大的彈性來實作安全性防護。 您可以控制代理程式硬體、作業系統和已安裝的工具。
請參閱 Azure Pipelines 代理程式,以檢閱代理程式 類型之間的差異,並找出潛在的安全性考慮。
使用安全且有範圍的服務連線
盡可能使用 服務連線 在 Azure 環境中部署基礎結構或應用程式程式代碼。 服務連線應具有特定 Azure 資源或資源群組的有限部署存取權,以減少任何潛在的受攻擊面。 此外,請考慮為開發、測試、QA 和生產環境建立個別的服務連線。
使用秘密存放區
永遠不要在存放庫中的程式碼或輔助檔中硬式程式代碼秘密。 敵人會掃描存放庫,搜尋公開的機密數據以惡意探索。 設定 Azure 金鑰保存庫 之類的秘密存放區,並參考 Azure Pipelines 中的存放區,以安全地擷取密鑰、秘密或憑證。 如需詳細資訊,請參閱 保護管線和 CI/CD 工作流程。 您也可以在 GitHub Actions 工作流程中使用 金鑰保存庫 秘密。
使用強化的DevOps工作站來建置和部署程式代碼
平台和開發小組通常會在 Azure 平臺上或 Azure DevOps 和 GitHub 等其他服務上提高許可權。 此存取可大幅增加潛在的受攻擊面。 實作護欄來保護您用來開發和部署程式代碼的任何端點和工作站。
使用強化 的安全系統管理工作站 (SAWs) 將任何變更部署至高風險和生產環境。 如需詳細資訊,請參閱使用 零信任 保護端點。
進行安全性掃描和測試
無論您是將應用程式程式代碼或基礎結構部署為程式代碼,請在管線中實 作DevSecOps最佳做法和控制件 。 在 CI/CD 旅程中早期整合安全性,以避免稍後發生成本高昂的安全性缺口。 建立策略,以在管線中實作靜態程序代碼分析、單元測試、秘密掃描和套件/相依性掃描。
適用於雲端的 Microsoft Defender 等企業安全性工具可以與 DevOps 工具整合。 例如,適用於雲端的 Defender 可以在 CI/CD 工作流程中識別易受攻擊的容器映像。 針對 GitHub Actions 和存放庫,使用 GitHub 進階安全性 進行程式代碼和秘密掃描和相依性檢閱。
定期檢閱稽核事件,以監視和響應系統管理員和其他使用者的非預期使用模式。 您可以 存取、篩選和匯出 Azure DevOps 組織的稽核記錄 。 針對長期記憶體和詳細的記錄查詢,請建立 Azure 監視器 Log Analytics 工作區的稽核串流,或建立安全性資訊和事件管理 (SIEM) 系統,例如 Microsoft Sentinel。