更新时间:2024-07-05 GMT+08:00
标签策略语法
标签策略基本语法
以下标签策略显示了基本标签策略语法:
{ "tags": { "costcenter": { <!-- 策略键 --> "tag_key": { "@@assign": "CostCenter" <!-- 标签键 --> }, "tag_value": { "@@assign": [ "100", <!-- 策略值 --> "200" ] }, "enforced_for": { <!-- 强制执行 --> "@@assign": [ "apig:instance" <!-- 服务和资源类型 --> ] } } } }
- 策略键:唯一标识策略语句的策略键。它必须与标签键的值相匹配,除了大小写处理。
- 标签键:值必须跟策略键一致,但可以有多种大小写形式。如果不指定标签键,则默认为全部小写,即便策略键有大写也会使用全部小写指定。例如策略键指定为costcenter,标签键指定为CostCenter,则后续检验规则以CostCenter为准;策略键指定为CostCenter,标签键不指定,则后续校验规则以costcenter为准。
- 策略值:一个或多个可接受标签值的列表。如果标签策略没有为标签键指定标签值,则任何值(包括没有值)都将视为合规。
- 强制执行:表示阻止对指定服务和资源执行任何不合规标记操作。如未指定任何服务和资源类型,则此标签策略不会对任何资源生效。
- 通配符:可以在标签值和强制执行字段中使用通配符 "*",不过必须遵循以下约束:
- 每个标签值仅使用一个通配符。例如,允许使用 *@example.com,但不允许使用 *@*.com。
- 对于强制执行,可以用“<service>:*”对该服务的所有资源启用强制执行。但是不能使用通配符指定所有服务或指定所有服务的某个资源。
继承运算符
在标签策略样例中,标签键,标签值和强制执行中使用了"@@assign"标识,该标识即为继承运算符。
继承运算符指定标签策略如何与组织树中的其他标签策略合并,以创建账号的有效标签策略。运算符包括值设置运算符和子控制运算符。
- 值设置运算符
您可以使用以下值设置运算符来控制策略与其父策略交互的方式:
表1 值设置运算符 运算符
说明
@@assign
用指定设置覆盖任何继承的策略设置。如果未继承指定的设置,则此运算符会将该设置添加到有效策略中。此运算符可以应用于任何类型的任何策略设置。
对于单值设置,此运算符将继承的值替换为指定值。
对于多值设置(JSON数组),此运算符将删除所有继承的值,并将其替换为此策略指定的值。
@@append
向继承的设置添加指定的设置(而不删除任何设置)。如果未继承指定的设置,则此运算符会将该设置添加到有效策略中。只能将此运算符用于多值设置。
此运算符将指定的值添加到继承数组中的任何值。
@@remove
从有效策略中删除指定的继承设置(如果存在)。只能将此运算符用于多值设置。
此运算符仅从继承自父策略的值数组中删除指定值。其他值可以继续存在于数组中,并且可由子策略继承。
- 子控制运算符
默认情况下,允许所有运算符 (@@all)。
- "@@operators_allowed_for_child_policies":["@@all"]表示:子OU和账号可以在策略中使用任何运算符。默认情况下,子策略中允许使用所有运算符。
- "@@operators_allowed_for_child_policies":["@@assign", "@@append", "@@remove"]表示:子OU和账号只能在子策略中使用指定的运算符。您可以在此子控制运算符中指定一个或多个值设置运算符。
- "@@operators_allowed_for_child_policies":["@@none"]表示:子OU和账号不能在策略中使用运算符。可以使用此运算符有效锁定在父策略中定义的值,以使子策略无法添加、追加或删除这些值。
父主题: 标签策略管理