本文為您介紹標簽策略繼承和有效策略計算的方法,包括基本概念、工作原理和示例。
基本概念
概念 | 說明 |
策略繼承 | 標簽策略是按照資源目錄的層級從上到下進行繼承的。當策略綁定到資源目錄的資源夾,該資源夾下的子資源夾和成員都會繼承該策略。 |
父策略 | 在資源目錄的樹形組織結構上,綁定層級較高的策略相對于綁定層級較低的策略,稱為父策略。 |
子策略 | 在資源目錄的樹形組織結構上,綁定層級較低的策略相對于綁定層級較高的策略,稱為子策略。 |
有效策略 | 成員直接綁定的策略和繼承的父策略會經過聚合,計算出一個最終策略,該最終策略就是成員上要執行的有效策略。 |
繼承操作符 | 繼承操作符用于控制繼承的標簽策略和當前綁定的標簽策略如何進行聚合,進而計算出最終的有效策略。更多信息,請參見繼承操作符。 |
工作原理
當前賬號標簽策略
如果為當前登錄的阿里云賬號綁定了多個標簽策略,則會根據策略內容的標簽鍵進行合并。如果存在沖突的標簽鍵策略配置,則根據策略的綁定時間進行判斷,綁定時間早的策略為有效策略。
資源目錄標簽策略
資源目錄的管理賬號可以將標簽策略綁定到資源目錄的不同層級(Root資源夾、資源夾或成員)。具體如下:
當策略綁定到Root資源夾時,所有的資源夾和成員都繼承這個策略。
當策略綁定到指定資源夾時,該資源夾下的所有成員和子資源夾都繼承這個策略。
當策略綁定到指定成員時,該策略僅在該成員上生效。
示例
如下以一個企業要求資源必須綁定環境標簽env
和項目標簽Project
為例,為您介紹策略繼承和有效策略的含義。
為資源目錄的Root資源夾配置名為PolicyA的標簽策略。
PolicyA策略內容如下:
{ "tags": { "env": { "tag_key": { "@@assign": "env" }, "tag_value": { "@@assign": [ "Production", "Test" ] } }, "Project": { "tag_key": { "@@assign": "Project" } } } }
PolicyA中定義了
env
和Project
標簽鍵的規范,并綁定在資源目錄Root資源夾上。將產生如下效果:資源目錄的所有成員都必須遵守PolicyA,即資源必須擁有
env
和Project
才被認為是合規的,而且env
的標簽值取值范圍為Production
和Test
。為Root資源夾下的指定成員配置名為PolicyB的標簽策略。
PolicyB策略內容如下:
{ "tags": { "env": { "tag_value": { "@@append": [ "Development" ] } }, "Project": { "tag_value": { "@@assign": [ "A", "B" ] } } } }
PolicyB定義了
env
標簽鍵要追加的標簽值范圍為Development
,Project
標簽鍵對應的標簽值范圍為A
和B
。計算指定成員的有效策略。
PolicyB綁定在指定成員上,則該成員上最終執行的有效策略為PolicyA和PolicyB的合并,即該成員綁定
env
和Project
取值范圍內的標簽值都是合規的。標簽值的取值范圍如下:標簽鍵
標簽值
env
Production
Test
Development
Project
A
B
有效策略內容如下:
{ "tags": { "env": { "tag_value": [ "Production", "Test", "Development" ] , "tag_key": "env" }, "Project": { "tag_value": [ "A", "B" ], "tag_key": "Project" } } }