大型企业、组织使用云平台时,需要考虑多个员工、多种角色的权限划,比如,
- 管理员和使用者权限分离
- 不同部门赋予不同权限
- 严格控制某些敏感操作或敏感资源的权限
腾讯云提供了访问管理(CAM)来帮助客户实现权限管理,借助CAM可实现权限的精细化控制和高效管理,
本文目的是通过对CAM的要点介绍,帮助客户快速了解CAM和相关最佳实践,在了解这些后,再结合CAM的官方文档可以更高效的设计适合组织的权限管理策略。
一、概要说明
1、什么是访问管理(CAM)
访问管理CAM是腾讯云提供的权限管理类功能,结合子账号能力,实现多账号登录 子账号权限控制的效果。
CAM文档首页:https://cloud.tencent.com/document/product/598
CAM控制台:https://console.cloud.tencent.com/cam/overview
2、CAM可实现的效果
常见的应用场景如下,
- 创建管理员账号:给子账号赋予Administer权限即可给予主账号全量权限,
- 读写权限分离:腾讯云的API操作已默认按读写分类,同时预置策略支持,
- 创建普通员工账号并赋予:通过腾讯云控制台可以创建子账号,给子账号绑定一个受限制的自定义策略即可,
- 划分资源仅部分账号可见:借助标签(TAG)能力,将资源,
- 给同岗位员工赋予相同权限:通过CAM的角色能力实现。
3、CAM策略原理
CAM的权限策略由3个最基本的属性组成权限规则,
- 子账号:赋予使用者的账号,可协同主账号共同管理账号下资源,并被主账号进行权限管理,
- 操作:用户可以对资源进行的操作,背后就对应云API,比如RunInstance是创建CVM,
- 资源:对应具体云资源,比如一台云服务器CVM,一个虚拟网络VPC,
当然为了方便实用,再基本元素之上也提供了高阶功能,比如用角色可以实现给多个子账号赋予相同策略,自定义策略可以包含涉及多个资源的多个操作配置。
三、最佳实践推荐
1、粒度越细越安全
- 尽量给每个部门或者每个人一个子账号,
- 除了分离权限,腾讯云默认的操作审计能力会记录每个子账号的每个操作,包含来源IP、子账号ID等信息,可以有效分析异常行为。
2、主账号、管理员、使用者分离
- 主账号具备最高权限,不建议日常使用,仅作为备用手段,不允许日常登录和操作,严格限制登录IP,
- 创建多个具备权限子账号,作为管理员,
- 创建多个只具备一定操作权限和一定资源权限的子账号,作为使用者
3、严格控制高敏感权限
- 关闭财务权限,禁止子账号进行任何消费行为
- 关闭CAM权限,禁止子账号对CAM进行管理
4、读写权限分离
- CAM中所有操作天然分读写属性,比如创建CVM为写操作,查看CVM为读操作
- 资源管理者分配读权限,仅查看资源则只分配读权限
5、通过角色为不同岗位员工快速分配操作权限
- 角色可以认为是一类模板工具,角色可以绑定给子账号,从而快速将角色附带的策略应用多个子账号之上
- 比如定义「运维」、「研发」、「产品」等角色,然后绑定给指定员工子账号
6、通过标签为不同团队员工划分不同资源权限
- 腾讯云绝大部分云资源都可以进行打标签操作
- 子账号赋予权限时,可以通过标签进行模糊匹配
- 以上2个能力结合,可以实现指定子账号仅可见指定标签的资源
四、实际操作案例(创建子账号、并限制仅可见部分指定CVM)
1、准备测试资源
准备两台云服务器CVM,后续配置将实现,主账号可见所有实例,子账号A仅可见部分实例。
2、创建和配置标签
给实例A配置标签 User:UserA(可任意自定义字段,与后续子账号绑定标签时匹配即可),
实例B无需绑定标签,按照本指引配置完成后,没有绑定标签的实例,子账号A均不可见。
3、创建子账号
进入 访问管理CAM 控制台,选择「用户-用户列表-快速创建」,
仅需要配置以下两项,其他项暂时可不管,配置完成后点击「创建用户」,
- 用户名:UserA(可以随意指定,仅做参考)
- 用户权限:删除掉「AdministratorAccess」,否则子账号将拥有所有权限
4、创建策略,并给子账号绑定策略
回到 访问管理CAM 控制台,选择「策略-创建自定义策略-按标签授权」,
在第一步配置以下2个操作,
- 添加服务与操作:选择「云服务器CVM-全部操作」
- 选择标签:选择步骤2中创建并绑定到实例A上的标签
然后选择「下一步」,关联步骤3中创建的子账号,点击「完成」,可以进入子账号UserA的详情页中查看绑定的策略。
5、登录子账号
进入用户UserA的详情列表,可以获取快捷登录的链接,同时记得进入上图的「安全」页签里去设置初始密码。
6、检验配置效果
可以看到子账号UserA仅能看到带有User:UserA的标签的实例A,没有指定标签的实例B不可见了,效果符合预期。