合规策略
合规策略是一个可以用于评估资源是否合规的逻辑表达式。将合规策略应用到资源上时,可以评估出这个资源是否满足合规策略中的要求。
合规策略本身只是一个静态的逻辑,如果想要让其生效,必须将合规策略指定到一个具体的范围(例如通过设置过滤器来指定具体的资源范围)上,即生成一个具体的合规规则。
使用JSON表达式来表示一个合规策略定义,如表1所示。
参数 |
定义 |
说明 |
---|---|---|
id |
合规策略的唯一标识符 |
- |
name |
合规策略的名称 |
name最大长度为64个字符。 |
display_name |
合规策略的展示名 |
display_name最大长度为64个字符。 |
description |
合规策略的描述 |
description最大长度为512个字符。 |
parameters |
合规策略的规则参数,即每个合规策略下包含的参数。 具有如下属性:
|
合规策略中包含的参数名称保持不变,您可以根据需要设置不同的值。
|
keywords |
合规策略关键词 |
一般为与合规策略相关的产品简称。 |
policy_type |
合规策略的类型。 主要有以下类型:
|
|
policy_rule_type |
合规策略的语法类型 |
DSL:一种Config服务提供的合规策略描述语言,用户可以根据此语法,将合规判断逻辑描述为一个具体的合规策略。 |
trigger_type |
触发类型。 有以下类型:
|
|
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')}" } ] }, }
更多样例详见自定义合规规则样例。