消息队列RocketMQ版的权限管理是通过阿里云的访问控制RAM(Resource Access Management)产品实现的。使用RAM可以让您避免与其他用户共享云账号密钥,即AccessKey(包含AccessKey ID和AccessKey Secret),按需为用户分配最小权限。本文介绍消息队列RocketMQ版在RAM中的权限策略和示例。
背景信息
在RAM中,权限策略是用权限策略语法和结构描述的一组权限的集合,可以精确地描述被授权的Resource(资源集)、Action(操作集)以及授权条件。更多信息,请参见权限策略基本元素。
消息队列RocketMQ版有以下RAM权限策略:
系统策略
消息队列RocketMQ版提供以下系统默认的权限策略。
权限策略名称 | 说明 |
---|---|
AliyunMQFullAccess | 消息队列RocketMQ版的管理权限,等同于阿里云账号的权限,被授予该权限的RAM用户具有所有消息收发权限及控制台和API的所有操作权限。 |
AliyunMQReadOnlyAccess | 消息队列RocketMQ版的只读权限,被授予该权限的RAM用户仅有通过访问控制台或调用管控API读取资源信息的权限。 |
自定义策略
消息队列RocketMQ版支持自定义权限策略,为您提供更细粒度的权限管理。
在消息队列RocketMQ版中,实例、Topic和Group等各为不同的Resource,对这些Resource授予的操作即为Action。
实例操作权限
Resource | Action | 权限说明 |
---|---|---|
acs:rocketmq:{regionId}:{accountId}:instance/* | rocketmq:ListInstances | 获取实例列表。 |
acs:rocketmq:{regionId}:{accountId}:instance/{InstanceId} | rocketmq:DeleteInstance | 主动释放按量付费实例。 |
rocketmq:ListAlertRules | 查询实例的报警规则。 | |
rocketmq:UpdateInstance | 更新实例配置。 | |
rocketmq:GetInstances | 获取实例配置。 |
Topic操作权限
Resource | Action | 权限说明 |
---|---|---|
acs:rocketmq:{regionId}:{accountId}:instance/{InstanceId}/topic/* | rocketmq:ListTopics | 获取Topic列表。 |
acs:rocketmq:{regionId}:{accountId}:instance/{InstanceId}/topic/{TopicName} | rocketmq:CreateTopic | 创建Topic。 |
rocketmq:GetTopic | 获取Topic配置。 | |
rocketmq:UpdateTopic | 更新Topic配置。 | |
rocketmq:DeleteTopic | 删除Topic。 | |
rocketmq:ListTraceQueryRecords | 查询消息轨迹信息。 | |
rocketmq:ListMessages | 查询消息。 | |
rocketmq:VerifyConsumeMessage | 消费消息验证。 | |
rocketmq:GetMessageDetail | 获取消息详情信息。 | |
rocketmq:ListTopicSubscriptions | 查询Topic相关订阅组。 | |
rocketmq:DeleteTraceQueryRecord | 删除轨迹查询任务。 | |
rocketmq:SubmitQueryTrace | 提交轨迹查询任务。 | |
rocketmq:GetTraceData | 根据轨迹查询任务获取轨迹详细信息。 | |
rocketmq:GetTraceQueryRecord | 获取轨迹查询任务列表。 | |
rocketmq:DownloadMessage | 下载消息。 | |
rocketmq:ListTraceQueryResults | 获取消息轨迹查询任务列表。 | |
rocketmq:VerifySendMessage | 发送消息验证。 |
ConsumerGroup操作权限
Resource | Action | 权限说明 |
---|---|---|
acs:rocketmq:{regionId}:{accountId}:instance/{InstanceId}/consumergroup/{ConsumerGroupId} | rocketmq:GetConsumerGroup | 获取消费者分组详细信息。 |
rocketmq:CreateConsumerGroup | 创建消费者分组。 | |
rocketmq:UpdateConsumerGroup | 更新消费者分组信息。 | |
rocketmq:DeleteConsumerGroup | 删除消费者分组。 | |
rocketmq:GetConsumerGroupLag | 查询消费者分组的消息堆积数据。 | |
acs:rocketmq:{regionId}:{accountId}:instance/{InstanceId}/consumergroup/* | rocketmq:ListConsumerGroups | 获取消费者分组列表。 |
acs:rocketmq:{regionId}:{accountId}:instance/{InstanceId}/consumergroup/{ConsumerGroupId} | rocketmq:ListConsumerGroupSubscriptions | 查询指定消费者分组的订阅关系列表。 |
rocketmq:ListConsumerConnections | 根据消费者分组查询客户端连接信息。 | |
rocketmq:GetConsumerGroupSubscription | 根据消费者分组查询订阅关系详细信息。 | |
rocketmq:GetConsumerStack | 根据消费者分组查询客户端堆栈数据。 | |
rocketmq:ResetConsumeOffset | 重置消费进度。 |
权限策略示例
重要 如需直接复制示例代码,请替换如下内容:
- {regionId}:替换为实例所属的地域ID。具体内容,请参见服务接入点。
- {accountId}:替换为您的阿里云账号ID。
- {InstanceId}:替换为消息队列RocketMQ版的实例ID。
- {ConsumerGroupId}:替换为Group ID。
- {TopicName}:替换为Topic名称。
- 示例一:授予RAM用户对于某个实例的所有操作权限。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "rocketmq:ListInstances" ], "Resource": [ "acs:rocketmq:{regionId}:{accountId}:instance/*" ] }, { "Effect": "Allow", "Action": [ "rocketmq:*" ], "Resource": [ "acs:rocketmq:{regionId}:{accountId}:instance/{InstanceId}*" ] } ] }
- 示例二:授予RAM用户创建实例的权限。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "rocketmq:CreateInstance" ], "Resource": [ "acs:rocketmq:{regionId}:{accountId}:instance/*" ] } ] }
- 示例三:授予RAM用户删除某个指定Topic的权限。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "rocketmq:DeleteTopic" ], "Resource": [ "acs:rocketmq:{regionId}:{accountId}:instance/{InstanceId}/topic/{TopicName}" ] } ] }