跳到主要内容

Policy語法結構

Policy結構包括Policy版本號及授權語句列表。每個授權語句又包含Effect(授權型別)、Resource(資源列表)、Action(對資源所授予的操作許可權列表)。

Policy的基本結構如下:

Policy的基本結構

支援語法格式

目前CIAM僅僅支援JSON格式的Policy描述。當建立或更新Policy時,CIAM會首先檢查JSON格式的正確性。使用者也可以使用一些線上的JSON格式驗證器和編輯器來校驗JSON文字的有效性。

Policy語法

語法描述:

{
"Version": "1",
"Statement":
[
{
"Effect": "Allow | Deny",
"Action": "*" | [ , , ...],
"Resource": "*" | [, , ...]
}
...
]
}

Policy語法說明:

  • 當前支援的Policy版本為1。
  • 一個Policy可以有多條授權語句(Statement)。每條授權語句要麼是Deny,要麼是Allow。一條授權語句中,Action是一個支援多個操作的列表,Resource也是一個支援多個物件的列表。
  • 一個使用者可以被授予多個Policy,當這些Policy存在多條授權語句既包含有Allow又包含有Deny時,遵循Deny優先(只認Deny不認Allow)原則。
  • 當USD素取值為字串值時,可以支援()模糊匹配。比如,”cos:Get” 可以表示cos的所有以Get開頭的API操作名稱。

Version

許可權策略版本號

Effect

Effect取值為Allow或Deny,代表允許或者拒絕該動作。比如,

"Effect": "Allow"

Action

授權動作,Action取值為雲服務所定義的API操作名稱,其格式定義如下:

:

格式說明:

  • service-name: 服務名稱,如cec,cos等;
  • action-name: service相關的api操作介面名稱

樣例描述:

"Action": ["cos:ListBuckets","cec:Describe*"]

Resource

Resource通常指操作物件,比如CEC虛擬機器例項,COS儲存物件。我們使用如下格式來命名服務的資源。

ccs::::

格式說明:

  • ccs: 雲平臺縮寫
  • service-name: 服務名稱,如cec,cos,rds等
  • region: 資料中心,如果不支援該項,可以使用萬用字元“*”號來代替
  • account-id: 主賬戶ID,比如 1234567890123456,也可以用“*”代替
  • resource-relative-Id:每個服務定義的資源描述,可使用“*”。如在cos中,"ccs:cos:cn-hangzhou:123456789:bucket/1.txt" 表示一個物件,;

樣例描述:

"Resource": ["ccs:cos:cn-hangzhou:1234567890:bucket/1.txt","ccs:cec:cn-hangzhou:*:*"]

Policy樣例

下面該樣例包含兩條授權語句:第1條授權語句是允許對cos的mybucket儲存桶中的物件具有讀訪問許可權,第2條授權語句是允許對cec的杭州region所有資源有檢視許可權。

{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cos:ListObjects",
"cos:GetObject"
],
"Resource": [
"ccs:cos:*:*:mybucket",
"ccs:cos:*:*:mybucket/*"
]
},
{
"Effect": "Allow",
"Action": "cec:Describe*",
"Resource": "ccs:cec:cn-hangzhou:*:*"
}
]
}