文档

通过容器策略治理配置Pod的安全策略

更新时间:

Gatekeeper准入控制器使用开放策略(OPA)的策略,提供了更多符合K8s应用场景的安全策略规则。借助ACK集群引入的Gatekeeper组件,您可以在容器服务控制台启用或自定义安全策略,验证Pod的部署和更新是否安全可控。

策略治理介绍

PodSecurityPolicy(简称PSP)从Kubenetes 1.21版本开始被标记为弃用(Deprecated)状态。为此,ACK集群改版了原先基于PSP的策略管理功能。基于使用OPA策略的Gatekeeper准入控制器,ACK集群扩展了相应的策略治理状态统计和日志上报检索等能力,同时内置了种类丰富的策略治理规则库,提供符合更多K8s应用场景的策略规则。在规则配置上,您可以在控制台上白屏化配置,降低使用策略治理相关能力的门槛。

前提条件

  • 已创建ACK托管集群ACK专有集群,且集群版本为v1.16及以上。具体操作, 请参见创建Kubernetes托管版集群创建Kubernetes专有版集群。如需升级集群,请参见手动升级集群

  • 使用RAM用户进行策略管理时,已确保该RAM用户拥有以下授权:

    • cs:DescribePolicies:列举策略治理规则库列表

    • cs:DescribePoliceDetails:获取策略规则模板详情

    • cs:DescribePolicyGovernanceInCluster:获取集群策略治理详情

    • cs:DescribePolicyInstances:获取集群中当前部署的策略实例列表

    • cs:DescribePolicyInstancesStatus:获取集群当前不同策略类型对应的实例部署状态

    • cs:DeployPolicyInstance:在指定集群中部署策略规则实例

    • cs:DeletePolicyInstance:在指定集群中删除策略规则实例

    • cs:ModifyPolicyInstance:在指定集群中修改策略规则实例

    关于如何自定义RAM授权策略,请参见自定义RAM授权策略

注意事项

  • 仅适用于Linux节点。

  • 当前不支持自定义策略规则,所有规则均来自于阿里云容器服务内置的规则库。

步骤一:安装或升级策略治理组件

启用安全策略治理功能时,需安装以下组件:

  • gatekeeper组件:基于OPA策略引擎的K8s策略准入控制器,便于您管理和应用集群内的OPA策略,实现命名空间标签管理等功能。

    说明

    仅支持使用ACK集群提供的gatekeeper组件。如您通过其他途径安装了gatekeeper组件,请卸载后重新安装。关于gatekeeper组件的版本发布信息,请参见gatekeeper

  • logtail-ds日志组件:对不符合策略约束的拦截或告警事件的收集和检索。

  • policy-template-controller组件:为基于阿里云策略模板开发的K8s控制器,便于您更好地管理基于不同策略模板部署的策略实例和集群整体的治理状态。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择安全管理 > 策略管理

  3. 策略管理页面,根据页面提示安装或升级组件。

步骤二:使用策略治理功能

操作入口

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择安全管理 > 策略管理

  3. 策略管理页面,按页面提示完成组件安装或升级(如有),然后按需进行以下操作。

查看集群当前策略治理状态

您可以单击策略实施总览页签,查看集群当前的策略治理状态。

  • 策略开启总览,包括高危和中危防护策略的总数和已开启数展示,建议开启的策略列表等。

  • 近7天拦截和告警结果统计。

  • 近7天策略实施记录,当前页面表格中会默认展示7天内最近100条的拦截或告警日志,如果您想查看更多审计日志,可以单击近7天策略实施记录后的未知图标,并单击悬浮窗口中的日志服务链接在SLS日志服务控制台指定的logstore中查看全部日志。策略实施总览

创建并管理策略实例

单击我的策略页签,然后单击创建策略实例,在创建策略实例对话框配置相关参数。

配置项

说明

策略类型

首先选择策略类型,包括如下大类:

  • Infra:基础设施层资源相关的策略类型。

  • Compliance:基于K8s安全加固等K8s合规规范定制的策略类型。

  • PSP:替代Pod Security Policy(PSP)能力的策略类型。

  • K8s-general:基于最佳安全实践对K8s资源配置进行安全加固约束的通用策略类型。

实施动作

  • 拦截:违反策略规则约束的指定资源部署会被拦截。

  • 告警:违反策略规则约束的指定资源仍旧可以部署,只会产生对应违规审计的告警日志。

策略名称

根据选择的策略类型,在策略名称下拉列表中选择需要部署的策略模板名称。

作用范围

选择策略实例实施在集群中哪些指定的命名空间。

参数配置

  • 如果参数配置输入框中默认为空,说明规则不需要进行参数配置。

  • 如果输入框中包含需要配置的参数模板,则请参考策略参数说明按照指定格式配置参数。

查看策略列表和集群中已部署的策略实例

单击我的策略页签,查看集群所有可部署的策略名称。

您可以在列表右上角筛选显示的策略。已开启的策略名称会优先展示。策略实例数会显示对应策略在集群中已部署的实例个数。

如果策略实例数为空,表明该策略还未在集群中部署,可在操作列单击开启配置参数配置并部署对应的策略实例。策略规则说明

  • 单击操作列中的编辑可以修改策略实例的配置。

    当策略在集群中已部署超过1个实例时,可以单击操作列的查看策略实例,然后单击编辑修改相关配置。

  • 单击操作列中的删除可以删除该策略在集群中部署的所有实例。

关于策略说明和模板示例的更多信息,请参见容器安全策略规则库说明

相关文档

  • 本页导读 (1)
文档反馈