本頁面說明 Kubernetes 安全性狀態掃描,這是安全性狀態資訊主頁的功能,可協助您主動找出並解決 Google Kubernetes Engine (GKE) 叢集中的安全漏洞。本頁面說明如何稽核工作負載設定,以及顯示安全性公告,以便在 GKE 中找出並降低安全風險。
本頁適用於監控叢集安全問題的安全性專家。如要進一步瞭解Google Cloud 內容中提及的常見角色和範例工作,請參閱「常見的 GKE Enterprise 使用者角色和工作」。
如要啟用及使用 Kubernetes 安全性狀態掃描功能,請參閱「自動稽核工作負載的設定問題」一文。
Kubernetes 安全防護機制掃描提供下列功能:
定價
在 GKE 中免費提供。
新增至 Cloud Logging 的項目須遵守 Cloud Logging 定價。
工作負載設定稽核簡介
您在 GKE 上部署的工作負載應採用強化設定,以限制攻擊面。手動檢查叢集中的工作負載是否有設定問題,在規模較大的情況下可能很困難。您可以使用安全防護機制資訊主頁,自動稽核多個叢集中所有執行中工作負載的設定,並取得可執行的評分結果和具體建議,藉此提升安全防護機制。
工作負載設定稽核會根據Pod 安全性標準中的部分政策,檢查每個已部署的工作負載。工作負載設定稽核作業會在 Google 的基礎架構上進行,不會使用節點上的運算資源。
工作負載設定稽核的優點
- 自動偵測所有工作負載中已知的設定問題。
- 取得可做為行動依據的建議,強化安全防護機制。
- 使用 Google Cloud 控制台,概略瞭解設定問題。
- 使用記錄功能取得可稽核的疑慮追蹤記錄,以便改善報表和可觀測性。
工作負載設定稽核的運作方式
針對每個符合資格的已部署工作負載,GKE 會持續掃描工作負載的規格,並將欄位和值與基礎安全政策中定義的控制項進行比較。舉例來說,含有 spec.containers.securityContext.privileged=true
的 Pod 會違反基準 Pod 安全性標準,而 spec.securityContext.runAsNonRoot
欄位設為 false
的 Pod 則會違反受限制標準。如要查看 GKE 檢查的安全政策清單,請參閱「工作負載設定稽核會檢查哪些項目?」一文。
掃描並發現問題後,GKE 會根據內建的安全強化措施,評估發現的設定問題嚴重程度。GKE 會指派嚴重程度評等,協助您判斷回應問題的速度。Google Cloud 控制台會顯示結果,以及建議您採取哪些行動來解決問題。GKE 也會將項目新增至 Cloud Logging,以供追蹤和稽核。
工作負載設定稽核會檢查哪些項目?
疑慮 | 欄位 | 接受的值 | 嚴重性 |
---|---|---|---|
主機命名空間 共用主機命名空間的 Pod 可讓 Pod 處理程序與主機處理程序相互通訊,並收集主機資訊,因此可能會導致容器跳脫。 |
|
|
高 |
特殊權限容器 特殊權限容器具備近乎毫無限制的主機存取權。這類容器會與主機共用命名空間,而且沒有控管群組、seccomp、AppArmor 和功能限制。 |
|
|
高 |
主機連接埠存取權 如果容器已得知主機通訊埠,可能會攔截使用該通訊埠的主機服務網路流量,或是略過網路存取權控管規則,例如 NetworkPolicy 中的規則。 |
|
|
高 |
非預設功能 指派給容器的功能可能會導致容器跳脫。 |
|
|
中 |
掛接主機路徑磁碟區
|
spec.volumes[*].hostPath |
未定義或空值 | 中 |
非預設 預設的 |
|
|
中 |
不安全的 sysctl 遮罩 Pod 可設為允許使用 |
spec.securityContext.sysctls[*].name |
|
中 |
以非根使用者身分執行 如果映像檔中的 |
|
true |
中 |
權限提升 容器可明確設為允許在執行時提升權限。這樣一來,在容器中建立的程序就能執行 set-user-id、set-group-id 或檔案功能執行檔,進而取得執行檔指定的權限。缺少預防性安全性控管機制會導致容器跳脫的風險提高。 |
|
false |
中 |
不受限的 AppArmor 設定檔 容器可明確設為不受 AppArmor 限制。 這樣可以確保容器不會套用任何 AppArmor 設定檔,因此不會受到這些設定檔的限制。停用預防性安全性控管機制會提高容器跳脫的風險。 |
metadata.annotations["container.apparmor.security.beta.kubernetes.io/*"] |
false |
低 |
此外,GKE 會檢查是否有任何 RBAC RoleBinding 或 ClusterRoleBinding 參照下列使用者或群組:
system:anonymous
system:authenticated
system:unauthenticated
如果存在任何參照這些使用者或群組的 RBAC 繫結,安全狀態資訊主頁就會顯示名為「已將 GKE 叢集存取權授予確實匿名的使用者」的發現項目,嚴重程度為「中」。這些使用者和群組實際上是匿名,不應在 RoleBinding 或 ClusterRoleBinding 中使用。詳情請參閱「避免預設角色和群組」。
關於安全性公告的顯示方式
如果 GKE 發現安全漏洞,我們會修補該漏洞,並發布相關的安全性公告。如要瞭解識別、修補和時間表,請參閱 GKE 安全性修補。
安全防護機制資訊主頁會顯示影響叢集、工作負載和標準模式節點集區的安全公告。這項功能是安全狀態資訊主頁的 Kubernetes 安全狀態功能之一,建立 Autopilot 或 Standard 叢集時會自動啟用。如要啟用 Kubernetes 安全性狀態掃描,請按照「自動稽核工作負載的設定問題」一文中的操作說明進行。
Google Cloud 控制台會顯示詳細資料,例如受影響的叢集、版本,以及建議升級的修補程式版本,以緩解安全漏洞。您只會看到叢集 Google Cloud 區域或地帶提供緩解措施的公告。
如要查看已註冊 Kubernetes 安全防護機制掃描的叢集公告,請前往安全防護機制資訊主頁:
影響您環境的任何可用公告都會顯示在「安全性公告」部分。