合规策略 合规策略是一个可以用于评估资源是否合规的逻辑表达式。将合规策略应用到资源上时,可以评估出这个资源是否满足合规策略中的要求。 合规策略本身只是一个静态的逻辑,如果想要让其生效,必须将合规策略指定到一个具体的范围(例如通过设置过滤器来指定具体的资源范围)上,即生成一个具体的合规规则。 使用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服务提供和维护。详见系统内置预设策略。 custom: 用户自定义策略,用户创建的所有合规策略定义都具有此值。 policy_rule_type 合规策略的语法类型 DSL:一种Config服务提供的合规策略描述语言,用户可以根据此语法,将合规判断逻辑描述为一个具体的合规策略。 trigger_type 触发类型。 有以下类型: resource period resource:在指定的资源发生更改时运行。 period:按照您设定的频率运行。 default_resource_types 合规策略评估的资源类型 大部分合规策略只评估部分的资源类型。创建合规规则时,建议只评估“default_resource_types”中的资源类型。 如下JSON表示了一个用于检查E
CS 实例的镜像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')}"
}
]
},
} 更多样例详见自定义合规规则样例。 父主题: 合规规则概念详解