文档

权限管理

更新时间:
一键部署

云上的权限管理是为了控制某个身份在什么条件下对哪些资源能够执行哪些操作。阿里云上的授权方式分为以下几种:

  1. 基于身份的授权:主要是指针对 RAM 用户、用户组或角色进行授权。

  2. 基于资源的授权:部分云产品支持为某个特定资源绑定权限。如 OSS 的 Bucket Policy,支持向其他账号的 RAM 用户授予访问权限,以及向匿名用户授予带特定 IP 条件限制的访问权限。

  3. 管控策略(Control Policy):管控策略是一种针对启用了资源目录(Resource Directory,简称 RD)的多账号组织,基于资源结构(资源夹或成员)的访问控制策略,可以统一管理资源目录各层级内资源访问的权限边界,建立企业整体访问控制原则或局部专用原则。管控策略只定义权限边界,并不真正授予权限。

  4. 会话策略(Session Policy):在角色扮演的过程中,可以指定一个会话策略,定义本次扮演中可以获得权限,进一步缩小角色权限的范围。同样,会话策略只限定权限,并不真正授予权限。

无论基于何种授权方式,合理的权限设置能够阻止未经授权的访问,保护云上资产和数据的安全。因此,云上的权限管理的核心原则就是权限最小化,只给身份授予必要的权限,确保权限最小够用。

基于该原则,针对不同身份类型的授权,在阿里云上有以下最佳实践可以参考。

人员身份的权限管理

基于人员职能进行授权

对于组织来说,不同职责的人需要访问云上不同类型的资源。安全管理员往往需要访问安全产品,如云安全中心、云防火墙等,但数据库管理员往往只需要访问数据库相关的产品,如云数据库 RDS 等。但对于同一职责,尤其是一些基础职能,如财务、数据库管理员、安全管理员、审计员等,所需要访问和管理的资源范围往往是一致的。因此,建议针对人员职能划分,进行权限的抽象,简化授权过程,降低管理成本。

在对职能权限进行抽象后,可以通过将人员身份加入到指定职能用户组的方式进行组织,提升授权效率。

按资源范围授权

虽然权限管理的核心原则是最小化授权,但如果为组织中的每个人员身份都定制化权限,对于大型组织来说,会大大降低管理效率。因此,按照人员所管理的业务应用对应的资源范围进行授权,能够简化授权逻辑,提高权限策略复用率,进而在权限最小化和管理效率中取得平衡。

在云上,建议通过阿里云账号或资源组两种方式,区分不同业务应用的资源。如果企业使用多个阿里云账号管理云资源,则可以使用资源目录构建企业组织结构,对账号和资源进行集中、有序地管理,不同的业务应用按账号维度进行区分,授权时应用范围选择整个云账号。如果企业使用一个阿里云账号管理所有云资源,各个项目组可以使用资源组作为资源隔离和权限管理的容器,在授权时应用范围选择指定资源组。

因此,在用云过程中通过合理的资源规划,按照资源范围进行授权,能够提升整体的权限管理效率。

程序身份的权限管理

精细化授权

除一些特定业务场景外,应用程序所需要访问的阿里云资源,对应进行的操作是可以预期的,尽可能的通过自定义权限策略来定义该程序身份所需要的最小权限。比如一个用户社区需要展示用户头像,支持头像上传,那么该程序仅需要特定 OSS Bucket 的 GetObject 和 PutObject 权限即可。相反,如果直接使用系统策略,给该程序授予 AliyunOSSFullAccess 权限,那么一旦该程序身份泄漏,攻击者就有该云账号下所有 OSS Bucket 的所有权限,风险极高。

通用的最佳实践

定期审查权限

在授权完成后,还需要定期对权限的授予进行审计确保每个身份的权限持续满足最小够用原则。需要重点关注的场景:

  1. 特权身份:比如拥有所有产品权限的管理员,拥有 RAM 等管理与治理相关产品所有权限的身份,都属于重点审计对象。确保这些身份拥有这些特权是合理的。

  2. 闲置权限:除了特权身份外,对于其他产品权限,也可以结合云上的操作审计日志,判断该身份的权限是否有闲置情况。

设置权限边界

对于云上有多个阿里云账号的组织,可以基于资源目录管控策略,限制成员账号内的 RAM 身份权限范围,禁用一些高危操作降低身份泄漏风险。如禁止成员删除域名或修改域名解析记录、禁止成员删除日志记录等。

在绑定管控策略前,建议先进行局部小范围测试,确保策略的有效性与预期一致,然后再绑定到全部目标节点(资源夹、成员)。