
# 资源合规概述
#### 概述
资源合规特性帮助您快速创建一组合规规则，用于评估您的资源是否满足合规要求。您可以选择Config提供的[系统内置预设策略](https://support.huaweicloud.com/usermanual-rms/rms_05_0501.html)或自定义策略，并指定需要评估的资源范围来创建一个合规规则；合规规则创建后，有多种机制[触发规则评估](https://support.huaweicloud.com/usermanual-rms/rms_05_0200.html)，然后查看合规规则的评估结果来了解资源的合规情况。
在使用资源合规时，如果您是组织管理员或Config服务的委托管理员，您还可以添加组织类型的资源合规规则，直接作用于您组织内账号状态为"正常"的所有成员账号中。具体请参见[添加预定义组织合规规则](https://support.huaweicloud.com/usermanual-rms/rms_05_0701.html)。
针对合规规则评估出的不合规资源，[合规修正](https://support.huaweicloud.com/usermanual-rms/rms_05_1001.html)功能可以帮助您设置基于合规规则的修正配置，通过关联RFS服务的私有模板或FunctionGraph服务的函数实例，按照您自定义的修正逻辑对不合规资源进行快速修正，确保您的云上资源持续合规。
#### 约束与限制
- 每个账号最多可以添加500个合规规则（包括由组织合规规则和合规规则包创建的托管规则）。
- 添加、修改、启用合规规则和触发规则评估需要开启资源记录器，资源记录器处于关闭状态时，合规规则仅支持查看、停用和删除操作。 托管合规规则不支持进行修改、停用、启用、删除操作，托管合规规则是由组织合规规则或合规规则包创建的，由组织合规规则创建的托管规则只能由创建规则的组织账号进行修改和删除操作，由合规规则包创建的托管规则可以通过更新合规规则包进行参数修改，且只能通过删除相应合规规则包来进行删除。具体请参见[组织合规规则](https://support.huaweicloud.com/usermanual-rms/rms_05_0700.html)和[合规规则包](https://support.huaweicloud.com/usermanual-rms/rms_13_0000.html)。
  
- 添加、修改组织合规规则和触发规则评估需要开启资源记录器，资源记录器处于关闭状态时，组织合规规则仅支持查看和删除操作。
- 当前仅用户自行创建的预定义或自定义合规规则支持修正配置，通过组织合规规则或合规规则包创建的托管合规规则不支持修正配置。
- 基于RFS服务私有模板执行修正的场景下，对应区域的资源栈应至少预留5个配额，否则执行修正可能会因配额不足导致失败。
- 一个合规规则上只能创建一个修正配置。
- 当合规规则存在修正配置，则必须删除修正配置并且停用规则后，才可删除此合规规则。
- 单个合规规则的修正配置最多支持用户手动添加100个修正例外资源，基于设置的修正重试规则被自动添加至修正例外的资源没有配额限制。
![](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)。
 #### 合规策略
合规策略是一个可以用于评估资源是否合规的逻辑表达式。将合规策略应用到资源上时，可以评估出这个资源是否满足合规策略中的要求。
合规策略本身只是一个静态的逻辑，如果想要让其生效，必须将合规策略指定到一个具体的范围（例如通过设置过滤器来指定具体的资源范围）上，即生成一个具体的合规规则。
使用JSON表达式来表示一个合规策略定义，如[表1]所示。
 表1合规策略的定义-JSON表达式格式 
| 参数                     | 定义                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| id                     | 合规策略的唯一标识符                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| name                   | 合规策略的名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | name最大长度为64个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| display_name           | 合规策略的展示名                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | display_name最大长度为64个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| description            | 合规策略的描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | description最大长度为512个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| parameters             | 合规策略的规则参数，即每个合规策略下包含的参数。 具有如下属性： - name  - description  - type  - default_value  - allowed_values  - minimum  - maximum  - min_items  - max_items  - min_length  - max_length  - pattern   | 合规策略中包含的参数名称保持不变，您可以根据需要设置不同的值。 - **name：**规则参数的名称。  - **description：**规则参数的描述。  - **type：**规则参数值的类型，包括String，Array，Boolean，Integer，Float。  - **default_value：**规则参数的默认值。如果指定了默认值，用户可以不输入规则参数值，创建合规规则时将使用此默认值。  - **allowed_values：**规则参数值允许的值列表。如果指定了allowed_values，那么参数的值只能够从这些值中选择。  - **minimum：**策略参数的最小值，当参数类型为Integer或Float时生效。  - **maximum：** 策略参数的最大值，当参数类型为Integer或Float时生效。  - **min_items：**策略参数的最小项数，当参数类型为Array时生效。  - **max_items：** 策略参数的最大项数，当参数类型为Array时生效。  - **min_length：**策略参数的最小字符串长度或每项的最小字符串长度，当参数类型为String或Array时生效。  - **max_length：** 策略参数的最大字符串长度或每项的最大字符串长度，当参数类型为String或Array时生效。  - **pattern：**策略参数的字符串正则要求或每项的字符串正则要求，当参数类型为String或Array时生效。   |
| keywords               | 合规策略关键词                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 一般为与合规策略相关的产品简称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| policy_type            | 合规策略的类型。 主要有以下类型： - builtin  - custom                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | - **builtin：** 系统内置策略，这些合规策略定义由Config服务提供和维护。详见[系统内置预设策略](https://support.huaweicloud.com/usermanual-rms/rms_05_0501.html)。  - **custom:**用户自定义策略，用户创建的所有合规策略定义都具有此值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| policy_rule_type       | 合规策略的语法类型                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | DSL：一种Config服务提供的合规策略描述语言，用户可以根据此语法，将合规判断逻辑描述为一个具体的合规策略。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| trigger_type           | 触发类型。 有以下类型： - resource  - period                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | - **resource：**在指定的资源发生更改时运行。  - **period：**按照您设定的频率运行。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| default_resource_types | 合规策略评估的资源类型                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 大部分合规策略只评估部分的资源类型。创建合规规则时，建议只评估"default_resource_types"中的资源类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   
如下JSON表示了一个用于检查ECS实例的镜像ID是否在指定范围内的合规策略：
```
{
  "id": "5fa265c0aa1e6afc05a0ff07",
  "name": "allowed-images-by-id",
  "description": "指定允许的镜像ID列表，ECS实例的镜像ID不在指定的范围内，视为“不合规”",
  "parameters": {
    "listOfAllowedImages": {
      "name": "null",
      "description": "The list of allowed image IDs",
      "type": "Array"
      "allowed_values": null,
      "default_value": null,
    }
  },
  "keywords": [
    "ecs",
    "ims"
  ],
  "policy_type": "builtin",
  "policy_rule_type": "dsl",
  "trigger_type": "resource",
  "policy_rule": {
    "allOf": [
      {
         "value": "${resource().provider}",
         "comparator": "equals",
         "pattern": "ecs"
      },
      {
       "value": "${resource().type}",
       "comparator": "equals",
       "pattern": "cloudservers"
      },
      {
       "value": "${resource().properties.metadata.meteringImageId}",
        "comparator": "notIn",
        "pattern": "${parameters('listOfAllowedImages')}"
      }
    ]
   },
}
```
更多样例详见[自定义合规规则示例](https://support.huaweicloud.com/usermanual-rms/rms_05_0503.html)。
#### 合规规则
通过指定合规策略和合规策略所应用的范围（如：在某一区域的某些资源）来构成合规规则。
使用JSON表达式来表示一个合规规则定义，如[表2]所示。
 表2合规规则的定义-JSON表达式格式 
| 参数                     | 定义                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 限制                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| id                     | 合规规则唯一标识符                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| policy_assignment_type | 合规规则类型                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 包含以下两种： - **builtin：**预设策略，此时合规规则需要设置参数policy_definition_id。  - **custom：**自定义策略，此时合规规则需要设置参数custom_policy。   如不设置此参数，则默认为预设策略。                                                                                                                                                                           |
| name                   | 合规规则的名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 字符串类型，最多64个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 规则名称默认复用所选择合规策略的名称，也可自行修改。 name最大长度为64个字符。                                                                                                                                                                                                                                                                                                                                                                                                                             |
| description            | 合规规则的描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 字符串类型，最多512个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 指的是规则简介，默认复用所选择合规策略的简介，需自行修改。 description最大长度为512个字符。                                                                                                                                                                                                                                                                                                                                                                                                                 |
| period                 | 周期频率                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 包含以下几种： - **One_Hour:**1小时。  - **Three_Hours:**3小时。  - **Six_Hours:**6小时。  - **Twelve_Hours:**12小时。  - **TwentyFour_Hours:**24小时。   |
| policy_filter          | 合规规则过滤器，用于过滤范围内的哪些资源参与此规则的评估。 过滤器的属性主要有以下几个： - **region_id:**区域ID。  - **resource_provider:** 指定资源服务。  - **resource_type：**指定资源服务下的资源类型。  - **resource_id：**资源ID。  - **tag_key：**资源标签的键。  - **tag_value：**资源标签的值。   | policy_filter：Object类型。 - **region_id：**字符串类型，最多128个字符，只能包括字母、数字、中划线（-）。  - **resource_provider：**字符串类型，最多128个字符，只能包括字母、数字。  - **resource_type：**字符串类型，最多128个字符，只能包括字母、数字。  - **resource_id：**字符串类型，最多256个字符。  - **tag_key：**字符串类型，最多128个字符。  - **tag_value：**字符串类型，最多256个字符。   | 说明： 资源类型（resource_provider）是判断过滤器类型（指定资源/所有资源）的依据，如果policy_filter中资源类型存在，则过滤器类型为"指定资源"；如果policy_filter中资源类型不存在，则过滤器类型为"所有资源"。 因此policy_filter中没有设置单独的过滤器类型属性。                                                                                                                                                                                                                                                                            |
| state                  | 合规规则的运行状态                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 包含以下几种： - **Enabled：**运行中，表示此合规规则可用。  - **Disabled：**已停用，表示此合规规则已停用。  - **Evaluating：**评估中，表示正在使用此合规规则进行资源评估。                                                                                                                                     |
| created                | 合规规则的创建时间                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 说明： 时间具有固定格式：遵循ISO8601格式，UTC时区（例如：2018-11-14T08:59:14Z）。                                                                                                                                                                                                                                                                                                                                                                                                              |
| updated                | 合规规则的更新时间                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 说明： 时间具有固定格式：遵循ISO8601格式，UTC时区（例如：2018-11-14T08:59:14Z）。                                                                                                                                                                                                                                                                                                                                                                                                              |
| policy_definition_id   | 合规策略ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 字符串类型，最多64个字符，只能包括字母、数字、中划线（-）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | policy_definition_id指定此规则绑定的合规策略ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| custom_policy          | 自定义策略，包含如下属性： - **function_urn：**函数urn。  - **auth_type：**调用函数的鉴权方式。  - **auth_value：**调用函数的鉴权值。                                                                                                                                                                                                                                                                                                                                          | custom_policy：Object类型 。 - **function_urn：**字符串类型，最多1024个字符。  - **auth_type：**字符串类型，当前只支持 "agency" 。  - **auth_value：**object类型，与auth_type相关，当前只支持如下结构 {"agency_name": value_name}，其中value_name为授权给Config服务调用函数的委托的名字。                                                                                                                                                                                                             | custom_policy指定此规则绑定的自定义策略的函数URN和调用时的鉴权方式。                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| parameters             | 合规策略的规则参数的值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | parameters：Object类型 - **key：**字符串类型，只能包括字母、数字，当合规规则为自定义合规规则时，最多1024个字符。  - **value：**Object类型，根据参数具体的类型，有具体的限制。                                                                                                                                                                                                                                                                                                                                                                                                          | 合规规则绑定的合规策略，会有相应的规则参数，规则参数的个数、类型以及范围取决于所选择的合规策略。                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| tags                   | 合规规则的标签列表                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | - **标签键：**最大长度为128个unicode字符。  - **标签值：**最大长度为255个unicode字符。                                                                                                                                                                                                                                                                                     |
| created_by             | 合规规则的创建者                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 用户创建（custom）或服务关联委托方式创建。                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
![](https://support.huaweicloud.com/usermanual-rms/public_sys-resources/note_3.0-zh-cn.png)
为避免循环评估的行为，合规规则不支持评估配置审计服务的合规规则和合规规则包两种资源类型。
如下JSON表示了一个用于检查在区域1的弹性云服务器是否具有tag（env：production）标签的预设策略：
```
{
  "id": "5fcd8696dfb78231e6f2f899",
  "name": "required-tag-check",
  "description": "指定一个标签，不具有此标签的资源，视为“不合规”",
  "policy_filter": {
        "region_id": "regionid_1",
        "resource_provider": "ecs",
        "resource_type": "cloudservers",
        "tag_key": "env",
        "tag_value": "production"
  },
  "period": null,
  "state": "Enabled",
  "created": "2020-12-07T01:34:14.266Z",
  "updated": "2020-12-07T01:34:14.266Z",
  "policy_definition_id": "5fa9f89b6eed194ccb2c04db",
  "parameters": {
        "specifiedTagKey": {
        "value": "a"    },
        "specifiedTagValue": {
        "value": []
    }
  }
  "tags": [],
  "created_by": "custom"
}
```
如下JSON表示了一个用于检查在区域1的弹性云服务器的自定义合规规则：
```
{
  "id": "719d8696dfb78231e6f2f719",
  "name": "test_consume_policy",
  "description": "指定一个标签，不具有此标签的资源，视为“不合规”",
  "policy_filter": {
        "region_id": "regionid_1",
        "resource_provider": "ecs",
        "resource_type": "cloudservers",
        "tag_key": null,
        "tag_value": null
  },
  "period": null,
  "state": "Enabled",
  "created": "2022-07-19T01:34:14.266Z",
  "updated": "2022-07-19T01:34:14.266Z",
  "policy_definition_id": null,
  "custom_policy": {  
    "function_urn": "urn:fss:regionid_1:projectidforpolicy:function:default:test_consume_policy:latest",  
    "auth_type": "agency",  
    "auth_value": {"agency_name": "rms_fg_agency"}
  },
  "parameters": {
        "vpcId": {"value": "allowed-vpc-id"}
    }
  }
  "tags": [],
  "created_by": "custom"
}
```
#### 规则评估结果
当触发规则评估后，会生成相应的评估结果（PolicyState）。
使用JSON表达式来表示一个评估结果，如[表3]所示。
 表3规则评估结果-JSON表达式格式 
| 参数                   | 定义            | 说明                                                                                                                                                                                                                                       |
|:---|:---|:---|
| domain_id            | 账号ID          | 用于区分用户。规则评估结果的domain_id不会为空。                                                                                                                                                                                                             |
| resource_id          | 评估结果所属资源的ID   | -                                                                                                                                                                                                                                        |
| resource_name        | 评估结果所属资源的名称   | -                                                                                                                                                                                                                                        |
| resource_provider    | 资源所属的服务       | -                                                                                                                                                                                                                                        |
| resource_type        | 资源类型          | -                                                                                                                                                                                                                                        |
| trigger_type         | 触发类型          | 包含如下值： - resource  - period                         |
| compliance_state     | 合规结果          | 包含如下值： - **Compliant：**合规  - **NonCompliant：**不合规   |
| policy_assignment_id | 评估结果对应合规规则的ID | -                                                                                                                                                                                                                                        |
| policy_definition_id | 评估结果对应合规策略的ID | -                                                                                                                                                                                                                                        |
| evaluation_time      | 评估时间戳         | -                                                                                                                                                                                                                                        |
   
如下JSON表示了一个不合规的评估结果：
```
{
  "domain_id": "domainidforpolicy",
  "resource_id": "special-ecs1-with-public-ip-with-tag",
  "resource_name": "ecs1-with-public-ip-with-tag",
  "resource_provider": "ecs",
  "resource_type": "cloudservers",
  "trigger_type": "resource",
  "compliance_state": "NonCompliant",
  "policy_assignment_id": "5fa9f8a2501013093a192b07",
  "policy_definition_id": "5fa9f8a2501013093a192b06",
  "evaluation_time": 1604974757084
}
```
#### 相关链接
- [资源合规规则](https://support.huaweicloud.com/usermanual-rms/rms_05_0800.html)
- [组织合规规则](https://support.huaweicloud.com/usermanual-rms/rms_05_0700.html)
- [查看不合规资源](https://support.huaweicloud.com/usermanual-rms/rms_05_0900.html)
- [合规规则修正配置](https://support.huaweicloud.com/usermanual-rms/rms_05_1000.html)
- [系统内置预设策略](https://support.huaweicloud.com/usermanual-rms/rms_05_0501.html)
- [资源合规事件监控的事件说明](https://support.huaweicloud.com/usermanual-rms/rms_05_0601.html)
 
