CIAM基本概念
CIAM 賬戶 (CIAM Account)
賬戶是資源歸屬、資源使用計量計費主體。當用戶開始使用雲服務時,首先需要註冊一個賬戶。賬戶為其名下所擁有的資源付費,並對其名下所有資源擁有完全許可權。
預設情況下,資源只能被屬主訪問,任何其他使用者訪問都需要獲得屬主的顯式授權。所以從許可權管理的角度來看,賬戶就是作業系統的root或Administrator,所以我們有時稱它為“根賬戶”或“主賬戶”。
每個賬戶建立時自動生成AccessKey/SecretKey,賬戶使用其AccessKey/SecretKey來訪問其名下資源。所以賬戶應該小心其儲存其金鑰對,任何情況下都不應該向其他人洩露金鑰對資訊。當用戶發現其金鑰對洩露時,應立即更換。
CIAM子使用者 (CIAM User)
CIAM允許在一個賬戶下建立多個CIAM子使用者(可以對應企業內的員工、系統或應用程式)。不同於CIAM賬戶,CIAM子使用者不擁有資源,沒有獨立的計量計費,這些由CIAM賬戶統一負責。
CIAM子使用者歸隸屬CIAM賬戶,只能在CIAM賬戶下可見。預設情況下CIAM子使用者沒有任何資源訪問許可權,CIAM子使用者在獲得CIAM賬戶的授權後方可訪問其下的資源。
CIAM群組 (CIAM User Group)
透過CIAM子使用者,每個CIAM 賬戶可以控制自己的資源訪問。透過CIAM群組,可以將同一個賬戶下的多個CIAM子使用者組織起來,以CIAM群組為單位管理資源訪問,可極大簡化多使用者的許可權管理。
CIAM賬戶、群組和子使用者之間的關係如下圖所示:
授權策略(CIAM Policy)
授權策略是一組許可權的集合,它以一種策略語言形式來描述,每種授權策略描述特定資源的訪問許可權。
透過給使用者或群組附加授權策略,使用者或群組中的所有使用者就能獲得授權策略中指定的訪問許可權。
一個典型的授權策略如下:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "cec:Describe*",
"Resource": "ccs:cec:cn-hangzhou:*:*"
},
{
"Effect": "Allow",
"Action": [
"cos:ListObjects",
"cos:GetObject"
],
"Resource": [
"ccs:cos:*:*:mybucket",
"ccs:cos:*:*:mybucket/*"
]
}
]
}
使用者的資源訪問控制便是將各種雲資源透過授權策略繫結至其他使用者。
資源
資源是雲服務抽象出來的操作物件, 比如COS的桶或者物件, CEC例項等, 資源格式定義如下:
ccs::::
- ccs:雲平臺縮寫;
- service-name:雲服務名稱,如CEC,COS等;
- region: 資料中心名稱;
- account-Id:賬號Id;
- resource-relative-Id:每個服務定義的資源描述,在COS裡,"ccs:cos::123456789:bucket/1.txt" 表示一個物件;
操作
操作是對雲服務的資源進行訪問的動作的抽象, 比如在COS某個桶裡面上傳檔案,關閉CEC某個例項等,操作格式定義如下:
:
- service-name:雲服務名稱,如CEC,COS等;
- action:跟具體的服務相關,對應雲服務的某個介面名,比如 cec:StopInstance(停止雲主機例項), cos:GetObject(下載cos檔案);