Google Cloud 良好架構架構安全性支柱中的這項原則提供建議,說明如何在雲端應用程式、服務和平台的設計中納入穩健的安全性功能、控制項和做法。從構思到營運,如果在設計流程的每個階段都納入安全性機制,安全性就會更有效。
原則總覽
如Google 致力於以安全為優先考量所設計的架構概述所述,預設安全性和安全設計這兩個詞彙經常互換使用,但它們代表的是不同的建構安全系統方法。兩種方法都旨在盡可能減少安全漏洞並強化安全性,但範圍和實作方式不同:
- 預設安全性:專注於確保系統的預設設定設為安全模式,盡量減少使用者或管理員需要採取行動來保護系統的情況。這項做法旨在為所有使用者提供基本安全性。
- 融入安全考量的設計:強調在整個系統開發生命週期中,主動納入安全考量。這種做法是指及早預測潛在威脅和安全漏洞,並做出可降低風險的設計決策。這個方法包括採用安全的程式碼編寫做法、進行安全性審查,以及在整個設計過程中嵌入安全性。融入安全考量的設計方法是一種總體理念,可引導開發程序,並有助於確保安全性不是事後才想到的,而是系統設計中不可或缺的一部分。
建議
如要為雲端工作負載實作安全設計原則,請考慮下列各節中的建議:
選擇有助於保護工作負載的系統元件
這項建議與所有重點領域相關。
要有效防範安全威脅,您必須選擇可靠的系統元件 (包括硬體和軟體元件),組成平台、解決方案或服務。為了減少安全性攻擊面,並限制潛在損害,您也必須仔細考量這些元件的部署模式及其設定。
在應用程式程式碼中,建議您使用簡單、安全且可靠的程式庫、抽象化和應用程式架構,以消除各類安全漏洞。如要掃描軟體程式庫中的安全漏洞,您可以使用第三方工具。您也可以使用 Assured Open Source Software,透過使用 Google 使用的開放原始碼軟體 (OSS) 套件,降低軟體供應鏈的風險。
基礎架構必須使用可支援安全運作,且符合安全性需求和風險接受程度的網路、儲存空間和運算選項。無論是面向網際網路還是內部工作負載,基礎架構安全性都非常重要。
如要瞭解支援這項建議的其他 Google 解決方案,請參閱「實施左移安全性」。
建構多層式安全防護機制
這項最佳化建議與下列重點領域相關:
- AI 和機器學習安全性
- 基礎架構安全性
- 身分與存取權管理
- 資料安全性
建議您採用深度防禦機制,在應用程式和基礎架構堆疊的每個層級實作安全措施。
使用平台各個元件的安全性功能。如要限制存取權限,並在發生安全事件時找出潛在影響範圍 (也就是爆炸半徑),請按照下列步驟操作:
- 盡可能簡化系統設計,以便提供彈性。
- 記錄每個元件的安全性要求。
- 納入完善的安全機制,以滿足復原和復原需求。
設計安全層時,請進行風險評估,確定您需要哪些安全性功能才能滿足內部安全需求和外部監管需求。建議您採用業界標準的風險評估架構,該架構適用於雲端環境,且與您的監管需求相關。舉例來說,雲端安全聯盟 (CSA) 提供雲端控制矩陣 (CCM)。風險評估會提供風險目錄和相應的安全性控管措施,協助您降低風險。
進行風險評估時,請記得您與雲端服務供應商有共同責任安排。因此,雲端環境中的風險與內部部署環境中的風險不同。舉例來說,在內部部署環境中,您需要降低硬體堆疊的安全漏洞。相反地,在雲端環境中,雲端供應商會承擔這些風險。此外,請注意,不同雲端服務供應商的 IaaS、PaaS 和 SaaS 服務,共用責任的範圍各有不同。
找出潛在風險後,您必須設計並建立緩解計畫,其中應使用技術、管理和營運控管,以及合約保護和第三方認證。此外,威脅模擬方法 (例如 OWASP 應用程式威脅模擬方法) 有助於您找出潛在的缺口,並建議如何解決這些缺口。
使用經過強化且經過認證的基礎架構和服務
這項最佳化建議與所有重點領域相關。
成熟的安全性計畫可因應安全性公告中所述,減輕新安全漏洞的影響。安全性方案也應提供因應措施,以修正現有部署作業中的安全漏洞,並保護您的 VM 和容器映像檔。您可以使用與映像檔 OS 和應用程式相關的強化指南,以及 Center of Internet Security (CIS) 提供的基準測試。
如果您為 Compute Engine VM 使用自訂映像檔,就必須自行修補映像檔。或者,您可以使用 Google 提供的精選 OS 映像檔,這些映像檔會定期修補。如要在 Compute Engine VM 上執行容器,請使用 Google 精選的容器最佳化 OS 映像檔。Google 會定期修補及更新這些映像檔。
如果您使用 GKE,建議您啟用節點自動升級功能,讓 Google 使用最新的修補程式更新叢集節點。Google 會管理 GKE 控制層,並自動更新及修補。如要進一步減少容器的攻擊面,您可以使用distroless 映像檔。Distroless 映像檔非常適合安全性敏感的應用程式、微服務,以及需要盡量縮小映像檔大小和攻擊面的情況。
針對敏感工作負載,請使用遮罩式 VM,可防止在 VM 啟動週期中載入惡意程式碼。受防護的 VM 執行個體可提供啟動安全性、監控完整性,並使用虛擬信任平台模組 (vTPM)。
為確保 SSH 存取權安全無虞,OS 登入可讓員工使用身分與存取權管理 (IAM) 權限做為可信來源,連線至 VM,而非仰賴安全殼層金鑰。因此,您不需要管理整個機構的 SSH 金鑰。OS Login 會將管理員的存取權與其員工生命週期綁定,因此當員工變更角色或離開貴機構時,系統會撤銷其帳戶的存取權。OS 登入也支援 Google 雙重驗證,可為帳戶多添一層安全防護,防止帳戶遭到盜用。
在 GKE 中,應用程式執行個體會在 Docker 容器中執行。如要啟用定義的風險狀況,並限制員工對容器進行變更,請確保容器為無狀態且不可變。不變性原則是指您的員工不會修改容器或以互動方式存取容器。如果必須變更容器,請建構新的映像檔,然後重新部署該映像檔。僅在特定偵錯情境中啟用 SSH 對基礎容器的存取權。
為確保整個環境的設定全都安全無虞,您可以使用機構政策,針對影響雲端資產行為的資源設定限制或防護機制。舉例來說,您可以定義下列機構政策,並在 Google Cloud 機構中全域套用這些政策,或是在資料夾或專案層級有選擇地套用:
- 停用 VM 的外部 IP 位址分配功能。
- 限制資源建立作業僅限於特定地理區域。
- 停用服務帳戶或相關金鑰的建立功能。
為靜態和傳輸中的資料加密
這項最佳化建議與下列重點領域相關:
- 基礎架構安全性
- 資料安全性
資料加密是保護機密資訊的基本控管機制,也是資料治理的重要一環。有效的資料保護策略包括存取權控管、資料區隔和地理位置落地、稽核,以及根據仔細評估的必要條件實施加密。
根據預設, Google Cloud會為儲存在靜態資料庫中的客戶資料加密,您不必採取任何行動。除了預設加密功能之外,Google Cloud 還提供信封加密和加密金鑰管理選項。無論您是要選擇儲存、運算或大數據工作負載的金鑰,都必須找出最符合金鑰產生、儲存和輪替作業需求的解決方案。舉例來說,您可以在 Cloud Key Management Service (Cloud KMS) 中建立客戶管理加密金鑰 (CMEK)。CMEK 可以是軟體或HSM 保護,以符合法規或法規遵循規定,例如需要定期輪替加密金鑰。Cloud KMS Autokey 可讓您自動佈建及指派 CMEK。此外,您也可以使用 Cloud External Key Manager (Cloud EKM),將來自第三方金鑰管理系統的金鑰帶入系統。
強烈建議您在傳輸期間加密資料。資料移出 Google 或 Google 代理單位控管的實體界限時,Google 會在一或多個網路層加密及驗證傳輸中的資料。虛擬私有雲網路和對等互連虛擬私有雲網路中的所有 VM 對 VM 流量都會經過加密。您可以使用 MACsec 加密透過 Cloud Interconnect 連線的流量。IPsec 會為透過 Cloud VPN 連線的流量提供加密功能。您可以使用安全性功能,例如 Apigee 中的 TLS 和 mTLS 設定,以及用於容器化應用程式的 Cloud Service Mesh,保護雲端中的應用程式對應用程式流量。
根據預設, Google Cloud 會為網路上靜態和傳輸中的資料加密。不過,資料在記憶體中使用時,預設不會加密。如果貴機構會處理機密資料,就必須減輕任何威脅,以免破壞應用程式或系統記憶體中資料的機密性和完整性。如要降低這些威脅,您可以使用機密運算,為運算工作負載提供可信任的執行環境。詳情請參閱機密 VM 總覽。