配置审计 Config-条件(condition)

时间:2023-11-01 16:20:34

条件(condition)

条件可以是一条单独的判断语句,也可以是一个嵌套的逻辑运算符。

判断语句的格式如下,其返回的是一个布尔值。它的作用是判断一个指定的值是否满足特定的要求。

{  "value": "...",  "comparator": "...",  "pattern": "..."}
  • value:此处为常量或者表达式,具体值的类型根据选择的比较符而定。例如:true、1、"hello"或"${resource().properties.metadata}"。
  • comparator:比较符。
  • pattern:此处为常量或者表达式。

支持的比较符(comparator)有以下几种:

  • "equals":比较value和pattern是否相等,类型可以是字符串,整数或者布尔;
  • "notEquals":结果与equals相反;
  • "equalsIgnoreCase":以忽略大小写的形式比较value和pattern是否相等,类型必须是字符串;
  • "like":对value和pattern进行字符串模糊匹配,你可以在pattern中添加"*"或者"?",其中"*"可以匹配0个或多个任意字符,"?"匹配一个任意字符,类型必须是字符串;
  • "notLike":结果与like相反;
  • "likeIgnoreCase":以忽略大小写的形式对value和pattern进行字符串模糊匹配,类型必须是字符串;
  • "contains":判断pattern是否是value的子串,类型必须是字符串;
  • "notContains":结果与contains相反;
  • "in":判断value是否在pattern中,pattern必须是数组类型,value可以是字符串或者整数类型;
  • "notIn":结果与in相反;
  • "containsKey":判断value是否包含键值pattern,value必须是object类型,pattern必须是字符串类型;
  • "notContainsKey":结果与containsKey相反;
  • "less":判断value是否小于pattern,类型可以是字符串或者整数;
  • "lessOrEquals":判断value是否不大于pattern,类型可以是字符串或者整数;
  • "greater":判断value是否大于pattern,类型可以是字符串或者整数;
  • "greaterOrEquals":判断value是否不小于pattern,类型可以是字符串或者整数。
条件内部嵌套逻辑运算符的例子:
{  "not": {    "anyOf": [      {        "value": "${resource().properties.metadata}",        "comparator": "notContainsKey",        "pattern": "systemEncrypted"      },      {        "value": "${resource().properties.metadata.systemEncrypted}",        "comparator": "equals",        "pattern": "0"      }    ]  }}
support.huaweicloud.com/usermanual-rms/rms_06_0502.html