本文介紹RAM中權限原則的文法和結構,協助您正確理解權限原則文法,以完成建立或更新權限原則。
前提條件
運用策略文法前,您應瞭解策略字元及其使用規則。
權限原則字元如下:
權限原則中所包含的JSON字元:
{ } [ ] " , :
。描述文法使用的特殊字元:
= < > ( ) |
。
字元使用規則如下:
當一個元素允許多值時,可以使用下述兩種方式表達,效果相同。
使用半形逗號(,)和省略符號(...)進行表達。例如:
[ <action_string>, <action_string>, ...]
。使用單值進行表達。例如:
"Action": [<action_string>]
和"Action": <action_string>
。
元素帶有半形問號(?)表示此元素是一個可選元素。例如:
<condition_block?>
。多值之間用豎線(|)隔開,表示取值只能選取這些值中的某一個。例如:
("Allow" | "Deny")
。使用雙引號("")的元素,表示此元素是文本串。例如:
<version_block> = "Version" : ("1")
。
權限原則結構
權限原則結構包括:
版本號碼。
授權語句列表。每條授權語句包括授權效果(Effect)、操作(Action)、資源(Resource)以及條件(Condition,可選項)。
權限原則文法
policy = {
<version_block>,
<statement_block>
}
<version_block> = "Version" : ("1")
<statement_block> = "Statement" : [ <statement>, <statement>, ... ]
<statement> = {
<effect_block>,
<action_block>,
<resource_block>,
<condition_block?>
}
<effect_block> = "Effect" : ("Allow" | "Deny")
<action_block> = "Action" :
("*" | <action_string> | [<action_string>, <action_string>, ...])
<resource_block> = "Resource" :
("*" | <resource_string> | [<resource_string>, <resource_string>, ...])
<condition_block> = "Condition" : <condition_map>
<condition_map> = {
<condition_type_string> : {
<condition_key_string> : <condition_value_list>,
<condition_key_string> : <condition_value_list>,
...
},
<condition_type_string> : {
<condition_key_string> : <condition_value_list>,
<condition_key_string> : <condition_value_list>,
...
}, ...
}
<condition_value_list> = (<condition_value> | [<condition_value>, <condition_value>, ...])
<condition_value> = ("String" | "Number" | "Boolean" | "Date and time" | "IP address")
權限原則文法說明:
版本:當前支援的權限原則版本,固定為1,不允許修改。
授權語句:一個權限原則可以有多條授權語句。
每條授權語句的效果為:
Allow
或Deny
。說明一條授權語句中,操作(Action)和資源(Resource)都支援多值。
每條授權語句都支援獨立的條件(Condition)。
說明一個條件塊支援多個條件的組合,每個條件的操作類型可以不同。
Deny優先原則: 一個使用者可以被授予多個權限原則。當這些權限原則同時包含
Allow
和Deny
時,遵循Deny優先原則。元素取值:
當元素取值為字串類型(String)、數字類型(Number)、日期類型(Date and time)、布爾類型(Boolean)和IP地址類型(IP address)時,需要使用雙引號("")。
當元素取值為字串值(String)時,支援使用
*
和?
進行模糊比對。*
代表0個或多個任意的英文字母。 例如:ecs:Describe*
表示ECS的所有以Describe
開頭的操作。?
代表1個任意的英文字母。
權限原則格式檢查
權限原則支援JSON格式。當您建立或更新權限原則時,系統會檢查JSON格式的正確性。您也可以使用第三方JSON格式驗證器和編輯器自行檢查JSON格式的正確性。關於JSON文法標準,請參見RFC 7159。