DevOps 平臺的安全性考慮
安全性應一律是雲端式開發平臺的優先順序,例如 Azure DevOps 和 GitHub 。 Microsoft 會更新及維護基礎雲端基礎結構的安全性,但您必須檢閱及設定您自己的 Azure DevOps 組織和 GitHub 實例的安全性最佳做法。
無論您透過基礎結構部署環境作為持續整合和持續部署 (CI/CD) 管線中的程式碼,或將程式碼部署至裝載于 Azure 中的應用程式,請考慮下列重要安全性領域。
限制對 DevOps 工具的存取
透過 Microsoft Entra ID 使用角色型存取控制 (RBAC) 以遵循最低許可權原則。 為使用者和服務提供他們執行其商務功能所需的最低 DevOps 平臺存取量。 如需詳細資訊,請參閱下列文章:
- 將組織連線至 Microsoft Entra 識別碼
- 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 管理員istrator 角色。
使用 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 工作區的稽核串流 ,或建立 Microsoft Sentinel 之類的 安全性資訊和事件管理 (SIEM) 系統。