容器安全性
確保 GCP、GKE 或 Anthos 上的容器環境安全性。
總覽
容器化可讓開發團隊快速執行工作、有效率地部署軟體,並以前所未有的規模作業。由於企業建立的容器化工作負載逐漸增加,建構與部署生命週期的每個階段也必須整合安全性措施。瞭解如何在 GCP (無論是 Google Kubernetes Engine 或 Anthos) 上針對三大重要領域確保容器環境的安全性。
基礎架構安全性
具備基礎架構安全性,代表您的容器管理平台提供適當的安全性功能。Kubernetes 擁有多項安全性功能,可協助保護您的身分資訊、密鑰和網路;此外,Google Kubernetes Engine 採用 Cloud IAM、Cloud 稽核記錄和虛擬私人雲端等 GCP 原生功能,以及應用程式層密碼加密和 Workload Identity 等 GKE 特定功能,可為您的工作負載提供最完善的 Google 安全防護。
軟體供應鏈
確保軟體供應鏈的安全性,就能確定容器映像檔是安全的,可進行部署。這樣一來,您就能確定容器映像檔沒有安全漏洞,而且您建立的映像檔在部署之前也未遭到修改。
執行階段安全性
執行階段安全性功能可協助您在實際工作環境找出執行惡意動作的容器,並採取必要處置來保護您的工作負載。
執行容器即可使用完全不同的安全性模型
更輕鬆地管理修補程式及維持不變性
一般來說,容器無法變更,因此您必須部署新的映像檔才能加以變更。只要定期重新建立映像檔,即可簡化修補程式管理流程,在下次部署容器時直接納入修補程式。此外,您還可以透過定期的映像檔安全性審查,完整瞭解環境的安全程度。
減少攻擊風險
容器執行所需的主機 OS 比 VM 所需的小很多,因為許多功能已經封裝在應用程式當中。這樣盡量簡化主機 OS 的做法,可減少工作負載受到攻擊的機會。
隔離資源與工作負載
容器可讓您輕鬆透過 cgroup 和命名空間,將儲存空間磁碟區等資源隔離到特定作業流程中。透過 GKE Sandbox 等技術,您就能在邏輯上將工作負載隔離到子 VM 的沙箱中,與其他應用程式區隔。

基礎架構安全性
容器基礎架構安全性的範疇,就是確保開發人員能夠取得安全建構容器化服務所需的工具。這類功能一般都已內建在 Kubernetes 等容器自動化調度管理服務中。如果您使用 Google Kubernetes Engine,系統原生便會顯示這項功能以及其他 Google Cloud 功能。
身分識別與授權
您可以在 Google Kubernetes Engine 中使用 Cloud IAM 管理專案存取權,並使用角色型存取權控管 (RBAC) 功能管理叢集和命名空間的存取權。
稽核記錄
在 Kubernetes 中,系統會自動擷取 API 稽核記錄。在 Google Kubernetes Engine 中,Cloud 稽核記錄功能會自動為您記錄 API 稽核記錄。
網路
在 Google Kubernetes Engine 中建立網路政策,藉此管理叢集中的 pod 對 pod 通訊。您可以針對私人 IP 使用私人叢集,並將 Google Kubernetes Engine 資源分配至共用虛擬私人雲端。
法規遵循
Google Kubernetes Engine 通過多項法規遵循認證,包括 ISO 27001、ISO 27017、ISO 27108、《健康保險流通與責任法案》規定和 PCI-DSS。
極簡型主機 OS
Google Kubernetes Engine 預設採用 Container-Optimized OS (COS),COS 是專門針對執行容器而打造並最佳化的 OS。COS 由 Google 進行維護,且採用開放原始碼的形式。
自動升級的元件
Google Kubernetes Engine 會自動將主要執行個體修補到最新的 Kubernetes 版本;此外,您可以針對節點使用節點自動更新功能,為您的節點套用最新的修補程式,藉此確保安全防護措施與時俱進。
客戶自行管理的加密金鑰
受管制產業的使用者可能必須掌控用於加密 GKE 中儲存之資料的金鑰。透過客戶自行管理加密金鑰功能,您將能從 Cloud KMS 中挑選金鑰來保護您的 GKE 永久磁牒。
應用程式層 Secret 加密
根據預設,Kubernetes Secret 會以明文格式儲存,然後 GKE 會對這些在磁碟上的 Secret 加密,並監控這項加密資料,以供內部存取。然而,這麼做可能不足以保護這些 Secret 免受執行環境中惡意應用程式的攻擊。因此應用程式層 Secret 加密功能會使用您在 Cloud KMS 中管理的金鑰,以信封式加密技術保護 Secret。
Workload Identity
您的容器化應用程式可能必須連線至資料庫等其他服務才能執行指派的工作。為了順利執行工作,您的應用程式首先必須對這些服務進行驗證。Workload Identity 會遵循應用程式驗證的最低權限原則,透過 Google 代管的服務帳戶共用憑證,以便進行驗證。
代管的 SSL 憑證
使用 GKE 時,您必須將 HTTPS 負載平衡器與 SSL 憑證建立關聯。您可以自行取得、管理及更新這些憑證,或者讓 Google 自動為您打理,省去您自行更新或忘記更新的麻煩。

軟體供應鏈
軟體供應鏈可讓您掌握環境中的所有部署項目 (包括程式碼、映像檔和部署作業),方便您控管自有應用程式。這些功能一般都已內建於您的持續整合/持續推送軟體更新管道和容器登錄檔 (例如 Google Container Registry),並可在您將容器正式部署到實際工作環境前進行檢查。
安全的代管基本映像檔
Google Container Registry 提供 Debian 和 Ubuntu 基本映像檔,Google 會定期進行修補和測試作業來維護這兩種映像檔。系統已為這些由 Google 代管的映像檔安裝最近從上游發布的修補程式,因此您可以輕鬆將映像檔保持在最新狀態,無須從不明的存放區執行提取或自行維護映像檔。
部署政策
在 Google Kubernetes Engine 中使用二進位授權,根據映像檔的認證來限制您在環境中的部署作業。在進行部署之前,您可以要求映像檔必須符合您以認證或簽名的形式定義的需求條件。這類需求條件可能包括掃描映像檔來確認是否存在安全漏洞,或通過品質確保團隊的驗證。
定期更新版本
您可以定期重建及重新部署容器,取得作業環境中逐步推出的最新修補程式,以享有完善的安全性和功能。

執行階段安全性
容器執行階段安全性的範疇,就是確保您的安全性問題應變團隊能針對作業環境中執行的容器偵測安全性威脅,並採取相關處置。這類功能一般都已內建在您的安全性作業工具中。
監控
Google Kubernetes Engine 已與 Cloud Logging 相互整合,因此可以提供簡便的記錄檔分析功能。另外,您也能將安全性事件寫入 Cloud Security Command Center (Cloud SCC)。
異常活動偵測功能
在 Security Command Center 中運用 Google 合作夥伴提供的服務來監控攻擊活動及查看結果,合作夥伴包括 Aqua Security、Capsule8、StackRox、Sysdig Secure 和 Twistlock 等。
強制執行安全性政策
PodSecurityPolicy 是開放原始碼 Kubernetes 的一項功能,可協助您對 pod 的執行方式設定限制 (例如強制執行 AppArmor 和 seccomp 等限制),藉此建立容器的防護機制。
隔離
這項功能可避免惡意容器影響其他容器。GKE Sandbox 會透過使用者空間核心攔截及處理系統呼叫,並為您的容器加上深入防禦機制,因此您不需要變更開發人員與應用程式的互動方式。GKE Sandbox 是 Google 建立的開放原始碼專案,以 gVisor 為基礎。
資源
進一步瞭解容器安全性的相關資訊。