すべてのプロダクト
Search
ドキュメントセンター

Cloud Config:カスタム条件ルールの基本要素

最終更新日:Jan 18, 2025

Cloud Config は、ルールをデプロイおよび実装する方法の 1 つとして、カスタム条件ルールを使用します。カスタム条件ルールは、リソース、条件、DryRun などの複数の基本要素で構成されます。

条件は、カスタム条件ルールの重要な要素です。これは条件句で構成されます。複数の句を論理 AND 演算子と論理 OR 演算子を使用して組み合わせることで、より複雑な論理構造を形成できます。論理演算子によって連結された句のグループは、条件グループと呼ばれます。句は条件グループの本質であり、featurePath、operator、および desired の要素で構成されます。

要素

必須

説明

featurePath

はい

リソース特性。リソースのプロパティまたはリソースの関連ソース特性は、JSONPath を使用して記述されます。たとえば、リソースステータスのプロパティは Status であり、特性の記述は $.Status です。

featureSource

はい

リソース特性のソース。

operator

はい

条件演算子。

desired

いいえ

単項演算子。desired 要素は空のままにすることができます。演算子の例は IsStringEmpty です。

featurePath

ポリシーは JSONPath 形式をサポートしています。ポリシーを作成または更新すると、Cloud Config はポリシーが JSONPath 構文標準を満たしているかどうかを確認します。サードパーティの JSONPath バリデーターおよびエディターを使用して、ポリシーが JSONPath 構文標準を満たしているかどうかを確認することもできます。 JSONPath 構文標準の詳細については、「JSONPath」をご参照ください。

JSONPath

説明

$

ルート オブジェクトまたは要素。

@

現在のオブジェクトまたは要素。

. or []

子演算子。

..

再帰下降。JSONPath はこの構文を E4X から借用しています。

*

ワイルドカード。名前を問わず、すべてのオブジェクトまたは要素。

[]

添え字演算子。XPath はこれを使用して要素コレクションと述語を反復処理します。Javascript および JSON では、これはネイティブ配列演算子です。

[,]

XPath の Union 演算子は、ノード セットの組み合わせになります。JSONPath では、代替名または配列インデックスをセットとして使用できます。

[start:end:step]

ES4 から借用した配列スライス演算子。

?()

フィルター (スクリプト) 式を適用します。

()

基になるスクリプト エンジンを使用するスクリプト式。

  • 例 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 (デフォルト値): リソース プロパティの構成。featureSource 要素が空のままの場合でも、システムはリソース プロパティに基づいて処理を実行します。

  • 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

パブリック CIDR ブロックが含まれていません。

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

desired 要素は空のままにすることができます。演算子の例は IsStringEmpty です。