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

添加自定义组织合规规则

操作场景

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

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

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

  1. 创建FunctionGraph函数
  2. 共享FunctionGraph函数
  3. 添加自定义组织合规规则
  4. 触发规则评估

约束与限制

  • 每个账号最多可以添加500个合规规则。
  • 添加、修改组织合规规则和触发规则评估需要开启资源记录器,资源记录器处于关闭状态时,组织合规规则仅支持查看和删除操作。
  • 非组织内账号无法在Config控制台的“资源合规”页面中看到“组织规则”页签。
  • 组织合规规则仅会下发至账号状态为“正常”的组织成员账号中,且组织成员账号需开启资源记录器,否则将导致部署异常。

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

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

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

创建FunctionGraph函数

  1. 登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
  2. 单击右上方的“创建函数”,进入“创建函数”页面。
  3. 选择“创建空白函数”,“函数类型”选择“事件函数”,并配置IAM委托。IAM委托授权给函数工作流(FunctionGraph),且需要包含权限“rms:policyStates:update”。
  4. 配置完成后单击“创建函数”,页面跳转至代码配置页面,继续配置代码源。
  5. 在代码框中写入评估函数,完成后单击“部署”。

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

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

    具体请参见创建事件函数

共享FunctionGraph函数

  1. 以组织管理员账号或者Config服务的委托管理员账号登录管理控制台。
  2. 单击页面左上角的,选择“管理与监管 > 资源访问管理”,进入“资源访问管理”页面。
  3. 单击左侧的“我的共享”,选择“共享管理”。
  4. 单击页面右上角的“创建共享”,进入指定共享资源页面,配置基本信息并指定共享资源为“functiongraph:function”,选择已创建的FunctionGraph函数,单击页面右下角的“下一步:权限配置”。

    图1 指定共享资源

  5. 进入“权限配置”页面,选择共享权限“default FunctionGraph function statement”,单击页面右下角的“下一步:指定使用者”。

    图2 权限配置

  6. 进入“指定使用者”页面,指定共享资源的使用者,配置完成后,单击页面右下角的“下一步:配置确认”。

    • 指定使用者:选择“仅允许在组织内共享”,表示指定的使用者必须为您组织内的成员。
    • 使用者类型:选择“组织”,然后在下方的组织结构树中勾选根OU(即Root),表示将FunctionGraph函数共享给整个组织。

    如果您未打开“启用与组织共享资源”开关,使用者类型将无法选择“组织”,如何启用请参见启用与组织共享资源

    图3 指定使用者

  7. 进入“配置确认”页面,确认配置无误后,勾选同意“隐私声明”协议,单击页面右下角的“确定”,完成FunctionGraph函数的组织内共享。

添加自定义组织合规规则

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

    图4 基础配置

    表1 基础配置参数说明

    参数

    说明

    策略类型

    策略类型选择“自定义策略”。

    允许用户通过自定义策略来创建合规规则。

    规则名称

    合规规则的名称,不能与已存在的合规规则名称重复。

    合规规则名称仅支持数字、字母、下划线和中划线。

    规则简介

    合规规则的简介,目前对合规规则简介的内容不做限制。

    FunctionGraph函数

    用户自定义策略执行函数的URN。

    创建FunctionGraph函数请参见创建FunctionGraph函数

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

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

    参数

    说明

    触发类型

    用于触发资源合规规则。

    触发类型有:

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

    过滤器类型

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

    过滤器类型分为:

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

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

    指定资源范围

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

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

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

    过滤范围

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

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

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

    周期频率

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

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

    规则参数

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

    目标

    目标决定了此组织合规规则配置的部署位置。

    • 组织:将策略部署到您组织内的所有成员账号中。
    • 当前账号:将策略部署到当前登录的账号中。

    创建组织类型的资源合规规则时请选择“组织”。

    排除账号

    输入需要排除的组织内的部分账号ID,使得该组织合规规则不在排除的账号中部署。

    仅当“目标”选择“组织”时可配置此参数。

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

触发规则评估

组织内的成员账号触发组织合规规则评估可参考:触发规则评估