本文說明保護部署作業的最佳做法。
建立及強制執行部署政策
為保護執行階段環境,請定義部署條件政策,並在部署前後驗證政策是否符合規定。定義政策時,只允許預先定義的認證者簽署程式碼,有助於控管部署作業,只部署來自信任來源的程式碼。
部署條件的例子包括:
- 沒有嚴重程度高於中等的已知安全漏洞
- 原始碼來自受信任的來源存放區
- 由可信賴的建構服務執行建構作業
- 您部署的建構構件來自受信任的構件存放區
生成中繼資料
如要驗證這些需求,您必須提供建構構件的中繼資料。
- 建構來源
建構來源是一組可驗證的建構資料,例如建構映像檔的摘要、輸入來源位置、建構工具鍊和建構時長。SLSA 是評估安全狀態的架構,提供出處模型和出處規定。出處是架構中的一項必要類別,每項必要條件都與 SLSA 層級相關聯,因此您可以逐步實作緩解措施。
- 如要取得 SLSA 第 1 級保證,必須提供出處。
- 如要達到 SLSA 2 級保證,必須產生來源,且消費者必須能夠驗證來源的真實性和完整性。
- SLSA 層級 3 和 4 對來源簽署和來源資料詳細程度有更嚴格的要求。
部分建構服務會產生建構出處中繼資料。
- 在 Cloud Build 中, Google Cloud系統會為支援 SLSA 第 3 級建構作業的容器映像檔產生並簽署建構來源資訊。
- SLSA 架構提供 GitHub 來源工具。這些工具會在 GitHub 上產生不可偽造的 SLSA 來源資訊,符合 SLSA 第 3 級的建構和來源資訊類別要求。
- 開放原始碼 sigstore 專案包含用於簽署容器的 cosign 工具。
- 安全漏洞
安全漏洞掃描軟體會檢查原始碼和建構構件,找出已知的安全漏洞。Artifact Analysis 可以自動掃描推送到 Artifact Registry 的容器映像檔,檢查是否有安全漏洞。如要在儲存構件前檢查安全漏洞,可以在本機開發環境或 CI/CD 管道 (例如 Cloud Build 建構步驟) 中使用 On-Demand Scanning API。
設定政策執行
取得可部署成果的中繼資料後,您需要工具來強制執行政策。
在 Google Cloud中,您可以透過二進位授權為部署作業設定政策。二進位授權會針對嘗試部署至支援容器的平台強制執行政策。此外,它還能持續驗證在 GKE、Cloud Run 和 GKE Enterprise 上執行的工作負載政策。
部署前檢查可以封鎖不在豁免映像檔清單中的所有映像檔,確保只會從信任的登錄檔部署信任的映像檔。政策也可以要求認證,也就是數位文件,表示映像檔已透過特定必要程序成功建構。舉例來說,認證可以指出圖片是否:
- 由 Cloud Build 建構。
- 不含嚴重程度高於指定程度的安全漏洞。 如果特定安全漏洞不適用於您的應用程式,可以將其加入許可清單。
持續驗證可將政策驗證擴展至部署後環境。啟用後,二進位授權會在整個 Pod 生命週期提供驗證,方法是定期在 Cloud Logging 中記錄政策遵循情形。這項功能在各種情況下都非常實用。 舉例來說,如果您在部署容器後變更政策,持續驗證記錄會記錄違反更新政策的 Pod。此外,如果 Pod 是透過模擬執行或緊急存取部署,系統也會記錄違規政策。
使用設有門檻的部署服務
您可以使用獨立的 CI/CD 服務,或與程序自動化系統整合的 CI/CD 服務,在部署程序的特定時間點核准或拒絕部署。閘道式部署可防止未經授權的使用者變更應用程式環境。這類角色可進一步監督部署程序,並更清楚瞭解核准情形。
Google CloudCloud Deploy 是全代管式服務,可將工作負載部署至 Google Kubernetes Engine。控管式部署功能可讓使用者指定是否需要核准,才能將版本升級至目標。
監控工作負載
工作負載是指在容器型平台 (例如 GKE 和 Cloud Run) 上執行的應用程式。您部署的工作負載最好採用強化設定,以限制攻擊面。
手動大規模檢查叢集中的工作負載,確認是否有設定問題可能很困難。 Google Cloud 會在 Cloud Run 和 GKE 中提供資訊主頁,方便您查看工作負載的安全性深入分析資訊。
GKE 安全防護機制資訊主頁會根據 Google 的建議,提供強化叢集安全防護機制的指引。這項功能包括自動掃描工作負載設定,檢查所有工作負載中已知的設定問題。GKE 會根據相關業界最佳做法 (例如 Pod 安全性標準中的政策),檢查每個已部署的工作負載。GKE 會評估發現的問題嚴重程度,並傳回可執行的建議和記錄。您可以使用 Cloud Logging 取得可稽核的疑慮追蹤記錄,以便改善報表和觀測能力。如需在 GKE 安全防護機制資訊主頁中查看安全性深入分析資訊的操作說明,請參閱「部署至 GKE 並查看安全性深入分析資訊」。
Cloud Run 包含安全面板,可顯示軟體供應鏈安全洞察資訊,例如 SLSA 建構層級合規資訊、建構出處,以及執行中服務中發現的安全漏洞。如要瞭解如何在 Cloud Run 安全性深入分析面板中查看安全性深入分析資訊,請參閱「部署至 Cloud Run 並查看安全性深入分析資訊」。
Google Cloud 還提供其他服務和功能,在軟體開發生命週期中提升安全防護機制。詳情請參閱軟體供應鏈總覽。
後續步驟
- 瞭解保護原始碼的最佳做法。
- 瞭解保護依附元件的最佳做法。
- 瞭解保護建構作業的最佳做法。