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