通过安全策略管理配置Pod的安全策略

为了满足集群合规性要求、提升集群安全性,推荐您启用安全策略管理功能。安全策略管理功能提供了符合Kubernetes容器应用场景的安全策略规则,包括Infra(基础设施层资源)、Compliance(Kubernetes合规规范)、PSP(基于PodSecurityPolicy能力的拓展)和K8s-general(通用策略)维度。您可以在控制台为容器应用开启或自定义安全策略,验证Pod的部署和更新是否安全可控。

策略治理介绍

自Kubernetes 1.21起,PodSecurityPolicy(PSP)被标记为弃用(Deprecated)状态。为此,ACK升级了原先基于PSP的策略管理功能。基于使用OPA策略的Gatekeeper Admission Controller,ACK扩展了相应的策略治理状态统计、日志上报检索等能力,同时内置了种类丰富的策略治理规则库,提供符合更多Kubernetes应用场景的策略规则。在规则配置上,您可以在控制台上白屏化配置,降低使用策略治理相关能力的门槛。

前提条件

  • 集群版本为v1.16及以上。如需升级集群,请参见手动升级集群

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

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

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

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

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

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

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

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

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

    关于如何自定义RAM授权策略,请参见使用RAM授予集群及云资源访问权限

注意事项

  • 仅适用于Linux节点。

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

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

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

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

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

    启用安全策略管理功能时,需安装以下组件。以下组件本身不收取费用,但会占用您的Pod资源。

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

      说明

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

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

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

步骤二:使用安全策略管理功能

操作入口

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

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

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

查看集群当前安全策略执行状态

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

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

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

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

创建并管理安全策略实例

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

配置项

说明

策略类型

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

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

  • Compliance:基于阿里云K8s加固等Kubernetes合规规范定制的策略类型。

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

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

更多信息,请参见容器安全策略规则库说明

策略名称

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

实施动作

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

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

作用范围

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

参数配置

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

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

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

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

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

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

策略规则说明

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

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

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

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

相关操作:为命名空间或Service开启删除保护

参见步骤一:安装或升级安全策略管理组件启用安全策略管理功能后,您还可以为涉及关键业务、敏感数据的命名空间或Service开启删除保护功能,以避免误删除带来的维护成本。启用后,仅当您手动关闭删除保护后,对应的资源才可以被删除。

下文以为存量命名空间的开启删除保护为例,介绍流程步骤。其他操作步骤流程类似,您可以进入控制台对应页面,按照页面提示完成配置。

  • 为存量命名空间开启删除保护

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

    2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择命名空间与配额

    3. 在命名空间列表的操作列,单击编辑,在对话框中按照页面完成删除保护的启用。

  • 为存量Service开启删除保护

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

    2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择网络 > 服务

    3. 在服务列表的操作列,单击image,然后单击开启删除保护,在对话框中按照页面完成删除保护的启用。

相关文档

配置巡检功能可以扫描集群中工作负载配置的安全隐患。更多信息,请参见配置巡检检查集群工作负载