
# 添加自定义组织合规规则
#### 操作场景
当Config提供的系统内置预设策略不能满足检测资源合规性的需求时，您可以通过编写函数代码，添加组织类型的自定义策略来完成复杂场景的资源审计。
自定义策略是一个用户开发并发布在[函数工作流（FunctionGraph）](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0110.html)上的函数。将合规规则和函数相关联，函数接收Config发布的事件，从事件中接收到规则参数和Config服务收集到的资源属性；函数评估该规则下资源的合规性并通过Config的Open API回传Config服务合规评估结果。合规规则的事件发送因触发类型为配置变更或周期执行而异。添加组织类型的自定义合规规则还需通过RAM服务将FunctionGraph函数共享给组织成员账号。
本章节指导您如何通过自定义策略来添加组织类型的合规规则，主要包含如下步骤：
1. [创建FunctionGraph函数]；
2. [共享FunctionGraph函数]；
3. [添加自定义组织合规规则]；
4. [触发规则评估]。
 
#### 约束与限制
- 每个账号最多可以添加500个合规规则。
- 添加、修改组织合规规则和触发规则评估需要开启资源记录器，资源记录器处于关闭状态时，组织合规规则仅支持查看和删除操作。
- 非组织内账号无法在Config控制台的"资源合规"页面中看到"组织规则"页签。
- 组织合规规则仅会下发至账号状态为"正常"的组织成员账号中，且组织成员账号需开启资源记录器，否则将导致部署异常。
![](https://support.huaweicloud.com/usermanual-rms/public_sys-resources/warning_3.0-zh-cn.png)
仅被资源记录器收集的资源可参与资源评估，为保证资源合规规则的评估结果符合预期，强烈建议您保持资源记录器的开启状态，不同场景的说明如下：
- 如您未开启资源记录器，则资源合规规则无法评估任何资源数据。历史的合规规则评估结果依然存在。
- 如您已开启资源记录器，但仅在资源记录器监控范围内勾选部分资源，则资源合规规则仅会评估所选择的资源数据。
关于如何开启并配置资源记录器请参见：[配置资源记录器](https://support.huaweicloud.com/usermanual-rms/rms_04_0200.html)。
 #### 创建FunctionGraph函数
1. 登录[函数工作流控制台](https://console.huaweicloud.com/functiongraph/?&locale=zh-cn#/serverless/dashboard)。
2. 在左侧的导航栏选择"函数 \> 函数列表"，单击右上方的"创建函数"，进入"创建函数"页面。
3. 选择"创建空白函数"，"函数类型"选择"事件函数"，并配置IAM委托。IAM委托授权给函数工作流（FunctionGraph），且需要包含权限"rms:policyStates:update"。
4. 配置完成后单击"创建函数"，页面跳转至代码配置页面，继续配置代码源。
5. 在代码框中写入评估函数，完成后单击"部署"。 
   评估函数的代码示例可参考[示例函数(Python)](https://support.huaweicloud.com/usermanual-rms/rms_05_0707.html)。
   
   
6. 选择"设置"，按需修改常规设置中的"执行超时时间"和"内存"，并配置"并发"。
7. 完成后单击"保存"。 
   具体请参见[创建事件函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1441.html)。
   
   
![](https://support.huaweicloud.com/usermanual-rms/public_sys-resources/note_3.0-zh-cn.png)
建议您为函数配置合适的并发数，高并发可能导致资源争用，增加延迟和错误率，也可能导致请求被直接丢弃。
 #### 共享FunctionGraph函数
1. 以组织管理员账号或者Config服务的委托管理员账号登录[资源访问管理控制台](https://console.huaweicloud.com/ram/?&locale=zh-cn#/ownedShares/list)。
2. 单击左侧的"我的共享"，选择"共享管理"。
3. 单击页面右上角的"创建共享"，进入指定共享资源页面，配置基本信息并指定共享资源为"functiongraph:function"，选择已创建的FunctionGraph函数，单击页面右下角的"下一步：权限配置"。 
   图1指定共享资源   
   ![](https://support.huaweicloud.com/usermanual-rms/zh-cn_image_0000001753075334.png "点击放大")
   
   
4. 进入"权限配置"页面，选择共享权限"default FunctionGraph function statement"，单击页面右下角的"下一步：指定使用者"。 
   图2权限配置   
   ![](https://support.huaweicloud.com/usermanual-rms/zh-cn_image_0000001799809865.png "点击放大")
   
   
5. 进入"指定使用者"页面，指定共享资源的使用者，配置完成后，单击页面右下角的"下一步：配置确认"。 
   - **指定使用者：**选择"仅允许在组织内共享"，表示指定的使用者必须为您组织内的成员。
   
   - **使用者类型：**选择"组织"，然后在下方的组织结构树中勾选根OU（即Root），表示将FunctionGraph函数共享给整个组织。
   
   
   ![](https://support.huaweicloud.com/usermanual-rms/public_sys-resources/note_3.0-zh-cn.png)
   如果您未打开"启用与组织共享资源"开关，使用者类型将无法选择"组织"，如何启用请参见[启用与组织共享资源](https://support.huaweicloud.com/usermanual-ram/ram_03_0016.html)。
   图3指定使用者   
   ![](https://support.huaweicloud.com/usermanual-rms/zh-cn_image_0000001752977406.png "点击放大")
   
   
6. 进入"配置确认"页面，确认配置无误后，单击页面右下角的"确定"，完成FunctionGraph函数的组织内共享。
 
 #### 添加自定义组织合规规则
1. 登录[配置审计控制台](https://console.huaweicloud.com/rms/?&locale=zh-cn#/overview)。
2. 单击左侧的"资源合规"，进入"资源合规"页面。
3. 选择"组织规则"页签，单击"添加规则"，进入"基础配置"页面。
4. "策略类型"选择"自定义策略"，配置相关参数后单击"下一步"。 
   图4基础配置   
   ![](https://support.huaweicloud.com/usermanual-rms/zh-cn_image_0000001715832749.png "点击放大")
   表1基础配置参数说明 
   | 参数              | 说明                                                                                                                                                                                          |
   |:---|:---|
   | 策略类型            | 策略类型选择"自定义策略"。 允许用户通过自定义策略来创建合规规则。                                                                                                                             |
   | 规则名称            | 合规规则的名称，不能与已存在的合规规则名称重复。 合规规则名称仅支持数字、字母、下划线和中划线。                                                                                                              |
   | 规则简介            | 合规规则的简介，目前对合规规则简介的内容不做限制。                                                                                                                                                                   |
   | FunctionGraph函数 | 用户自定义策略执行函数的URN。 创建FunctionGraph函数请参见[创建FunctionGraph函数](https://support.huaweicloud.com/usermanual-rms/rms_05_0705.html#rms_05_0705__section98391557105218)。 |
      
   
   
5. 进入"规则参数"页面，规则参数配置完成后，单击"下一步"。 
   图5规则参数   
   ![](https://support.huaweicloud.com/usermanual-rms/zh-cn_image_0000001942105334.png "点击放大")
   表2合规规则参数说明 
   | 参数       | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   |:---|:---|
   | 触发类型     | 用于触发资源合规规则。 触发类型有： - **配置变更：**在指定的云资源发生更改时触发规则评估。  - **周期执行：**按照您设定的频率运行。                                                                                      |
   | 过滤器类型    | 用于指定资源类型参与规则评估。 过滤器类型分为： - **指定资源：**指定资源类型下的所有资源均参与规则评估。  - **所有资源：**账号下的所有资源均参与规则评估。   仅当"触发类型"选择"配置变更"时需配置此参数。                                       |
   | 指定资源范围   | 过滤器类型选择"指定资源"后，需选择指定资源范围。 - **服务：**选择资源所属的服务；  - **资源类型：**选择对应服务下的资源类型；  - **区域：**选择资源所在的区域。   仅当"触发类型"选择"配置变更"时需配置此参数。 |
   | 过滤范围（可选） | 使用过滤范围可指定资源类型下的某个具体资源参与规则评估。 过滤范围开启后您可通过资源ID或标签指定过滤范围。 仅当"触发类型"选择"配置变更"时需配置此参数。                                                                                                                                                                                                                                                                                     |
   | 周期频率     | 设置合规规则周期执行的频率。 仅当"触发类型"选择"周期执行"时需配置此参数。                                                                                                                                                                                                                                                                                                                                                           |
   | 规则参数     | 自定义策略的规则参数最多可以设置10个，由您自行配置。                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 目标       | 目标决定了此组织合规规则配置的部署位置。 - **组织：**将策略部署到您组织内的所有成员账号中。  - **当前账号：**将策略部署到当前登录的账号中。   创建组织类型的资源合规规则时请选择"组织"。                                                                                                  |
   | 排除账号     | 输入需要排除的组织内的部分账号ID，使得该组织合规规则不在排除的账号中部署。 仅当"目标"选择"组织"时可配置此参数。                                                                                                                                                                                                                                                                                                                                     |
      
   
   
6. 进入"确认规则"页面，确认规则信息无误后，单击"提交"按钮，完成自定义组织合规规则的创建。
 
#### 操作验证
1. 返回"资源合规"页面，在"组织规则"页签下的列表中显示刚创建的组织合规规则。 ![](https://support.huaweicloud.com/usermanual-rms/zh-cn_image_0000002565410415.png "点击放大")
   
   
2. 单击组织合规规则名称，在规则详情页面中，策略类型显示为"自定义策略"，则表示自定义组织合规规则添加成功。 ![](https://support.huaweicloud.com/usermanual-rms/zh-cn_image_0000002565806005.png "点击放大")
   
   
 
 #### 触发规则评估
组织内的成员账号触发组织合规规则评估可参考：[触发规则评估](https://support.huaweicloud.com/usermanual-rms/rms_05_0200.html)。
#### 相关文档
- [自定义策略的规则参数最多可以设置多少个？](https://support.huaweicloud.com/rms_faq/rms_08_0600.html#section5)
- [为什么成员账号无法编辑或删除自定义组织合规规则？](https://support.huaweicloud.com/rms_faq/rms_08_0600.html#section14)
 
