为了满足集群合规性要求与集群安全性,推荐您启用安全策略管理功能。功能内置了专为 Kubernetes 容器化场景精心设计的多维度安全策略规则,覆盖以下核心分类,包括Infra(基础设施层资源)、cis-k8s(CIS K8S 安全基准)、PSP(基于PodSecurityPolicy能力的拓展)和K8s-general(通用策略)维度。您只需登录控制台,进入「合规审计」页面,即可启用并灵活配置这些安全策略。
操作步骤
步骤一:启用合规审计功能
1. 登录分布式容器云平台管理控制台,在左侧导航栏选择合规审计
2. 点击「实例启用」按钮,选择需要启用的资源实例
启用合规审计功能,需要部署安装gatekeeper组件,需要占用集群内的资源。
注意
1.启用合规审计功能会在集群联邦/注册集群上安装相关插件,将会占用部分集群资源。
2.合规审计功能启用中,请不要在该集群联邦/注册集群上执行任何操作。
3. 注册集群加入容器舰队,其合规审计功能状态以容器舰队的为准。
4. 集群联邦与注册集群/容器舰队的合规审计功能互不影响,其作用面不一样。
步骤二:使用合规审计管理功能
操作入口:
1. 登录分布式容器云平台管理控制台,在左侧导航栏选择合规审计
2. 在启用列表中,选择需要管理的资源实例,进入详情页面后,根据页面提示进行安全策略管理
查看集群当前安全策略执行状态
你可以在策略总览页签,查看当前实例的策略管理状态
- 策略开启总览,包括高危和中危防护策略的总数和已开启数展示,以及建议开启的策略列表等。
- 最近的策略实施记录,包括不合规资源数、强制拦截事件数、告警事件数
创建并管理策略实例
点击「策略实例」页签,然后点击「创建策略实例」,在创建策略实例对话框配置相关参数。
需要注意的是,如果资源实例类型为舰队,策略实例会应用到该舰队的所有成员集群。
| 配置项 | 说明 |
|---|---|
| 策略类型 | 策略类型包括以下大类:
|
| 策略名称 | 根据选择的策略类型,在策略名称下拉列表中选择需要部署的策略模板名称。 |
| 实施动作 |
|
| 作用范围 | 选择策略实例实施在集群中哪些指定的命名空间。 |
| 参数配置 |
|
查看策略列表和实例中已部署的策略实例
登录分布式容器云平台管理控制台,在左侧导航栏选择合规审计,然后点击某个资源实例进入合规审计管理页面,点击「策略实例」页签。
如果策略实例数为空,表明该策略还未在集群中部署,可点击「创建策略实例」部署对应的策略实例。
策略规则说明
| Category | Policy | Description | Severity |
|---|---|---|---|
| cis-k8s | CCEOneNoEnvVarSecrets | 限制Secret以secretKeyRef的形式挂载到应用Pod环境变量中。 | medium |
| CCEOnePodsRequireSecurityContext | 限制Pod中所有容器必须配置securitycontext字段。 | low | |
| CCEOneRestrictNamespaces | 限制资源部署在集群指定的命名空间中。 | low | |
| CCEOneRestrictRoleBindings | 限制指定命名空间下的rolebinding使用指定范围内的Role或Clusterrole。 | medium | |
| Infra | CCEOneBlockProcessNamespaceSharing | 限制在集群指定范围部署的应用中使用shareProcessNamespace。 | high |
| CCEOneEmptyDirHasSizeLimit | 要求emptyDir类型的Volume必须指定sizelimit。 | low | |
| CCEOneLocalStorageRequireSafeToEvict | 限制部署在集群指定范围内的Pod必须具有 “cluster-autoscaler.kubernetes.io/safe-to-evict”: “true” 注释标签。默认情况下autoscaler在集群自动伸缩时不会驱逐使用HostPath或EmptyDir卷的Pod。为了允许驱逐这些Pod,必须在Pod上添加该注释标签。 | low | |
| CCEOneSASMaliciousImage | Requires container images is safe and scanned by SAS. | high | |
| CCEOneOSSStorageLocationConstraint | Restricts location of oss storage in cluster. | low | |
| K8s-general | CCEOneAllowedRepos | 限制在集群指定范围部署的应用Pod中拉取白名单列表外的镜像。 | high |
| CCEOneBlockAutoinjectServiceEnv | 要求在应用中配置enableServiceLinks: false防止在Pod环境变量中透出服务IP。 | low | |
| CCEOneBlockAutomountToken | 要求在应用中设置automountServiceAccountToken: false字段防止自动挂载serviceaccount。 | high | |
| CCEOneBlockEphemeralContainer | 限制在集群指定范围的应用Pod中启动临时容器。 | medium | |
| CCEOneBlockLoadBalancer | 限制在集群指定范围内部署LoadBalancer类型的Service。 | high | |
| CCEOneBlockNodePort | 限制在集群指定范围内使用NodePort类型的Service。 | high | |
| CCEOneContainerLimits | 要求集群指定范围的应用Pod配置资源limits。 | low | |
| CCEOneExternalIPs | 限制在集群指定范围内的Services实例使用白名单范围之外的externalIPs。 | high | |
| CCEOneImageDigests | 限制在集群指定范围内部署不符合digest格式的镜像。 | low | |
| CCEOneRequiredLabels | 限制在集群指定范围内部署没有指定范式label标签的应用。 | low | |
| CCEOneRequiredProbes | 限制在集群指定范围内部署的Pod配置指定类型的readinessProbe和livenessProbe。 | medium | |
| CCEOneCheckNginxPath | 限制在Ingress实例的spec.rules[].http.paths[].path字段中使用危险配置。Ingress-nginx 1.2.1以下版本建议开启该策略。 | high | |
| CCEOneCheckNginxAnnotation | 限制在Ingress实例的metadata.annotations字段中使用危险配置。Ingress-nginx 1.2.1以下版本建议开启该策略。 | high |