Policy語法結構
Policy結構包括Policy版本號及授權語句列表。每個授權語句又包含Effect(授權型別)、Resource(資源列表)、Action(對資源所授予的操作許可權列表)。
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:*:*"
}
]
}