更新时间:2024-10-28 GMT+08:00

添加自定义合规规则

操作场景

当Config提供的系统内置预设策略不能满足检测资源合规性的需求时,您可以通过编写FunctionGraph函数代码,添加自定义策略来完成复杂场景的资源审计。

自定义策略是一个用户开发并发布在函数工作流(FunctionGraph)上的函数。将合规规则和函数相关联,函数接收Config发布的事件,从事件中接收到规则参数和Config服务收集到的资源属性;函数评估该规则下资源的合规性并通过Config的OpenAPI回传Config服务合规评估结果。合规规则的事件发送因触发类型为配置变更或周期执行而异。

本章节指导您如何通过自定义策略来添加资源合规规则,主要包含如下步骤:

  1. 创建FunctionGraph函数
  2. 添加自定义合规规则

约束与限制

  • 每个账号最多可以添加500个合规规则。
  • 添加、修改、启用合规规则和触发规则评估需要开启资源记录器,资源记录器处于关闭状态时,合规规则仅支持查看、停用和删除操作。

仅被资源记录器收集的资源可参与资源评估,为保证资源合规规则的评估结果符合预期,强烈建议您保持资源记录器的开启状态,不同场景的说明如下:

  • 如您未开启资源记录器,则资源合规规则无法评估任何资源数据。历史的合规规则评估结果依然存在。
  • 如您已开启资源记录器,但仅在资源记录器监控范围内勾选部分资源,则资源合规规则仅会评估所选择的资源数据。

关于如何开启并配置资源记录器请参见:配置资源记录器

创建FunctionGraph函数

  1. 登录管理控制台。
  2. 单击页面左上角的图标,在弹出的服务列表中,选择“计算”下的“函数工作流 FunctionGraph”。
  3. 在左侧的导航栏选择“函数 > 函数列表”。
  4. 单击右上方的“创建函数”,进入“创建函数”页面。
  5. 选择“创建空白函数”,“函数类型”选择“事件函数”,并配置函数名称、IAM委托等其他参数。

    IAM委托授权给函数工作流(FunctionGraph),且需要包含权限“rms:policyStates:update”。

  6. 配置完成后单击“创建函数”,页面跳转至代码配置页面,继续配置代码源。
  7. 在代码框中写入评估函数内容,完成后单击“部署”。

    评估函数的代码示例可参考示例函数(Python)

  8. 选择“设置”,按需修改常规设置中的“执行超时时间”和“内存”,并配置“并发”。
  9. 完成后单击“保存”。

    具体请参见创建事件函数

添加自定义合规规则

  1. 登录管理控制台。
  2. 单击页面左上角的图标,在弹出的服务列表中,选择“管理与监管”下的“配置审计 Config”,进入“资源清单”页面。
  3. 单击左侧的“资源合规”,进入“资源合规”页面。
  4. 单击页面中部的“添加规则”,进入“基础配置”页面。
  5. “策略类型”选择“自定义策略”,配置相关参数并进行授权,配置完成后单击“下一步”。

    表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 基础配置

  6. 进入“规则参数”页面,规则参数配置完成后,单击“下一步”。

    图2 规则参数
    表2 合规规则参数说明

    参数

    说明

    触发类型

    用于触发资源合规规则。

    触发类型有:

    • 配置变更:在指定的云资源发生更改时触发规则评估。
    • 周期执行:按照您设定的频率运行。

    过滤器类型

    用于指定资源类型参与规则评估。

    过滤器类型分为:

    • 指定资源:指定资源类型下的所有资源均参与规则评估。
    • 所有资源:账号下的所有资源均参与规则评估。

    仅当“触发类型”为“配置变更”时需配置此参数。

    指定资源范围

    过滤器类型选择“指定资源”后,需选择指定资源范围。

    • 服务:选择资源所属的服务;
    • 资源类型:选择对应服务下的资源类型;
    • 区域:选择资源所在的区域。

    仅当“触发类型”为“配置变更”,且“过滤器类型”为“指定资源”时需配置此参数。

    过滤范围(可选)

    使用过滤范围可指定资源类型下的某个具体资源参与规则评估。

    过滤范围开启后您可通过资源ID或标签指定过滤范围。

    当“触发类型”为“配置变更”时,您可以根据需要选择配置此参数。

    周期频率

    设置合规规则周期执行的频率。

    可选项:1小时、3小时、6小时、12小时、24小时。

    仅当“触发类型”为“周期执行”时需配置此参数。

    规则参数

    自定义策略的规则参数最多可以设置10个,由您自行配置。

    标签

    单击“添加新标签”,输入标签键和标签值,为合规规则添加标签。每个合规规则最多可以添加20个标签。

    • 标签键不能为空,可以包含任意语种的字母、数字和空格,以及_.:=+-@字符,但首尾不能包含空格,且不能以_sys_开头。长度不超过128个字符。
    • 标签值可以为空,可以包含任意语种的字母、数字和空格,以及_.:=+-@字符,但首尾不能包含空格。长度不超过255个字符。

  7. 进入“确认规则”页面,确认规则信息无误后,单击“提交”按钮,完成自定义合规规则创建。

    合规规则创建后会立即自动触发首次评估。