合规策略
合规策略是一个可以用于评估资源是否合规的逻辑表达式。将合规策略应用到资源上时,可以评估出这个资源是否满足合规策略中的要求。
合规策略本身只是一个静态的逻辑,如果想要让其生效,必须将合规策略指定到一个具体的范围(例如通过设置过滤器来指定具体的资源范围)上,即生成一个具体的合规规则。
使用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')}"
}
]
},
}
更多样例详见自定义合规规则样例。