添加自定义合规规则
操作场景
当Config提供的系统内置预设策略不能满足检测资源合规性的需求时,您可以通过编写FunctionGraph函数代码,添加自定义策略来完成复杂场景的资源审计。
自定义策略是一个用户开发并发布在函数工作流(FunctionGraph)上的函数。将合规规则和函数相关联,函数接收Config发布的事件,从事件中接收到规则参数和Config服务收集到的资源属性;函数评估该规则下资源的合规性并通过Config的OpenAPI回传Config服务合规评估结果。合规规则的事件发送因触发类型为配置变更或周期执行而异。
本章节指导您如何通过自定义策略来添加资源合规规则,主要包含如下步骤:
约束与限制
- 每个账号最多可以添加500个合规规则。
- 添加、修改、启用合规规则和触发规则评估需要开启资源记录器,资源记录器处于关闭状态时,合规规则仅支持查看、停用和删除操作。
仅被资源记录器收集的资源可参与资源评估,为保证资源合规规则的评估结果符合预期,强烈建议您保持资源记录器的开启状态,不同场景的说明如下:
- 如您未开启资源记录器,则资源合规规则无法评估任何资源数据。历史的合规规则评估结果依然存在。
- 如您已开启资源记录器,但仅在资源记录器监控范围内勾选部分资源,则资源合规规则仅会评估所选择的资源数据。
关于如何开启并配置资源记录器请参见:配置资源记录器。
创建FunctionGraph函数
- 登录管理控制台。
- 单击页面左上角的图标,在弹出的服务列表中,选择“计算”下的“函数工作流 FunctionGraph”。
- 在左侧的导航栏选择“函数 > 函数列表”。
- 单击右上方的“创建函数”,进入“创建函数”页面。
- 选择“创建空白函数”,“函数类型”选择“事件函数”,并配置函数名称、IAM委托等其他参数。
IAM委托授权给函数工作流(FunctionGraph),且需要包含权限“rms:policyStates:update”。
- 配置完成后单击“创建函数”,页面跳转至代码配置页面,继续配置代码源。
- 在代码框中写入评估函数内容,完成后单击“部署”。
评估函数的代码示例可参考示例函数(Python)。
- 选择“设置”,按需修改常规设置中的“执行超时时间”和“内存”,并配置“并发”。
- 完成后单击“保存”。
具体请参见创建事件函数。
添加自定义合规规则
- 登录管理控制台。
- 单击页面左上角的图标,在弹出的服务列表中,选择“管理与监管”下的“配置审计 Config”,进入“资源清单”页面。
- 单击左侧的“资源合规”,进入“资源合规”页面。
- 单击页面中部的“添加规则”,进入“基础配置”页面。
- “策略类型”选择“自定义策略”,配置相关参数并进行授权,配置完成后单击“下一步”。
表1 基础配置参数说明 参数
说明
策略类型
选择“自定义策略”。
允许用户通过自定义策略来创建合规规则。
规则名称
合规规则的名称,不能与已存在的合规规则名称重复。
合规规则名称仅支持数字、字母、下划线和中划线,最大长度64个字符。
规则简介
合规规则的简介,目前对规则简介内容的字符类型不做限制,最大长度512个字符。
FunctionGraph函数
用户自定义策略执行函数的URN。
创建FunctionGraph函数请参见创建FunctionGraph函数。
说明:如何获取FunctionGraph函数的URN可参考如下方法:
- 进入函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”,单击列表中需使用函数操作列的“复制URN”即可获取。
- 进入函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”,单击列表中需使用函数的函数名称,进入函数详情页,在函数概述部分右侧显示“函数URN”。
授权
此处的授权为委托授权,授权函数工作流(FunctionGraph)的只读权限和调用权限给Config服务,允许自定义合规规则查询函数工作流以及将事件发送至函数工作流。
说明:- 快速授权:将为您快速创建一个名为“rms_custom_policy_agency”的委托权限,该权限是可以让自定义合规规则正常工作的权限,包含调用函数工作流(FunctionGraph)的获取函数和异步执行函数的权限。
- 自定义授权:您可自行在统一身份认证服务(IAM)中创建委托,并进行自定义授权,但必须包含可以让自定义合规规则正常工作的权限(调用函数工作流(FunctionGraph)的获取函数和异步执行函数的权限),授权对象为配置审计(Config),授权内容为:
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "functiongraph:function:invokeAsync", "functiongraph:function:getConfig" ] } ] }
创建委托详见《统一身份认证服务用户指南》。
图1 基础配置
- 进入“规则参数”页面,规则参数配置完成后,单击“下一步”。
图2 规则参数
表2 合规规则参数说明 参数
说明
触发类型
用于触发资源合规规则。
触发类型有:
- 配置变更:在指定的云资源发生更改时触发规则评估。
- 周期执行:按照您设定的频率运行。
过滤器类型
用于指定资源类型参与规则评估。
过滤器类型分为:
- 指定资源:指定资源类型下的所有资源均参与规则评估。
- 所有资源:账号下的所有资源均参与规则评估。
仅当“触发类型”为“配置变更”时需配置此参数。
指定资源范围
过滤器类型选择“指定资源”后,需选择指定资源范围。
- 服务:选择资源所属的服务;
- 资源类型:选择对应服务下的资源类型;
- 区域:选择资源所在的区域。
仅当“触发类型”为“配置变更”,且“过滤器类型”为“指定资源”时需配置此参数。
过滤范围(可选)
使用过滤范围可指定资源类型下的某个具体资源参与规则评估。
过滤范围开启后您可通过资源ID或标签指定过滤范围。
当“触发类型”为“配置变更”时,您可以根据需要选择配置此参数。
周期频率
设置合规规则周期执行的频率。
可选项:1小时、3小时、6小时、12小时、24小时。
仅当“触发类型”为“周期执行”时需配置此参数。
规则参数
自定义策略的规则参数最多可以设置10个,由您自行配置。
标签
单击“添加新标签”,输入标签键和标签值,为合规规则添加标签。每个合规规则最多可以添加20个标签。
- 标签键不能为空,可以包含任意语种的字母、数字和空格,以及_.:=+-@字符,但首尾不能包含空格,且不能以_sys_开头。长度不超过128个字符。
- 标签值可以为空,可以包含任意语种的字母、数字和空格,以及_.:=+-@字符,但首尾不能包含空格。长度不超过255个字符。
- 进入“确认规则”页面,确认规则信息无误后,单击“提交”按钮,完成自定义合规规则创建。
合规规则创建后会立即自动触发首次评估。