Google Cloud Well-Architected Framework 安全性支柱中的這項原則,可協助您找出可在軟體開發生命週期初期實作的實用控管機制,以改善安全防護機制。提供建議,協助您導入預防性安全防護機制和部署後安全控制項。
原則總覽
提前進行安全性測試,是指在軟體開發生命週期初期採用安全性做法。這項原則的目標如下:
- 在系統變更前,避免發生安全性缺失。實作預防性安全防護機制,並採用基礎架構即程式碼 (IaC)、政策即程式碼,以及 CI/CD 管道中的安全檢查等做法。您也可以使用其他平台專屬功能,例如 Google Cloud中的機構政策服務和強化的 GKE 叢集。
- 在任何系統變更提交後,及早、快速且可靠地偵測及修正安全性錯誤。採用程式碼審查、部署後安全漏洞掃描和安全性測試等做法。
以安全為設計宗旨和提前防範安全性原則雖然相關,但範圍不同。安全的設計原則可協助您避免需要重新建構整個系統的根本設計缺陷。舉例來說,威脅模擬演練顯示,目前的設計並未納入授權政策,且在沒有授權政策的情況下,所有使用者都會擁有相同的存取權。提前防範安全性問題,有助於您在套用變更前避免實作缺陷 (錯誤和設定錯誤),並在部署後提供快速可靠的修正方式。
建議
如要為雲端工作負載實作左移安全性原則,請考慮下列各節中的建議:
採用預防性安全防護措施
這項最佳化建議與下列重點領域相關:
- 身分與存取權管理
- 雲端管理、風險與法規遵循
如要維持強大的雲端安全防護機制,預防性安全性控管機制至關重要。這些控制項可協助您主動降低風險。您可以防止設定錯誤和未經授權存取資源,讓開發人員能有效率地工作,並確保遵守業界標準和內部政策。
使用基礎架構即程式碼 (IaC) 實作預防性安全性控管機制,效果會更顯著。透過基礎架構即程式碼,預防性安全性控管機制可在變更部署前,納入更多自訂基礎架構程式碼檢查項目。搭配使用自動化功能後,預防性安全控制措施就能在持續整合/持續推送軟體更新管道的自動檢查程序中執行。
下列產品和 Google Cloud 功能可協助您在環境中導入預防性控管機制:
- 機構政策服務限制:透過集中控管功能設定預先定義和自訂限制。
- VPC Service Controls:為 Google Cloud 服務建立範圍。
- 身分與存取權管理 (IAM)、特權存取權管理工具和主體存取邊界政策:限制資源存取權。
- Policy Controller 和 Open Policy Agent (OPA):在 CI/CD 管道中強制執行 IaC 限制,並避免雲端設定錯誤。
您可以透過身分與存取權管理,根據權限授權使用者對特定資源執行動作。詳情請參閱「使用 IAM 控管機構資源的存取權」。
機構政策服務可讓您針對資源設定限制,指定其配置方式。舉例來說,您可以使用機構政策執行下列操作:
- 根據網域限制資源共用。
- 限制服務帳戶使用。
- 限制新建立資源的實際位置。
除了使用機構政策外,您也可以透過下列方法限制資源存取權:
- 使用 IAM 的標記:為一組資源指派標記,然後為標記本身設定存取權定義,而非為每個資源定義存取權。
- IAM 條件:定義資源的條件式、以屬性為基礎的存取權控管。
- 多層防護:使用 VPC Service Controls 進一步限制資源存取權。
如要進一步瞭解資源管理,請參閱「決定 Google Cloud 目標區的資源階層」。
自動佈建及管理雲端資源
這項最佳化建議與下列重點領域相關:
- 應用程式安全防護
- 雲端管理、風險與法規遵循
如要自動佈建及管理雲端資源和工作負載,除了採用指令式指令碼外,也應採用宣告式 IaC,以提升效率。IaC 本身並非安全工具或做法,但有助於提升平台安全性。採用 IaC 可讓您建立可重複的基礎架構,並為作業團隊提供已知的良好狀態。此外,IaC 還可提高回溯、稽核變更和疑難排解的效率。
搭配使用 CI/CD 管道和自動化功能後,您還可以透過 OPA 等工具採用政策做為程式碼等做法。您可以稽核基礎架構的變更,並在變更部署前對基礎架構程式碼執行自動檢查。
如要自動部署基礎架構,您可以使用 Config Controller、Terraform、Jenkins 和 Cloud Build 等工具。Google Cloud 提供企業基礎藍圖,協助您使用 IaC 和自動化技術建構安全的應用程式環境。這個藍圖是 Google 的設計理念,遵循我們建議的所有做法和設定。本藍圖提供逐步操作說明,說明如何使用 Terraform 和 Cloud Build 設定及部署 Google Cloud 拓撲。
您可以修改企業基礎架構藍圖的指令碼,設定符合 Google 建議且符合自身安全需求的環境。您可以進一步利用其他藍圖來建構藍圖,或是自行設計自動化動作。Google Cloud Architecture Center 提供其他藍圖,可在企業基礎藍圖上實作。以下是這些藍圖的幾個範例:
- 在 Google Cloud上部署企業開發人員平台
- 使用 Cloud Run 部署安全的無伺服器架構
- 在企業中建構及部署生成式 AI 和機器學習模型
- 將資料從 Google Cloud 匯入安全的 BigQuery 資料倉儲
自動發布安全應用程式
這項最佳化建議與下列重點領域相關:應用程式安全性。
沒有自動化工具,很難部署、更新及修補複雜的應用程式環境,以符合一致的安全性要求。建議您為軟體開發生命週期 (SDLC) 建立自動化 CI/CD 管道。自動化 CI/CD 管道可協助您移除手動錯誤、提供標準化的開發意見回饋循環,並實現產品迭代作業的效率。持續推送軟體更新是 DORA 架構建議的最佳做法之一。
使用 CI/CD 管道自動化應用程式發布作業,有助於提早、快速且可靠地偵測及修正安全性錯誤。舉例來說,您可以在建立構件時自動掃描安全漏洞、縮小安全性審查範圍,並回溯至已知且安全的版本。您也可以為不同的環境 (例如開發、測試或實際工作環境) 定義政策,以便只部署經過驗證的構件。
為了協助您在 CI/CD 管道中自動發布應用程式,並嵌入安全性檢查, Google Cloud 提供多種工具,包括 Cloud Build、Cloud Deploy、Web Security Scanner 和 二進位授權。
如要建立驗證 SDLC 中多項安全性需求的程序,請使用 Google 定義的軟體構件供應鏈級別 (SLSA) 架構。SLSA 要求針對原始碼、建構程序和程式碼來源進行安全性檢查。許多這類要求都可以納入自動化 CI/CD 管道。如要瞭解 Google 如何在內部實施這些做法,請參閱 Google Cloud的變更方法。
部署應用程式時,務必遵循經過核准的流程
這項最佳化建議與下列重點領域相關:應用程式安全性。
如果攻擊者入侵您的 CI/CD 管道,整個應用程式堆疊都可能受到影響。為確保管道的安全,請在將程式碼部署至實際工作環境前,先強制執行既定的核准程序。
如果您使用 Google Kubernetes Engine (GKE)、GKE Enterprise 或 Cloud Run,可以使用二進位授權建立核准程序。二進位授權會將可設定的簽章附加至容器映像檔。這些簽章 (也稱為認證) 有助於驗證映像檔。在部署期間,二進位授權會使用這些認證來判斷程序是否已完成。舉例來說,您可以使用二進位授權執行下列操作:
- 確認特定建構系統或 CI 管道已建立容器映像檔。
- 驗證容器映像檔是否符合漏洞簽署政策。
- 驗證容器映像檔是否符合推送至下一個部署環境的條件,例如從開發環境推送至品質確保環境。
使用二進位授權,您可以強制執行目標平台上僅執行受信任的程式碼。
在應用程式部署前掃描已知的安全漏洞
這項最佳化建議與下列重點領域相關:應用程式安全性。
建議您使用自動化工具,在應用程式構件部署至實際環境前,持續對其執行漏洞掃描。
如果是容器化應用程式,請使用Artifact Analysis 自動執行容器映像檔的安全漏洞掃描作業。將新的映像檔上傳至 Artifact Registry 時,Artifact Analysis 會掃描這些映像檔。掃描作業會擷取容器中的系統套件相關資訊。初始掃描作業完成後,Artifact Analysis 會持續監控 Artifact Registry 中掃描映像檔的中繼資料,檢查是否有新的安全漏洞。當「Artifact Analysis」從安全漏洞來源收到全新和更新的安全漏洞資訊時,會執行以下操作:
- 更新掃描的圖片中繼資料,確保資料保持最新狀態。
- 為新註記建立新的安全漏洞例項。
- 刪除不再有效的安全漏洞例項。
監控應用程式程式碼是否有已知的安全漏洞
這項最佳化建議與下列重點領域相關:應用程式安全性。
使用自動化工具,持續監控應用程式程式碼是否有已知的漏洞,例如 OWASP 前 10 大漏洞。如要進一步瞭解支援 OWASP 前 10 名緩解技術的 Google Cloud 產品和功能,請參閱 OWASP 前 10 名緩解選項 Google Cloud。
使用 Web Security Scanner 找出 App Engine、Compute Engine 和 GKE 網路應用程式中的安全漏洞。掃描器會檢索您的應用程式,追蹤起始網址涵蓋的所有連結,並嘗試盡可能執行大量的使用者輸入內容和事件處理常式。這項工具會自動掃描及偵測常見的安全漏洞,包括跨網站指令碼攻擊、程式碼植入、混合式內容,以及版本過舊或不安全的程式庫。Web Security Scanner 可及早找出這類安全漏洞,且不會因為誤判而干擾您。
此外,如果您使用 GKE Enterprise 管理 Kubernetes 叢集機群,安全防護機制資訊主頁會顯示具體可行的建議,協助您改善機群的安全防護機制。