全部產品
Search
文件中心

ApsaraMQ for MQTT:權限原則

更新時間:Oct 31, 2024

雲Message QueueTT 版許可權管理是通過阿里雲的存取控制RAM(Resource Access Management)實現的。使用RAM可以讓您避免與其他使用者共用雲帳號密鑰,即AccessKey(包含AccessKey ID和AccessKey Secret),按需為使用者指派最小許可權。本文介紹雲Message QueueTT 版在RAM中的權限原則。

策略類別

在RAM中,權限原則是用文法結構描述的一組許可權的集合,可以精確地描述被授權的Resource(資源集)、Action(操作集)以及授權條件。雲Message QueueTT 版有以下兩類RAM的權限原則:

  • 系統策略:統一由阿里雲建立,您只能使用不能修改,策略的版本更新由阿里雲維護。

  • 自訂策略:您可以自主建立、更新和刪除,策略的版本更新由您自己維護。

系統策略

雲Message QueueTT 版目前提供四種系統預設的權限原則。

重要

雲Message QueueTT 版目前不支援獨立的系統權限原則。您在為RAM使用者授予以下系統權限原則時,除了對雲Message QueueTT 版生效外,還會對雲訊息佇列 RocketMQ 版生效。

權限原則名稱

說明

AliyunMQFullAccess

管理雲Message QueueTT 版的許可權,等同於阿里雲帳號的許可權,被授予該許可權的RAM使用者具有所有訊息收發許可權且有控制台所有功能操作許可權。

說明

此許可權暫不支援通過控制台查看MQTT執行個體列表,如需查看,需授予mq:MqttInstanceAccess許可權以查詢指定執行個體的基本資料。更多資訊,請參見控制台執行個體操作許可權

AliyunMQPubOnlyAccess

雲Message QueueTT 版的發布許可權,被授予該許可權的RAM使用者具有使用阿里雲帳號所有資源通過SDK發送訊息的許可權。

AliyunMQSubOnlyAccess

雲Message QueueTT 版的訂閱許可權,被授予該許可權的RAM使用者具有使用阿里雲帳號所有資源通過SDK訂閱訊息的許可權。

AliyunMQReadOnlyAccess

雲Message QueueTT 版的唯讀許可權,被授予該許可權的RAM使用者僅有通過存取控制台或調用管控API讀取資源資訊的許可權。

說明

此許可權暫不支援通過控制台查看MQTT執行個體列表,如需查看,需授予mq:MqttInstanceAccess許可權以查詢指定執行個體的基本資料。更多資訊,請參見控制台執行個體操作許可權

自訂策略

自訂權限原則(Policy)可以滿足您更細粒度的授權需求。

雲Message QueueTT 版的Resource與Action的對應規則如下所述。

雲Message QueueTT 版中,執行個體、Topic、Group和規則各為一種Resource,對這些Resource授與權限即為Action。

雲Message QueueTT 版的Resource和Action的可選值和對應規則可分為控制台、OpenAPI和雲Message QueueTT 版用戶端三大類。針對控制台資源的相關操作,按資源類型又可分為執行個體、Topic、Group和規則四類。

說明

如需訪問雲Message QueueTT 版的資源以及OpenAPI,則需有訪問雲Message QueueTT 版執行個體的許可權,對應的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用戶端收發訊息許可權不支援跨雲帳號授權。

控制台執行個體操作許可權

雲Message QueueTT 版執行個體的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

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概覽

更多資訊