《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(2)

本文涉及的产品
访问控制,不限时长
简介: 阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代

本文来源于阿里云社区电子书《阿里云产品四月刊》


《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(1)https://developer.aliyun.com/article/1554227


访问控制模型

 

基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC)是访问控制体系中两种主要的方法。RocketMQ ACL 2.0 将这两种方法进行了融合,打造出了一套更加灵活和强大的访问控制系统。

 

 

image.png

 

RBAC 是基于角色的访问控制模型,通过角色进行权限的分配。RocketMQ ACL 2.0用户角色划分为超级用户(Super)和普通用户(Normal),超级用户具有最高级别的    权限,能够无需授权即可访问资源,这简化了集群初始化及日常运维过程中的权限依赖  问题。而普通用户在访问资源之前,需要被赋予相应的权限,适用于业务场景中,对资  源进行按需访问。

 

ABAC  是基于属性的访问控制模型,通过用户、资源、环境、操作等多维属性来表达访问控制策略。RocketMQ ACL 2.0 为普通用户提供了这种灵活的访问控制机制。帮助管理员根据业务需求、用户职责等因素,对资源进行更加精细的访问控制。

 

在安全体系中,认证和授权分别扮演着不同的角色,RocetMQ ACL 2.0 将认证和授权进行了模块分离。这可以确保两个组件各司其职,降低系统的复杂度。认证服务致力于   验证用户身份的合法性,而授权服务则专注于管理用户权限和访问控制。这样的划分不   仅可以让代码更易于管理、维护和扩展,也为用户提供了使用上的灵活性。根据需求,  用户可以选择单独启用认证或授权服务,也可以选择同时启用两者。

 

这使得 RocketMQ ACL 既可以满足简单场景的快速部署,也能够适应复杂环境下对安全性的严格要求。

 

 

认证(Authentication)

 

认证作为一种安全机制,旨在验证发起访问请求者的身份真实性。它用于确保只有那些   经过身份验证的合法用户或实体才能访问受保护的资源或执行特定的操作。简而言之, 认证就是在资源或服务被访问之前回答你是谁?这个问题。

 

RocketMQ ACL 2.0  版本维持了与  ACL 1.0  相同的认证机制,即基于  AK/SK  的认证方式。这种方式主要通过对称加密技术来核验客户端的身份,保证敏感的认证信息(如  密码)不会在网络上明文传输,从而提升了整体的认证安全性。

 

主体模型

image.png

 

为了提升 RocketMQ 系统的访问控制和权限管理,ACL 2.0 针对主体模型做了以下改进和扩展:

 

  • 统一主体模型的抽象:为了实现不同实体的访问控制和权限管理,设计了统一的主    体接口,允许系统中多个实例作为资源访问的主体。用户作为访问资源的主体之一,  按照该模型实现了主体的接口。这为未来新实体类型的权限适配提供了扩展能力。

 

  • 角色分级与权限赋予:

 

  • 超级用户:为了简化管理流程,超级用户被自动授予了全部权限,无需单独配 置,从而简化了系统的初始化和日常的运维管理工作。
  • 普通用户:普通用户的权限则需要明确授权。ACL  2.0  提供了相关的权限管理工具,可以根据组织的政策和安全需求,为普通用户赋予合适的权限。
  • 支持用户状态管理:为了应对可能出现的安全风险,比如用户密码泄露,ACL  2.0  提供了用户的启用与禁用功能。当发生安全事件,可以通过禁用用户状态,快速进行  止血,从而达到阻止非法访问的目的。

 

 

认证流程

 

image.png

 

客户端流程:

 

  1. 客户端在构建  RPC  请求时,检查是否设置了用户名和密码,若未配置,则直接发送请求;

 

  1. 若已配置,则使用预设的加密算法对请求参数进行加密处理,并生成对应的数字签  (Signature)
  2. 在请求中附加用户名和 Signature,并将其发送至服务端以进行身份验证。

 

服务端流程:

 

  1. 服务端接收到请求后,首先检查是否开启认证,若未开启,则不校验直接通过;若  已开启了,则进入下一步。
  2. 服务端对请求进行认证相关的参数进行解析和组装,获取包括用户名和 Signature 等信息。
  3. 通过用户名在本地库中查询用户相关信息,用户不存在,则返回处理无;用户存在,  则进入下一步。
  4. 获取用户密码,采用相同的加密算法对请求进行加密生成 Signature,并和客户端传递的 Signature 进行比对,若两者一致,则认证成功,不一致,则认证失败。


《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(3)https://developer.aliyun.com/article/1554225

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
1月前
|
消息中间件 存储 Serverless
【实践】快速学会使用阿里云消息队列RabbitMQ版
云消息队列 RabbitMQ 版是一款基于高可用分布式存储架构实现的 AMQP 0-9-1协议的消息产品。云消息队列 RabbitMQ 版兼容开源 RabbitMQ 客户端,解决开源各种稳定性痛点(例如消息堆积、脑裂等问题),同时具备高并发、分布式、灵活扩缩容等云消息服务优势。
84 2
|
3月前
|
消息中间件 监控 数据挖掘
基于RabbitMQ与Apache Flink构建实时分析系统
【8月更文第28天】本文将介绍如何利用RabbitMQ作为数据源,结合Apache Flink进行实时数据分析。我们将构建一个简单的实时分析系统,该系统能够接收来自不同来源的数据,对数据进行实时处理,并将结果输出到另一个队列或存储系统中。
217 2
|
19天前
|
消息中间件 canal 分布式计算
类似apache nifi的产品还有哪些?
【10月更文挑战第23天】类似apache nifi的产品还有哪些?
32 3
|
2月前
|
消息中间件 弹性计算 运维
阿里云云消息队列RabbitMQ实践解决方案评测报告
阿里云云消息队列RabbitMQ实践解决方案评测报告
73 9
ly~
|
2月前
|
消息中间件 搜索推荐 大数据
一般情况下在 RocketMQ 中添加 access key 的步骤: 一、确定配置文件位置 RocketMQ 的配置文件通常位于安装目录下的 conf 文件夹中。你需要找到 broker.conf 或相关的配置文件。 二、编辑配置文件 打开配置文件,查找与 ACL(访问控制列表)相关的配置部分。 在配置文件中添加以下内容:
大数据广泛应用于商业、金融、医疗和政府等多个领域。在商业上,它支持精准营销、客户细分及流失预测,并优化供应链管理;金融领域则利用大数据进行风险评估、市场预测及欺诈检测;医疗行业通过大数据预测疾病、提供个性化治疗;政府运用大数据进行城市规划和公共安全管理;工业领域则借助大数据进行设备维护、故障预测及质量控制。
ly~
88 2
|
1月前
|
SQL 存储 监控
大数据-161 Apache Kylin 构建Cube 按照日期、区域、产品、渠道 与 Cube 优化
大数据-161 Apache Kylin 构建Cube 按照日期、区域、产品、渠道 与 Cube 优化
47 0
|
3月前
|
消息中间件 存储 Cloud Native
RocketMQ从4.9.7 升级到5.3.0有什么变化?
【8月更文挑战第25天】RocketMQ从4.9.7 升级到5.3.0有什么变化?
209 4
|
3月前
|
消息中间件 人工智能 监控
|
3月前
|
消息中间件 Shell RocketMQ
就软件研发问题之RocketMQ中ACL授权管理的问题如何解决
就软件研发问题之RocketMQ中ACL授权管理的问题如何解决
|
3月前
|
消息中间件 存储 监控
就软件研发问题之RocketMQ ACL 2.0适应未来持续发展的认证鉴权的问题如何解决
就软件研发问题之RocketMQ ACL 2.0适应未来持续发展的认证鉴权的问题如何解决

推荐镜像

更多