全部產品
Search
文件中心

Resource Access Management:權限原則文法和結構

更新時間:Feb 22, 2024

本文介紹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,不允許修改。

  • 授權語句:一個權限原則可以有多條授權語句。

    • 每條授權語句的效果為:AllowDeny

      說明

      一條授權語句中,操作(Action)和資源(Resource)都支援多值。

    • 每條授權語句都支援獨立的條件(Condition)。

      說明

      一個條件塊支援多個條件的組合,每個條件的操作類型可以不同。

  • Deny優先原則: 一個使用者可以被授予多個權限原則。當這些權限原則同時包含AllowDeny時,遵循Deny優先原則。

  • 元素取值:

    • 當元素取值為字串類型(String)、數字類型(Number)、日期類型(Date and time)、布爾類型(Boolean)和IP地址類型(IP address)時,需要使用雙引號("")。

    • 當元素取值為字串值(String)時,支援使用*?進行模糊比對。

      • *代表0個或多個任意的英文字母。 例如:ecs:Describe* 表示ECS的所有以Describe開頭的操作。

      • ?代表1個任意的英文字母。

權限原則格式檢查

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