使用 Azure 和 GitHub 來啟用 DevSecOps

DevSecOps 有時稱為「安全的 DevOps」,其會根據 DevOps 的準則來建置,但會將安全性作為整個應用程式生命週期的核心。 這個概念稱為「左移安全性」:其會將安全性從僅限生產環境的考量往回移動,以包含規劃和開發的早期階段。 每個處理應用程式的小組和人員都必須考慮安全性。

Microsoft 和 GitHub 提供了解決方案,讓您對在生產環境中執行的程式碼產生信心。 這些解決方案會檢查您的程式碼,讓其能夠往下追蹤到工作項目並了解使用中的第三方元件。

使用 GitHub 保護您的程式碼

開發人員可以使用能夠在 GitHub 存放庫中快速且自動分析程式碼的程式碼掃描工具來尋找安全性弱點和編碼錯誤。

您可以掃描程式碼來尋找現有問題、予以分級並排定修正的優先順序。 程式碼掃描也會防止開發人員引進新的問題。 您可以排程特定天數和時間的掃描,或在存放庫中發生特定事件 (例如推送) 時觸發掃描。 您也可以追蹤存放庫的相依性,並在 GitHub 偵測到易受攻擊的相依性時收到安全性警示。

使用 Azure Boards 追蹤您的工作

Teams 可以使用 Azure Boards Web 服務來管理軟體專案。 Azure Boards 提供一組豐富的功能,包括 Scrum 和 Kanban 的原生支援、可自定義的儀錶板,以及整合式報告。

使用 Azure Pipelines 建置和部署容器

Azure Pipelines 和 Kubernetes 叢集的整合很輕鬆。 您可以使用相同的 YAML 文件來建置多階段管線即程式碼,以實現持續整合與持續傳遞。

Azure Pipelines 會將中繼資料的追蹤功能整合到您的容器映像中 (包括認可雜湊和來自 Azure Boards 的問題號碼),以便您可以放心地檢查您的應用程式。

能夠使用 YAML 檔案建立部署管線並將其儲存在原始檔控制中,有助於讓依賴清楚可讀文件的開發小組與作業小組之間形成更加緊密的意見反應迴圈。

使用 Bridge to Kubernetes 執行容器並進行偵錯

開發 Kubernetes 應用程式並不容易。 您需要 Docker 和 Kubernetes 設定檔。 您必須了解如何在本機測試應用程式,並與其他相依服務互動。 您可能需要有一組開發人員一次開發及測試多項服務。

Bridge to Kubernetes 可讓您在開發電腦上執行和偵錯程式碼,但應用程式其餘部分或服務仍然連線至 Kubernetes 叢集。 您可以進行端對端的程式碼測試、對在叢集中執行的程式碼叫用中斷點,並在沒有干擾的情況下於小組成員之間共用開發叢集。

使用適用於容器的 Microsoft Defender 和 Azure 原則強制執行容器安全性

適用於容器的 Microsoft Defender 是用來保護容器的雲端原生解決方案。

使用 Microsoft 身分識別平台管理身分識別和存取

Microsoft 身分識別平台是從 Azure Active Directory (Azure AD) 開發人員平台演變而來。 此平台可讓開發人員建置可登入所有 Microsoft 身分識別的應用程式,並取得權杖以呼叫 Microsoft Graph 之類的 Microsoft API 或開發人員所建置的 API。

Azure AD B2C 會提供企業對客戶的身分識別即服務。 您的客戶會使用其慣用的社交、企業或本機帳戶身分識別取得應用程式和 API 的單一登入。

對於使用雲端的任何組織而言,雲端資源的存取管理是非常重要的功能。 Azure 角色型存取控制 (Azure RBAC) 可協助您管理可存取 Azure 資源的人員、這些人員如何使用資源,以及他們可以存取的區域。

您可以使用 Microsoft 身分識別平台向其餘的 DevOps 工具進行驗證,包括 Azure DevOps 內的原生支援,以及與 GitHub Enterprise 的整合。

目前,Azure Kubernetes Service (AKS) 叢集 (具體來說是 Kubernetes 雲端提供者) 需要身分識別才能在 Azure 中另外建立負載平衡器和受控磁碟等資源。 此身分識別可以是受控識別或服務主體。 如果您使用服務主體,則必須提供一個服務主體或由 AKS 代您建立一個。 如果您使用受控識別,則 AKS 會自動為您建立一個受控識別。 對於使用服務主體的叢集,最終必須更新服務主體才能讓叢集保持運作。 管理服務主體會增加複雜度,因此改用受控識別會比較容易。 服務主體和受控識別適用相同的權限需求。

受控識別基本上是圍繞服務主體的包裝函式,可使其管理工作變得簡單。

使用 Azure Key Vault 管理金鑰和祕密

Azure Key Vault 可用來安全地儲存權杖、密碼、憑證、API 金鑰和其他祕密,並控制這些項目的存取。 在 Key Vault 中集中儲存應用程式祕密可讓您控制其散發。 Key Vault 可大幅降低不小心洩露祕密的風險。 當您使用 Key Vault 時,應用程式開發人員不再需要將安全性資訊儲存在其應用程式中,因此不需要讓此資訊成為程式碼的一部分。 例如,應用程式可能需要連線到資料庫。 您可以在 Key Vault 中妥善儲存連接字串,而不用在應用程式的程式碼中儲存連接字串。

監視您的應用程式

透過 Azure 監視器,您可以即時監視應用程式和基礎結構,以找出程式碼的問題,以及潛在的可疑活動和異常狀況。 Azure 監視器會與 Azure Pipelines 中的發行管線整合,以根據監視資料自動核准品質閘門或發行復原。

瞭解如何使用 Azure 應用程式 Insights 和 Azure 監視器來監視應用程式和基礎結構。

建置正確的架構

安全性是任何架構中最重要的其中一個層面。 安全性提供機密性、完整性和可用性保證,以防止蓄意攻擊和濫用您寶貴的數據和系統。 失去這些保證可能會對您的商務營運和營收以及貴組織的市集聲譽產生負面影響。