全部產品
Search
文件中心

Cloud Config:自訂條件規則的基本元素說明

更新時間:Jul 13, 2024

配置審計使用自訂條件規則作為規則部署實施的方式之一,自訂條件規則由資源(Resource)、條件(Condition)、調試(DryRun)等基本元素組成。

條件(Condition)是自訂條件規則的重點元素,由條件子句構成,多個子句之間可以通過邏輯與(and)和邏輯或(or) 一起構成更為複雜的邏輯結構。由邏輯符串聯的一組子句稱為條件組。子句是整個條件組的精華,由特徵(featurePath)、操作符(operator)和預期值(desiredValue) 組成。

元素名稱

是否必選

描述

特徵(featurePath)

資源特徵。取自資源(Resource)的屬性或其相關的來源特徵,通過JSONPath描述,例如:資源狀態屬性為Status, 用特徵描述為$.Status

特徵來源(featureSource)

資源特徵的來源。

操作符(operator)

條件的操作符。

預期值(desired)

一目操作符的情況。允許為空白,例如:操作符為IsStringEmpty。

特徵(featurePath)

權限原則支援JSONPath格式。當您建立或更新權限原則時,配置審計會檢查JSONPath格式的正確。您也可以使用第三方JSONPath格式驗證器和編輯器自行檢查JSONPath格式的正確性。關於JSONPath文法標準,請參見JSONPath

JSONPath

Description

$

the root object/element

@

the current object/element

. or []

child operator

..

recursive descent. JSONPath borrows this syntax from E4X.

*

wildcard. All objects/elements regardless their names.

[]

subscript operator. XPath uses it to iterate over element collections and for predicates. In Javascript and JSON it is the native array operator.

[,]

Union operator in XPath results in a combination of node sets. JSONPath allows alternate names or array indices as a set.

[start:end:step]

array slice operator borrowed from ES4.

?()

applies a filter (script) expression.

()

script expression, using the underlying script engine.

  • 樣本1:ACS::ECS::Instance狀態特徵$.Status 類型判定為String,會推薦String類型的操作符。

  • 樣本2:ACS::ECS::Instance標籤特徵$.Tags[*].TagKey,結果為Array。

  • 樣本3:ACS::ECS::SecurityGroup安全性群組許可權配置特徵$.Permissions.Permission[?(@.Policy=='Accept')][?(@.IpProtocol=='TCP' || @.IpProtocol=='UDP')][?(@.SourceCidrIp=='0.0.0.0/0')].PortRange,表示允許條目為TCP或UDP協議且來源IP為任意IP的連接埠,可以配置連接埠是否包括22和3389等。

    {
          "featureSource": "CONFIGURATION",
          "desired": "21/21,22/22,23/23,3389/3389,445/445,-1/-1",
          "children": [],
          "operator": "ExcludeAll",
          "featurePath": "$.Permissions.Permission[?(@.Policy=='Accept')][?(@.IpProtocol=='TCP' || @.IpProtocol=='UDP')][?(@.SourceCidrIp=='0.0.0.0/0')].PortRange"
        }

特徵來源(featureSource)

資源特徵的來源,具體如下:

  • CONFIGURATION(預設值):資源屬性配置。空值也按照資源屬性處理。

  • RESOURCE_RELATIONSHIP_${targetResourceType}:資源關係,例如:RESOURCE_RELATIONSHIP_ACS::ECS::DISK

操作符(operator

操作符包括邏輯操作符和計算操作符,邏輯操作符包括邏輯與(and)和邏輯或(or),計算操作符如下表所示。

操作符

描述

SizeLess

數組元素個數小於

DistinctSizeGreater

元素去重後個數大於

AllGreaterOrEquals

元素全部大於等於

InAllItem

所有元素包含

AllLessOrEquals

元素全部小於等於

AllGreater

元素全部大於

SizeGreater

數組元素個數大於

NotContainsIP

數組中不包含指定的IP地址

ContainsIP

數組中包含指定的IP地址

ContainsAny

數組中不包含目標數組中的任意對象

NotContainsNull

數組中不包含空元素

NotContainsInternetCidr

不包含公網IP位址區段

IsNotEmpty

不為空白

AllIn

全部存在

IsEmpty

為空白

ExcludeAll

排除全部

ContainsAll

包含全部

NotIn

不存在

In

存在

NotContains

不包含

Contains

包含

NotBase64Contains

不包含

Base64Contains

包含

NotBoolEquals

不等於

BoolEquals

等於

NotEquals

不等於

Equals

等於

LessOrEquals

小於等於

Less

小於

Greater

大於

GreaterOrEquals

大於等於

StringItemSizeGreater

字串分割元素個數大於指定值

StringMatch

匹配正則

NotStringTrimIn

有效值不存在

StringTrimIn

有效值存在

IsNotStringEmpty

不為空白

IsStringEmpty

為空白

NotStringContains

不包含

StringContains

包含

NotStringIn

不存在

StringIn

存在

NotStringEquals

不等於

StringEquals

等於

預期值(desired)

允許為空白,例如:操作符為IsStringEmpty。