PodSecurityPolicy(簡稱PSP)從Kubenetes 1.21版本開始被標記為棄用(deprecated)狀態,為此云容器引擎提供了基于OPA策略和gatekeeper準入控制器,擴展了相應的策略治理狀態統計和日志上報檢索等能力,同時內置了種類豐富的策略治理規則庫,在規則配置上也更加靈活簡單,幫助企業安全運維管理人員更好的使用策略治理相關能力。

操作步驟
安裝容器安全策略插件 cube-security
1、 選擇指定容器集群,在菜單欄【安全管理】中選擇【策略管理】。
2、 安裝cube-security插件,插件安裝成功后即可使用該功能。
查看集群當前策略治理狀態
對于安裝了策略治理相關組件的集群,您可根據以下操作查看集群當前策略治理狀態。
1、選擇指定容器集群,在菜單欄【安全管理】中選擇【策略管理】。
2、選擇【策略總覽】Tab頁即可查看集群當前策略治理狀態,包括:策略開啟總覽、近7天攔截和告警結果統計。
創建策略實例
您可根據以下操作在指定集群中創建策略實例。
1、選擇指定容器集群,在菜單欄【安全管理】中選擇【策略管理】。
2、選擇【我的策略】Tab頁單擊【創建策略實例】。
3、相關策略參數如下,配置完成后點擊【確定】即可。
| 參數 | 說明 |
|---|---|
| 策略類型 | - Infra:基礎設施層資源相關的策略類型。 - CIS-K8s:基于CIS等K8s合規規范定制的策略類型。 - PSP:替代Pod Security Policy(PSP)能力的策略類型。 - K8s-general:基于最佳安全實踐對K8s資源配置進行安全加固約束的通用策略類型。 |
| 實施動作 | - 攔截:違反策略規則約束的指定資源部署會被攔截。 - 告警:違反策略規則約束的指定資源仍舊可以部署,只會產生對應違規審計的告警日志。 |
| 策略名稱 | 根據選擇的策略類型,在策略名稱下拉列表中選擇需要部署的策略模板名稱。 |
| 參數配置 | - 如果參數配置輸入框中默認為空,說明規則不需要進行參數配置。 - 如果輸入框中包含需要配置的參數模板,則請參考策略參數說明按照指定格式配置參數。 |
查看策略列表和集群中已部署的策略實例
您可根據以下操作查看策略列表和集群中已部署的策略實例總數。
1、選擇指定容器集群,在菜單欄【安全管理】中選擇【策略管理】。
2、選擇【我的策略】Tab頁查看集群所有已部署的策略以及策略對應的策略實例個數。
修改策略實例
您可根據以下操作修改指定集群已經部署的策略實例。
1、選擇指定容器集群,在菜單欄【安全管理】中選擇【策略管理】。
2、在【我的策略】Tab頁中選擇目標策略,單擊【編輯】在跳出的彈窗中修改相關配置即可。
刪除策略實例
您可根據以下操作修改指定集群中的策略實例。
1、選擇指定容器集群,在菜單欄【安全管理】中選擇【策略管理】。
2、在【我的策略】Tab頁中選擇目標策略,單擊【刪除】即可刪除該策略在集群中部署的所有實例。
策略參數說明
Category Policy Description Severit Category CCSENoEnvVarSecrets 限制Secret以secretKeyRef的形式掛載到應用Pod環境變量中。 medium CCSEPodsRequireSecurityContext 限制Pod中所有容器必須配置securitycontext字段。 low CCSERestrictNamespaces 限制資源部署在集群指定的命名空間中。 low CCSERestrictRoleBindings 限制指定命名空間下的rolebinding使用指定范圍內的Role或Clusterrole。 medium Infra CCSEBlockProcessNamespaceSharing 限制在集群指定范圍部署的應用中使用shareProcessNamespace。 high CCSEEmptyDirHasSizeLimit 要求emptyDir類型的Volume必須指定sizelimit。 low CCSELocalStorageRequireSafeToEvict 限制部署在集群指定范圍內的Pod必須具有 “cluster-autoscaler.kubernetes.io/safe-to-evict”: “true” 注釋標簽。默認情況下autoscaler在集群自動伸縮時不會驅逐使用HostPath或EmptyDir卷的Pod。為了允許驅逐這些Pod,必須在Pod上添加該注釋標簽。 low CCSESASMaliciousImage Requires container images is safe and scanned by SAS. high CCSEOSSStorageLocationConstraint Restricts location of oss storage in cluster. low K8s-general CCSEAllowedRepos 限制在集群指定范圍部署的應用Pod中拉取白名單列表外的鏡像。 high CCSEBlockAutoinjectServiceEnv 要求在應用中配置enableServiceLinks: false防止在Pod環境變量中透出服務IP。 low CCSEBlockAutomountToken 要求在應用中設置automountServiceAccountToken: ? false字段防止自動掛載serviceaccount。 high CCSEBlockEphemeralContainer 限制在集群指定范圍的應用Pod中啟動臨時容器。 medium CCSEBlockLoadBalancer 限制在集群指定范圍內部署LoadBalancer類型的Service。 high CCSEBlockNodePort 限制在集群指定范圍內使用NodePort類型的Service。 high CCSEContainerLimits 要求集群指定范圍的應用Pod配置資源limits。 low CCSEExternalIPs 限制在集群指定范圍內的Services實例使用白名單范圍之外的externalIPs。 high CCSEImageDigests 限制在集群指定范圍內部署不符合digest格式的鏡像。 low CCSERequiredLabels 限制在集群指定范圍內部署沒有指定范式label標簽的應用。 low CCSERequiredProbes 限制在集群指定范圍內部署的Pod配置指定類型的readinessProbe和livenessProbe。 medium CCSECheckNginxPath 限制在Ingress實例的spec.rules[].http.paths[].path字段中使用危險配置。Ingress-nginx ? 1.2.1以下版本建議開啟該策略。 high CCSECheckNginxAnnotation 限制在Ingress實例的metadata.annotations字段中使用危險配置。Ingress-nginx ? 1.2.1以下版本建議開啟該策略。 high