Google Cloud Well-Architected Framework 安全性支柱的這項原則提供相關建議,協助您在雲端應用程式、服務和平台的設計中,納入強大的安全功能、控制項和做法。從發想概念到實際運作,如果將安全性納入設計流程的每個階段,就能更有效地防護安全。
原則總覽
如「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 策劃的 Container-Optimized OS 映像檔。Google 會定期修補及更新這些映像檔。
如果您使用 GKE,建議啟用節點自動升級,讓 Google 為叢集節點套用最新修補程式。Google 會管理 GKE 控制層,並自動更新及修補。如要進一步縮小容器的攻擊面,可以使用無發行版本映像檔。Distroless 映像檔非常適合用於安全防護要求嚴格的應用程式、微服務,以及需要盡量縮小映像檔大小和攻擊面的情況。
對於機密工作負載,請使用 Shielded VM,防止在 VM 啟動週期載入惡意程式碼。受防護的 VM 執行個體提供啟動安全防護、監控完整性,並使用虛擬信任平台模組 (vTPM)。
為確保 SSH 存取安全,OS 登入功能可讓員工使用身分與存取權管理 (IAM) 權限連線至 VM,而不必依賴 SSH 金鑰。因此,您不需要管理整個機構的 SSH 金鑰。OS 登入會將管理員的存取權與員工生命週期綁定,因此當員工變更角色或離開貴機構時,系統會連同帳戶一併撤銷存取權。OS 登入也支援 Google 雙重驗證,可進一步防範帳戶盜用攻擊。
在 GKE 中,應用程式執行個體會在 Docker 容器中執行。如要啟用定義的風險設定檔,並限制員工變更容器,請確保容器為無狀態且不可變。不可變更原則是指員工不得修改或以互動方式存取容器。如果必須變更容器,請建構新映像檔並重新部署。僅在特定偵錯情境中,啟用對基礎容器的 SSH 存取權。
如要確保環境中的設定安全無虞,您可以透過機構政策,對影響雲端資產行為的資源設定限制或防護機制。舉例來說,您可以定義下列機構政策,並在 Google Cloud 機構中全域套用,或在資料夾或專案層級選擇性套用:
- 停用 VM 的外部 IP 位址分配功能。
- 限制僅有特定地理位置才可建立資源。
- 停用服務帳戶或其金鑰的建立功能。
為靜態和傳輸中的資料加密
這項建議與下列重點領域相關:
- 基礎架構安全性
- 資料安全性
資料加密是保護私密資訊的基本控管措施,也是資料治理的重要環節。有效的資料保護策略包括存取控管、資料區隔和地理位置落地、稽核,以及根據需求仔細評估後實作的加密機制。
根據預設, Google Cloud Google 會為客戶存放的靜態資料加密,因此您不需採取任何動作。除了預設加密機制之外,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 總覽」。