权限策略

更新时间:

云消息队列 MQTT 版权限管理是通过阿里云的访问控制RAM(Resource Access Management)实现的。使用RAM可以让您避免与其他用户共享云账号密钥,即AccessKey(包含AccessKey ID和AccessKey Secret),按需为用户分配最小权限。本文介绍云消息队列 MQTT 版在RAM中的权限策略。

策略类别

在RAM中,权限策略是用语法结构描述的一组权限的集合,可以精确地描述被授权的Resource(资源集)、Action(操作集)以及授权条件。云消息队列 MQTT 版有以下两类RAM的权限策略:

  • 系统策略:统一由阿里云创建,您只能使用不能修改,策略的版本更新由阿里云维护。

  • 自定义策略:您可以自主创建、更新和删除,策略的版本更新由您自己维护。

系统策略

云消息队列 MQTT 版目前提供四种系统默认的权限策略。

重要

云消息队列 MQTT 版目前不支持独立的系统权限策略。您在为RAM用户授予以下系统权限策略时,除了对云消息队列 MQTT 版生效外,还会对云消息队列 RocketMQ 版生效。

权限策略名称

说明

AliyunMQFullAccess

管理云消息队列 MQTT 版的权限,等同于阿里云账号的权限,被授予该权限的RAM用户具有所有消息收发权限且有控制台所有功能操作权限。

说明

此权限暂不支持通过控制台查看MQTT实例列表,如需查看,需授予mq:MqttInstanceAccess权限以查询指定实例的基本信息。更多信息,请参见控制台实例操作权限

AliyunMQPubOnlyAccess

云消息队列 MQTT 版的发布权限,被授予该权限的RAM用户具有使用阿里云账号所有资源通过SDK发送消息的权限。

AliyunMQSubOnlyAccess

云消息队列 MQTT 版的订阅权限,被授予该权限的RAM用户具有使用阿里云账号所有资源通过SDK订阅消息的权限。

AliyunMQReadOnlyAccess

云消息队列 MQTT 版的只读权限,被授予该权限的RAM用户仅有通过访问控制台或调用管控API读取资源信息的权限。

说明

此权限暂不支持通过控制台查看MQTT实例列表,如需查看,需授予mq:MqttInstanceAccess权限以查询指定实例的基本信息。更多信息,请参见控制台实例操作权限

自定义策略

自定义权限策略(Policy)可以满足您更细粒度的授权需求。

云消息队列 MQTT 版的Resource与Action的对应规则如下所述。

云消息队列 MQTT 版中,实例、Topic、Group和规则各为一种Resource,对这些Resource授予的权限即为Action。

云消息队列 MQTT 版的Resource和Action的可选值和对应规则可分为控制台、OpenAPI和云消息队列 MQTT 版客户端三大类。针对控制台资源的相关操作,按资源类型又可分为实例、Topic、Group和规则四类。

说明

如需访问云消息队列 MQTT 版的资源以及OpenAPI,则需有访问云消息队列 MQTT 版实例的权限,对应的Action为mq:MqttInstanceAccess。

自定义策略的示例请参见权限策略示例

MQTT客户端收发消息权限

消息收发权限涉及Topic和Group ID的Resource命名格式:

  • Topic:acs:mq:*:*:topic/{mqttInstanceId}/{topic}

  • Group ID:acs:mq:*:*:groupId/{mqttInstanceId}/{gid}

Action名称

Action描述

备注

mq:PUB

消息发布

授予某RAM用户Topic和Group的相关权限前,需授予该用户Topic和Group所在实例的mq:MqttInstanceAccess权限。

mq:SUB

消息订阅

说明

MQTT客户端收发消息权限不支持跨云账号授权。

控制台实例操作权限

云消息队列 MQTT 版实例的Resource命名格式:acs:mq:*:*:instance/{mqttInstanceId}。

Action名称

Action说明

备注

mq:MqttInstanceAccess

查询指定实例的基本信息

授予某RAM用户Topic和Group的相关权限前,需授予该用户Topic和Group所在实例的mq:MqttInstanceAccess权限。

mq:DeleteMqttInstance

删除实例

mq:UpdateMqttInstance

变更实例的信息

mq:ListMqttInstance

获取实例列表

mq:UpdateMqttInstanceWarn

更新指定实例的报警信息

mq:MqttMetaData

访问MQTT控制台概览页面以及首页

授予某RAM用户访问MQTT控制台概览页面和首页权限后,还需要授予获取实例列表的权限,才能看到实例列表。

控制台Topic操作权限

Topic的Resource命名格式:acs:mq:*:*:topic/{mqttInstanceId}/{topic}。

Action名称

Action说明

备注

mq:QueryMqttClientByTopic

根据Topic查询订阅的客户端信息

授予某RAM用户Topic和Group的相关权限前,需授予该用户Topic和Group所在实例的mq:MqttInstanceAccess权限。

mq:QueryMqttMsgTransTrend

根据Topic查询消息的收发报表

mq:SendMqttMessageByConsole

控制台发消息测试

mq:CreateMqttTopic

创建Topic

mq:DeleteMqttTopic

删除Topic

mq:ListMqttTopic

查询Topic

mq:UpdateMqttTopic

更新Topic备注信息

控制台Group ID操作权限

Group ID的Resource命名格式:acs:mq:*:*:groupId/{mqttInstanceId}/{gid}。

Action名称

Action说明

备注

mq:CreateMqttGroupId

创建Group ID

授予某RAM用户Topic和Group的相关权限前,需授予该用户Topic和Group所在实例的mq:MqttInstanceAccess权限。

mq:ListMqttGroupId

获取Group ID列表

mq:QueryMqttClientByClientId

根据Client ID查询设备信息

mq:QueryMqttClientByGroupId

根据Group ID查询设备信息

mq:QueryMqttHistoryOnline

根据Group ID查询历史在线设备信息

mq:DeleteMqttGroupId

删除Group ID

mq:QueryMqttTraceDevice

查询设备轨迹

mq:QueryMqttDeviceTrace

查询设备的相关消息

控制台规则操作权限

规则的Resource命名格式:acs:mq:*:*:rule/{mqttInstanceId}/{ruleId}。

授予规则权限时需确保涉及的实例、Topic和Group ID资源属于同一云账号。

Action名称

Action说明

备注

mq:CreateMqttInboundRule

创建数据流入规则

授予某RAM用户规则的相关权限前,需授予该用户规则所在实例的mq:MqttInstanceAccess权限。

mq:DeleteMqttInboundRule

删除数据流入规则

mq:ListMqttInboundRule

查询数据流入规则

mq:UpdateMqttInboundRule

更新数据流入规则

mq:CreateMqttOutboundRule

创建数据流出规则

mq:DeleteMqttOutboundRule

删除数据流出规则

mq:ListMqttOutboundRule

查询数据流出规则

mq:UpdateMqttOutboundRule

更新数据流出规则

mq:CreateClientStatusNotifyRule

创建客户端状态通知规则

mq:DeleteClientStatusNotifyRule

删除客户端状态通知规则

mq:ListClientStatusNotifyRule

查询客户端状态通知规则

mq:UpdateClientStatusNotifyRule

更新客户端状态通知规则

OpenAPI权限

授予规则的OpenAPI权限需保证涉及的实例、Topic和Group ID资源属于同一阿里云账号。

API

Resource命名格式

Resource命名示例

Action描述

RevokeToken

acs:mq:*:*:*

acs:mq:*:*:*

  • mq:MqttInstanceAccess

  • mq:RevokeToken

QueryToken

acs:mq:*:*:*

acs:mq:*:*:*

  • mq:MqttInstanceAccess

  • mq:QueryToken

ApplyToken

  • 实例:acs:mq:*:*:instance/{mqttInstanceId}

  • Topic:acs:mq:*:*:topic/{mqttInstanceId}/{topic}

  • 实例:acs:mq:*:*:instance/post-cn-09k1noy****

  • Topic:acs:mq:*:*:topic/post-cn-09k1noy****/Topic_****

  • mq:MqttInstanceAccess

  • mq:ApplyToken

SendMessage

  • mq:MqttInstanceAccess

  • mq:SendMessage

CreateGroupId

  • 实例:acs:mq:*:*:instance/{mqttInstanceId}

  • Group ID:acs:mq:*:*:groupId/{mqttInstanceId}/{gId}

  • 实例:acs:mq:*:*:instance/post-cn-09k1noy****

  • Group ID:acs:mq:*:*:groupId/post-cn-09k1noy****/GID_****

  • mq:MqttInstanceAccess

  • mq:CreateMqttGroupId

DeleteGroupId

  • mq:MqttInstanceAccess

  • mq:DeleteMqttGroupId

ListGroupId

  • mq:MqttInstanceAccess

  • mq:ListMqttGroupId

QuerySessionByClientId

  • 实例:acs:mq:*:*:instance/{mqttInstanceId}

  • Group ID:acs:mq:*:*:groupId/{mqttInstanceId}/{gId}

  • 实例:acs:mq:*:*:instance/post-cn-09k1noy****

  • Group ID:acs:mq:*:*:groupId/post-cn-09k1noy****/GID_****

  • mq:MqttInstanceAccess

  • mq:QuerySessionByClientId

BatchQuerySessionByClientIds

  • mq:MqttInstanceAccess

  • mq:BatchQuerySessionByClientIds

RegisterDeviceCredential

  • mq:MqttInstanceAccess

  • mq:RegisterDeviceCredential

GetDeviceCredential

  • mq:MqttInstanceAccess

  • mq:GetDeviceCredential

ListDeviceCredentialClientId

  • mq:MqttInstanceAccess

  • mq:ListDeviceCredentialClientId

UnRegisterDeviceCredential

  • mq:MqttInstanceAccess

  • mq:UnRegisterDeviceCredential

RefreshDeviceCredential

  • mq:MqttInstanceAccess

  • mq:RefreshDeviceCredential

QueryMqttTraceDevice

  • mq:MqttInstanceAccess

  • mq:QueryMqttDeviceTrace

QueryMqttTraceMessageOfClient

  • mq:MqttInstanceAccess

  • mq:QueryMqttDeviceTrace

QueryMqttTraceMessagePublish

实例:acs:mq:*:*:instance/{mqttInstanceId}

实例:acs:mq:*:*:instance/post-cn-09k1noy****

  • mq:MqttInstanceAccess

  • mq:QueryMqttDeviceTrace

QueryMqttTraceMessageSubscribe

  • mq:MqttInstanceAccess

  • mq:QueryMqttDeviceTrace

RegisterCaCertificate

实例:acs:mq:*:*:instance/{mqttInstanceId}

实例:acs:mq:*:*:instance/post-cn-09k1noy****

  • mq:MqttInstanceAccess

  • mq:RegisterCa

ActiveCaCertificate

  • mq:MqttInstanceAccess

  • mq:ActiveCaCertificate

InactivateCaCertificate

  • mq:MqttInstanceAccess

  • mq:UnregisterCaCertificate

ListCaCertificate

  • mq:MqttInstanceAccess

  • mq:ListCaCertificate

GetCaCertificate

  • mq:MqttInstanceAccess

  • mq:GetCaCertificate

GetRegisterCode

  • mq:MqttInstanceAccess

  • mq:GetRegisterCode

DeleteCaCertificate

  • mq:MqttInstanceAccess

  • mq:DeleteCaCertificate

ActiveDeviceCertificate

实例:acs:mq:*:*:instance/{mqttInstanceId}

实例:acs:mq:*:*:instance/post-cn-09k1noy****

  • mq:MqttInstanceAccess

  • mq:ActiveDeviceCertificate

InactivateDeviceCertificate

  • mq:MqttInstanceAccess

  • mq:UnregisterDeviceCertificate

ListDeviceCertificate

  • mq:MqttInstanceAccess

  • mq:ListDeviceCertificate

ListDeviceCertificateByCaSn

  • mq:MqttInstanceAccess

  • mq:ListDeviceCertificateByCaSn

GetDeviceCertificate

  • mq:MqttInstanceAccess

  • mq:GetDeviceCertificate

DeleteDeviceCertificate

  • mq:MqttInstanceAccess

  • mq:DeleteDeviceCertificate

AddCustomAuthConnectBlack

实例:acs:mq:*:*:instance/{mqttInstanceId}

实例:acs:mq:*:*:instance/post-cn-09k1noy****

  • mq:MqttInstanceAccess

  • mq:DeleteCustomAuthConnectBlack

AddCustomAuthPermission

  • mq:MqttInstanceAccess

  • mq:AddCustomAuthPermission

QueryCustomAuthConnectBlack

  • mq:MqttInstanceAccess

  • mq:QueryCustomAuthConnectBlack

DeleteCustomAuthConnectBlack

  • mq:MqttInstanceAccess

  • mq:AddCustomAuthConnectBlack

QueryCustomAuthIdentity

  • mq:MqttInstanceAccess

  • mq:QueryCustomAuthIdentity

AddCustomAuthIdentity

  • mq:MqttInstanceAccess

  • mq:AddCustomAuthIdentity

DeleteCustomAuthPermission

  • mq:MqttInstanceAccess

  • mq:DeleteCustomAuthPermission

DeleteCustomAuthIdentity

  • mq:MqttInstanceAccess

  • mq:DeleteCustomAuthIdentity

UpdateCustomAuthIdentity

  • mq:MqttInstanceAccess

  • mq:UpdateCustomAuthIdentity

QueryCustomAuthPermission

  • mq:MqttInstanceAccess

  • mq:QueryCustomAuthPermission

UpdateCustomAuthPermission

  • mq:MqttInstanceAccess

  • mq:UpdateCustomAuthPermission

CreateTopic

  • 实例:acs:mq:*:*:instance/{mqttInstanceId}

  • Topic:acs:mq:*:*:topic/{mqttInstanceId}/{topic}

  • 实例:acs:mq:*:*:instance/post-cn-09k1noy****

  • Topic:acs:mq:*:*:topic/post-cn-09k1noy****/Topic_****

  • mq:MqttInstanceAccess

  • mq:CreateMqttTopic

ListTopics

  • mq:MqttInstanceAccess

  • mq:SUB

  • mq:ListMqttTopic

DeleteTopic

  • mq:MqttInstanceAccess

  • mq:PUB

  • mq:DeleteMqttTopic

UpdateTopic

  • mq:MqttInstanceAccess

  • mq:UpdateMqttTopic

UpdateMqttOutboundRule

  • 实例:acs:mq:*:*:instance/{mqttInstanceId}

  • Rule:acs:mq:*:*:rule/{mqttInstanceId}/{ruleId}

  • 实例:acs:mq:*:*:instance/post-cn-09k1noy****

  • Rule:acs:mq:*:*:rule/post-cn-09k1noy****/111****

  • mq:MqttInstanceAccess

  • mq:UpdateMqttOutboundRule

CreateMqttInboundRule

  • mq:MqttInstanceAccess

  • mq:CreateMqttInboundRule

DeleteMqttOutboundRule

  • mq:MqttInstanceAccess

  • mq:DeleteMqttOutboundRule

UpdateClientStatusNotifyRule

  • mq:MqttInstanceAccess

  • mq:UpdateClientStatusNotifyRule

ListClientStatusNotifyRuleInPages

  • mq:MqttInstanceAccess

  • mq:ListClientStatusNotifyRule

ListMqttInboundRuleInPages

  • mq:MqttInstanceAccess

  • mq:ListMqttInboundRule

DeleteClientStatusNotifyRule

  • mq:MqttInstanceAccess

  • mq:DeleteClientStatusNotifyRule

CreateClientStatusNotifyRule

  • mq:MqttInstanceAccess

  • mq:CreateClientStatusNotifyRule

CreateMqttOutboundRule

  • mq:MqttInstanceAccess

  • mq:CreateMqttOutboundRule

UpdateMqttInboundRule

  • mq:MqttInstanceAccess

  • mq:UpdateMqttInboundRule

DeleteMqttInboundRule

  • mq:MqttInstanceAccess

  • mq:DeleteMqttInboundRule

ListMqttOutboundRuleInPages

  • mq:MqttInstanceAccess

  • mq:ListMqttOutboundRule

说明

API的更多信息,请参见云端API概览

更多信息