跳到主要内容

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文件);