1 产品介绍
访问控制(Cloud Access Management,CAM)是云平台提供的Web服务,主要用于帮助客户安全管理云平台账户下的资源的访问权限。用户可以通过 CAM 创建、管理和销毁用户(组),并使用身份管理和策略管理控制其他用户使用云平台资源的权限。
访问管理包括四个子模块:用户管理、云api密钥,策略管理,企业认证登录管理。用户管理可以创建子账户或用户组,并将主账户/子账户加入用户组中。通过创建云api密钥,可以使用密钥通过云api无限制地访问用户的云资源。策略管理模块用于创建及编辑访问控制策略,一个策略关联到用户/用户组,从而对用户进行灵活的权限控制。企业认证登录管理提供了通过企业账户登录云的能力,只需要按照介入文档完成接入流程即可。
2 技术优势
通过访问管理单一入口对账号进行集成统一管理,轻松易用,能做到精准权限配置,最小化 管理账户 权限粒度。
2.1 根账号资源的授权访问
可以将根账号的资源授权给其他人员,包括子账号或者其他根账号,而不需要分享根账号相关的身份凭证。
2.2 精细化的权限管理
可以针对不同的资源授权给不同的人员不同的访问权限。例如可以允许某些子账号拥有某个cos存储桶的读权限,而另外一些子账号或者根账号可以拥有某个co s存储对象的写权限等。这里的资源、访问权限、用户都可以批量打包。
2.3 最终一致性
cam目前支持多个地域,通过复制策略数据实现跨地域数据同步,虽然cam策略的修改会及时提交,不过跨地域的策略同步会导致策略生效的延迟;同时cam适用缓存来提高性能(目前是一分钟缓存),更新在缓存期后生效。
3 产品架构
3.1架构
cam包括授权和鉴权两个部件。授权部件完成用户策略的管理,鉴权部件完成云api的鉴权。
授权部分通过tce控制台访问管理模块进行策略部署,cam_grant将策略写入策略cdb。用户通过控制台或者直接调用业务api,业务api西安进行鉴权,鉴权通过后才能调用具体的业务服务接口。
cam依赖的外部服务有两个:
密钥服务
完成身份认证
cdb存储。
分布式存储策略,供cam_auth适用。
3.2 部署
目前在租户端和运营端,分别独立部署了一套cam系统,用于租户和运营人员的相关策略管理。目前cam主要用于tce3.0体系内部组件的权限管理相关。
4 产品详细设计
4.1 用户管理
专有云的用户帐号分为主帐号和子帐号,不同的租户对应不同的主帐号,一个主帐号下面可以带多个子帐号。一个子帐号也可以挂在多个主帐号下面,这样的用户在登录时需要选择使用哪个主帐号。在访问管理中可以添加子账号。
专有云支持添加用户组,可以把有相同权限、职责的用户放入同一个用户组。在访问管理中可以在一个用户组中添加、删除用户。
云平台主账号可通过用户管理功能对具有不同职责的分类用户进行管理。用户类型包括消息接收人、子用户等。
用户类型 | 登录云平台控制台 | 使用云平台api | 策略授权 | 消息通知 |
消息接收人 | 不支持 | 不支持 | 不支持 | 支持 |
子用户 | 支持(可选) | 支持(可选) | 支持 | 不支持 |
4.1.1 创建子账户
- 创建子账户(AddSubAccount)
- 验证验证码
- 校验当前登录用户所拥有的子账户不能超过1000个
- 判断登录用户账号是否是开发商账号的全局管理员
- 与主账号绑定,存储子账户属性。
- 创建登录用户
- 将用户添加到用户组(AddUserToGroup)
- 判断登录用户账号是否是开发商账号的全局管理员,如果不是返回异常。
- 将用户与用户组进行关联起来。
4.1.2 创建用户组
- 判断登录用户账号是否是开发商账号的全局管理员,如果不是返回异常。
- 根据uin判断用户是否存在。
- 如果组名已存在,返回异常。
- 创建用户组。
4.2 策略管理
策略管理包括权限、策略和授权管理。
- 权限。描述在某些条件下允许或拒绝执行某些操作访问某些资源。
- 策略。定义和描述一条或多条权限的语法规范。CAM支持两种类型的策略,预设策略和自定义策略。预设策略是由云平台创建和管理的一些常见的权限集合,如超级管理员、云资源管理员等,这类策略只读不可写。自定义策略是由用户创建的更精细化的描述对资源管理的权限集合。预设策略不能具体描述某个资源,粒度较粗,而自定义策略可以灵活的满足用户的差异化权限管理需求。
- 用户或者用户组可以绑定一个或多个策略完成授权。被授权的策略既可以是预设策略也可以是自定义策略。授权方式可以通过在策略页面选择用户或者在用户页面选择策略来完成。
策略(权限)由四部分构成,分别是effect(效力)、resource_name(资源)、action(操作)、condition(授权条件)。
{
"effect": "allow",
"action": "*",
"resource": "*",
"condition": {
"for_any_value:string_equal": {
"qcs:tag": [
"ttttag&123"
]
}
}
}
4.2.1 创建策略
有三种策略创建方式:按策略生成器创建,按策略语法创建,按标签创建。
4.3 云api密钥管理
每个账户最多创建两个密钥,每个密钥包括SecretId和SecretKey,由系统自动生成。可以在管理中禁用密钥,只有禁用的密钥可以进行删除操作。
4.3.1 创建密钥
由云api负责创建。
后端标识:tcloud-tcenter-cam
请求参数:uin,
应答:secretProjectId, secretId, status。
5 功能模块组件对应表
功能 | 模块 | 组件 | 功能组件说明 | 备注 |
权限 | 权限管理 | tcloud-tcenter-cam | 负责授权读写、鉴权、密钥等 |