實作提前確保安全性

Last reviewed 2025-02-05 UTC

Google Cloud Well-Architected Framework 安全性支柱的這項原則可協助您找出實用的控制項,並在軟體開發生命週期的早期階段導入,以提升安全防護機制。並提供建議,協助您導入預防性安全防護機制和部署後安全控制措施。

原則總覽

提早測試安全性是指在軟體開發生命週期的早期階段,就採用安全性做法。這項原則的目標如下:

  • 在系統變更前避免安全缺陷。導入預防性安全防護機制,並採用基礎架構即程式碼 (IaC)、政策即程式碼,以及 CI/CD pipeline 中的安全檢查等做法。您也可以使用其他平台專屬功能,例如機構組織政策服務強化型 GKE 叢集 Google Cloud。
  • 在提交任何系統變更後,及早、快速且可靠地偵測及修正安全性錯誤。採用程式碼審查、部署後安全漏洞掃描和安全性測試等做法。

「實作安全設計」和「左移安全」原則相關,但適用範圍不同。安全設計原則可協助您避免基本設計瑕疵,否則就必須重新建構整個系統架構。舉例來說,威脅模型化練習顯示,目前的設計不包含授權政策,因此所有使用者都具有相同的存取層級。左移安全防護可協助您在套用變更前,避免實作缺陷 (錯誤和設定錯誤),並在部署後快速可靠地修正問題。

建議

如要為雲端工作負載實作「左移」安全原則,請參考下列各節的建議:

採用預防性安全控管機制

這項建議與下列重點領域相關:

  • 身分與存取權管理
  • 雲端管理、風險與法規遵循

預防性安全控管機制對於維持雲端環境的強大安全防護機制至關重要。這些控制項可協助您主動降低風險。您可以防止設定錯誤和未經授權存取資源,讓開發人員有效率地工作,並確保符合產業標準和內部政策。

使用基礎架構即程式碼 (IaC) 實作預防性安全控管機制,效果會更顯著。透過 IaC,預防性安全性控制項可在部署變更前,對基礎架構程式碼進行更多自訂檢查。搭配自動化功能使用時,預防性安全控制措施可做為持續整合/持續推送軟體更新管道自動檢查的一部分執行。

下列產品和 Google Cloud 功能可協助您在環境中導入預防性控制措施:

您可以透過 IAM 授權「哪些人」可以根據權限對特定資源執行動作。詳情請參閱「使用 IAM 控管機構資源的存取權」一文。

機構政策服務可讓您針對資源設定限制,指定資源的設定方式。舉例來說,您可以使用機構政策執行下列操作:

除了使用機構政策,您也可以透過下列方法限制資源存取權:

  • 搭配 IAM 使用標記: 將標記指派給一組資源,然後為標記本身設定存取權定義,不必為每個資源定義存取權。
  • IAM 條件: 依據屬性為資源定義條件式存取控管機制。
  • 縱深防禦:使用 VPC Service Controls 進一步限制資源存取權。

如要進一步瞭解資源管理,請參閱「為登陸區決定資源階層」。 Google Cloud

自動佈建及管理雲端資源

這項建議與下列重點領域相關:

  • 應用程式安全防護
  • 雲端管理、風險與法規遵循

相較於命令式指令碼,採用宣告式 IaC 時,自動佈建及管理雲端資源和工作負載的效率更高。IaC 本身並非安全工具或做法,但有助於提升平台安全性。採用 IaC 後,您就能建立可重複使用的基礎架構,並為營運團隊提供已知的良好狀態。IaC 也能提高回溯、稽核變更和疑難排解的效率。

結合 CI/CD 管道和自動化功能後,IaC 還能讓您採用程式碼即政策等做法,並搭配 OPA 等工具。您可以稽核一段時間內的基礎架構變更,並在部署變更前,對基礎架構程式碼執行自動檢查。

如要自動部署基礎架構,可以使用 Config Controller、Terraform、Jenkins 和 Cloud Build 等工具。為協助您使用 IaC 和自動化功能建構安全的應用程式環境,Google Cloud 提供企業基礎藍圖。這項藍圖是 Google 的具體設計,遵循所有建議做法和設定。藍圖提供逐步操作說明,引導您使用 Terraform 和 Cloud Build 設定及部署 Google Cloud 拓撲。

您可以修改企業基礎藍圖的指令碼,設定符合 Google 建議且滿足自身安全需求的環境。您可以運用其他藍圖進一步建構藍圖,或設計自己的自動化程序。Google Cloud 架構中心提供其他藍圖,可實作於企業基礎藍圖之上。以下是這類藍圖的幾個範例:

自動發布安全應用程式

這項建議與下列重點領域相關:應用程式安全性。

如果沒有自動化工具,要部署、更新及修補複雜的應用程式環境,以符合一致的安全性需求,可能會相當困難。建議您為軟體開發生命週期 (SDLC) 建構自動化 CI/CD 管道。自動化 CI/CD 管道可協助您消除人為錯誤、提供標準化開發意見回饋迴路,並有效率地進行產品疊代。持續推送軟體更新是 DORA 架構建議的最佳做法之一。

使用 CI/CD 管道自動發布應用程式,有助於及早、快速且可靠地偵測及修正安全性錯誤。舉例來說,您可以在建立構件時自動掃描安全漏洞、縮小安全審查範圍,以及回復至已知安全版本。您也可以針對不同的環境 (例如開發、測試或實際工作環境) 定義政策,確保只有通過驗證的構件會部署到環境中。

為協助您自動發布應用程式,並在 CI/CD 管道中嵌入安全性檢查, Google Cloud 提供多種工具,包括 Cloud BuildCloud DeployWeb Security ScannerBinary Authorization

如要建立驗證 SDLC 中多項安全規定的程序,請使用 Google 定義的軟體構件供應鏈級別 (SLSA) 架構。SLSA 要求對原始碼、建構程序和程式碼來源進行安全檢查。許多這類需求可納入自動化 CI/CD 管道。如要瞭解 Google 如何在內部套用這些做法,請參閱「Google Cloud的變更方法」。

部署應用程式時,務必遵循經過核准的流程

這項建議與下列重點領域相關:應用程式安全性。

如果攻擊者入侵 CI/CD 管道,整個應用程式堆疊都可能受到影響。為確保管道安全,您應強制執行既定的核准程序,再將程式碼部署至實際工作環境。

如果您使用 Google Kubernetes Engine (GKE)、GKE Enterprise 或 Cloud Run,可以透過二進位授權建立核准程序。二進位授權會將可設定的簽章附加至容器映像檔。這些簽章 (也稱為認證) 有助於驗證圖片。在部署時,二進位授權會使用這些認證來判斷程序是否已完成。舉例來說,您可以使用二進位授權執行下列操作:

  • 確認特定建構系統或 CI 管道是否已建立容器映像檔。
  • 驗證容器映像檔是否符合安全漏洞簽署政策。
  • 確認容器映像檔是否符合升級至下一個部署環境的條件,例如從開發環境升級至 QA 環境。

使用二進位授權,即可強制規定只有受信任的程式碼才能在目標平台上執行。

在部署應用程式前掃描已知的安全漏洞

這項建議與下列重點領域相關:應用程式安全性。

建議您使用自動化工具,持續掃描應用程式構件中的安全性漏洞,再部署至正式環境。

如果是容器化應用程式,請使用 Artifact Analysis 自動執行容器映像檔的安全漏洞掃描。將新的映像檔上傳至 Artifact Registry 時,Artifact Analysis 會掃描這些映像檔。掃描作業會擷取容器中系統套件的相關資訊。完成初始掃描後,Artifact Analysis 會持續監控 Artifact Registry 中已掃描映像檔的中繼資料,找出新的安全漏洞。當構件分析收到來自安全漏洞來源的全新和更新安全漏洞資訊時,會執行下列操作:

  • 更新掃描映像檔的中繼資料,確保內容符合時效性。
  • 為新註記建立新的安全漏洞例項。
  • 刪除不再有效的安全漏洞例項。

監控應用程式程式碼是否有已知的安全漏洞

這項建議與下列重點領域相關:應用程式安全性。

使用自動化工具持續監控應用程式程式碼,找出已知安全漏洞,例如 OWASP Top 10。如要進一步瞭解支援 OWASP 前 10 名緩解技術的產品和功能,請參閱「Google Cloud 上的 OWASP 前 10 名緩解選項 Google Cloud」。 Google Cloud

使用 Web Security Scanner 找出 App Engine、Compute Engine 和 GKE 網路應用程式中的安全漏洞。掃描器會檢索您的應用程式,追蹤起始網址涵蓋的所有連結,並嘗試盡可能執行大量的使用者輸入內容和事件處理常式。這項工具會自動掃描及偵測常見的安全漏洞,包括跨網站指令碼攻擊程式碼注入混合式內容,以及版本過舊或不安全的程式庫。Web Security Scanner 可及早找出這類安全漏洞,不會因為誤判而干擾您。

此外,如果您使用 GKE Enterprise 管理 Kubernetes 叢集機群,安全防護機制資訊主頁會顯示具體可行的建議,協助您提升機群的安全防護機制。