DevSecOps,有時稱為安全 DevOps,建立在 DevOps 原則之上,但將安全性置於整個應用程式生命週期的中心。 這個概念稱為「左移安全性」:它將安全性從僅生產問題向上游移動到涵蓋規劃和開發的早期階段。 每個處理應用程式的團隊和人員都必須考慮安全性。
Microsoft 和 GitHub 提供解決方案,讓您對在生產環境中執行的程式碼建立信心。 這些解決方案會檢查您的程式碼,並允許其可追蹤性向下追溯至工作專案,以及使用中第三方元件的深入解析。
使用 GitHub 保護您的程式碼
開發人員可以使用程式碼掃描工具快速自動分析 GitHub 儲存庫中的程式碼,以尋找安全漏洞和編碼錯誤。
您可以掃描程式碼來尋找、分類現有問題的修正程式,並排定修正程式的優先順序。 程式碼掃描也會防止開發人員引入新問題。 您可以排程特定日期和時間的掃描,或在儲存庫中發生特定事件 (例如推送) 時觸發掃描。 您也可以追蹤儲存庫的相依性,並在 GitHub 偵測到易受攻擊的相依性時接收安全警示。
使用 Azure Boards 追蹤您的工作
小組可以使用 Azure Boards Web 服務來管理軟體專案。 Azure Boards 提供一組豐富的功能,包括 Scrum 和工作流程看板的原生支援、可自定義的儀錶板,以及整合式報告。
使用 Azure Pipelines 建置和部署容器
輕鬆整合 Azure Pipelines 和 Kubernetes 叢集。 您可以使用相同的 YAML 檔來建置多階段管線即程式碼,以進行持續整合和持續傳遞。
Azure Pipelines 會將中繼資料追蹤整合到容器映像中,包括來自 Azure Boards 的認可雜湊和問題號碼,讓您可以放心地檢查應用程式。
使用 YAML 檔案建立部署管線並將其儲存在原始檔控制中的能力有助於在依賴清晰、可讀文件的開發和營運團隊之間推動更緊密的回饋循環。
- 將 Docker 映像儲存在 Azure Container Registry 中
- 使用 Azure Pipelines 建置 Docker 映像
- 部署到 Kubernetes 並具有完全可追溯性
- 保護您的 Azure Pipelines
使用 Bridge to Kubernetes 執行和偵錯容器
開發 Kubernetes 應用程式可能具有挑戰性。 您需要 Docker 和 Kubernetes 組態檔。 您需要弄清楚如何在本地測試您的應用程式並與其他相依服務互動。 您可能需要與開發人員團隊一起一次開發和測試多個服務。
Bridge to Kubernetes 可讓您在開發電腦上執行和偵錯程式碼,同時仍連線到其他應用程式或服務的 Kubernetes 叢集。 您可以端對端測試程式碼、在叢集中執行的程式碼上命中斷點,並在團隊成員之間不受干擾地共用開發叢集。
使用適用於容器的 Microsoft Defender 和 Azure 原則強制執行容器安全性
適用於容器的 Microsoft Defender 是保護容器的雲端原生解決方案。
使用 Microsoft 身分識別平台管理身分識別和存取權
Microsoft 身分識別平臺是 Azure Active Directory (Azure AD) 開發人員平臺的演進。 它可讓開發人員建置應用程式,以登入所有 Microsoft 身分識別,並取得權杖來呼叫 Microsoft API,例如 Microsoft Graph,或開發人員已建置的 API。
Microsoft Entra 外部識別碼提供企業對客戶身分識別即服務。 您的客戶會使用其偏好的社交、企業或本機帳戶身分識別,以取得應用程式和 API 的單一登入存取權。
雲端資源的存取管理對於任何使用雲端的組織來說都是一項關鍵功能。 Azure 角色型存取控制 (Azure RBAC) 可協助您管理誰可以存取 Azure 資源、他們可以使用這些資源執行哪些動作,以及他們可以存取哪些區域。
您可以使用 Microsoft 身分識別平臺來驗證其餘的 DevOps 工具,包括 Azure DevOps 內的原生支援,以及與 GitHub Enterprise 的整合。
目前,Azure Kubernetes Service (AKS) 叢集 (特別是 Kubernetes 雲端提供者) 需要身分識別,才能在 Azure 中建立其他資源,例如負載平衡器和受控磁碟。 此身分識別可以是受控識別或服務主體。 如果您使用服務主體,您必須提供服務主體,或 AKS 代表您建立服務主體。 如果您使用受控識別,AKS 會自動為您建立一個識別。 對於使用服務主體的叢集,服務主體最終必須更新,才能讓叢集保持運作。 管理服務主體會增加複雜度,這就是為什麼更容易改用受控識別的原因。 相同的許可權需求適用於服務主體和受控識別。
受控識別本質上是服務主體的包裝函式,並使其管理更簡單。
使用 Azure 金鑰保存庫管理金鑰和秘密
Azure 金鑰保存庫可用來安全地儲存和控制權杖、密碼、憑證、API 金鑰和其他秘密的存取。 集中儲存應用程式秘密在 Key Vault 中,可讓您控制其散發。 Key Vault 可大幅降低秘密意外外洩的機會。 當您使用 Key Vault 時,應用程式開發人員不再需要將安全性資訊儲存在其應用程式中,這就不需要讓這項資訊成為程式碼的一部分。 例如,應用程式可能需要連線到資料庫。 您可以將連接字串安全地儲存在 Key Vault 中,而不是將連接字串儲存在應用程式的程式碼中。
監控您的應用程式
使用 Azure 監視器,您可以即時監視應用程式和基礎結構,識別程式碼問題以及潛在的可疑活動和異常。 Azure 監視器會與 Azure Pipelines 中的發行管線整合,以根據監視數據自動核准品質閘道或發行復原。
瞭解如何使用 Azure Application Insights 和 Azure 監視器來監視您的應用程式和基礎結構。
建置正確的架構
安全性是任何架構中最為重要的部分。 安全性提供機密性、完整性和可用性保證,防止對您寶貴的資料和系統進行故意攻擊和濫用。 失去這些保證可能會對您的業務運營和收入以及組織在市場上的聲譽產生負面影響。