本文来源于阿里云社区电子书《阿里云产品四月刊》
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(2)https://developer.aliyun.com/article/1554226
授权(Authorization)
授权作为一种安全机制,旨在确定访问请求者是否拥有对特定资源进行操作的权限。简 而言之,授权就是在资源被访问之前回答“谁在何种环境下对哪些资源执行何种操作” 这个问题。
基于“属性的访问控制(ABAC)”模型,RocketMQ ACL 2.0 涵盖了以下一系列的核心概念。在系统实现中,都会以以下概念作为指导,完成整个权限管理和授权机制的设计 和实现。
基于属性的访问控制(ABAC)模型的核心概念,ACL 2.0 对权限模型做了精心的设计, 要点如下:
- 向后兼容的权限策略:默认情况下,ACL 2.0 只匹配和检验用户自定义的权限,若未找到匹配项,则视为无权限访问资源。但考虑到 ACL 1.0 中,存在默认权限的设置,允许对未匹配资源进行“无权限访问”和“有权限访问”的默认判定。因此,我们针对默认权限策略进行了兼容,确保 ACL 1.0 到 ACL 2.0 的无缝迁移。
- 灵活的资源匹配模式:在资源类型方面,ACL 2.0 支持了集群(Cluster)、命名空间(Namespace)、主题(Topic)、消费者组(Group)等类型,用于对不同类型的资源进行访问控制。在资源名称方面,引入了完全匹配(LITERAL)、前缀匹配(PREFIXED),以及通配符匹配(ANY)三种模式,方便用户根据资源的命名规范和结构,快速设定统一的访问规则,简化权限的管理。
- 精细的资源操作类型:在消息的发送和消费的接口方面,分别定义为 PUB 和 SUB 这两种操作。在集群和资源的管理的接口方面,分别定义为 CREATE、UPDATE、
DELETE、LIST、GET 五种操作。通过这种操作类型的细化,可以帮助用户在资源的操作层面,无需关心具体的接口定义,简化对操作的理解和配置。
- 坚实的访问环境校验:在请求访问的环境方面,ACL 2.0 加入了客户端请求 IP 来源的校验,这个校验控制在每个资源的级别,可以精确到对每个资源进行控制。IP 来源可以是特定的 IP 地址或者是一个 IP 段,来满足不同粒度的 IP 访问控制,为系统的安全性增添一道坚实的防线。
客户端流程:
- 客户端在构建 RPC 请求时,构建本次调用的接口入参,接口对应权限背后的操作
定义。
- 客户端在接口入参中设置本次访问的资源信息,然后将用户和资源等参数传递到服 务端。
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(4)https://developer.aliyun.com/article/1554223