ACK安全策略管理功能提供了符合Kubernetes容器应用场景的安全策略规则。其中,新增了ASM限制Pod必须注入ASM Sidecar策略,进一步提升接入ASM的集群安全性。本文介绍如何在ACK集群中开启强制注入Sidecar策略以及演示此策略开启后的效果。
背景信息
策略治理
自Kubernetes 1.21起,PodSecurityPolicy(PSP)被标记为弃用(Deprecated)状态。为此,ACK升级了原先基于PSP的策略管理功能。基于使用OPA策略的Gatekeeper Admission Controller,ACK扩展了相应的策略治理状态统计、日志上报检索等能力,同时内置了种类丰富的策略治理规则库,提供符合更多Kubernetes应用场景的策略规则。在规则配置上,您可以在控制台上白屏化配置,降低使用策略治理相关能力的门槛。
策略类型包括以下大类:
Infra:基础设施层资源相关的策略类型。
Compliance:基于阿里云K8s加固等Kubernetes合规规范定制的策略类型。
PSP:替代Pod Security Policy(PSP)能力的策略类型。
K8s-general:基于最佳安全实践对Kubernetes资源配置进行安全加固约束的通用策略类型。
Sidecar注入
Sidecar所支持的功能可以从应用程序的容器中抽象出来,并在作为同一Pod中的独立容器提供的代理中实现。为了充分利用这些功能,应用程序中的每个服务都需要在其Pod中运行一个Sidecar代理。Sidecar代理拦截到该服务的所有入站和出站TCP通信,并与服务网格ASM控制面通信。
前提条件
集群版本为v1.16及以上。如需升级集群,请参见手动升级集群。
如需使用RAM用户进行策略管理时,请确保该RAM用户拥有以下授权:
cs:DescribePolicies
:列举策略治理规则库列表cs:DescribePoliceDetails
:获取策略规则模板详情cs:DescribePolicyGovernanceInCluster
:获取集群策略治理详情cs:DescribePolicyInstances
:获取集群中当前部署的策略实例列表cs:DescribePolicyInstancesStatus
:获取集群当前不同策略类型对应的实例部署状态cs:DeployPolicyInstance
:在指定集群中部署策略规则实例cs:DeletePolicyInstance
:在指定集群中删除策略规则实例cs:ModifyPolicyInstance
:在指定集群中修改策略规则实例
关于如何自定义RAM授权策略,请参见使用RAM授予集群及云资源访问权限。
配置方式
集群添加到ASM实例后,默认不会开启命名空间级的自动注入。若集群中开启了此策略,相关命名空间Pod的创建动作不会成功或创建后集群会收到高危安全警告,并产生对应违规审计的告警日志。配置流程如下:
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在策略管理页面,按页面提示完成组件的安装或升级(如有),然后按需进行以下开启操作。
从安全策略列表开启强制注入策略。
单击我的策略页签,查看集群所有可部署的策略名称。
在策略列表中找到ASMSidecarInjectionEnforced策略,点击条目右侧操作列的开启。
按照以下内容填写策略配置,然后单击创建:
配置项
说明
实施动作
您可以根据实际需求选择:
拦截:违反策略规则约束的指定资源部署会被拦截。
警告:违反策略规则约束的指定资源仍旧可以部署,只会产生对应违规审计的告警日志。
作用范围
指定策略实例实施在集群中哪些命名空间,您也可以选择在所有命名空间(不推荐)。
参数配置
留空即可。
直接创建策略实例。
单击我的策略页签,然后单击创建策略实例,在创建策略实例对话框配置相关参数。
配置项
说明
策略类型
选择策略类型infra。更多信息,请参见容器安全策略规则库说明。
策略名称
根据选择的策略类型,在策略名称下拉列表中选择ASMSidecarInjectionEnforced策略模板名称。
实施动作
您可以根据实际需求选择:
拦截:违反策略规则约束的指定资源部署会被拦截。
警告:违反策略规则约束的指定资源仍旧可以部署,只会产生对应违规审计的告警日志。
作用范围
指定策略实例实施在集群中哪些命名空间,您也可以选择在所有命名空间(不推荐)。
参数配置
留空即可。
验证策略。
default命名空间未开启自动注入,同时ACK开启强制注入策略,实施动作选择拦截。
查看工作负载。
可以看到容器组创建失败。
单击策略实施总览页签,在近7天策略实施记录列表中出现了拦截记录。
编辑策略,修改实施动作为警告。
重新部署httpbin应用。
查看工作负载。
可以看到应用部署成功。
单击策略实施总览页签,在近7天策略实施记录列表中出现了警告记录。