RAM authentication

Updated at:
Copy as MD

Alibaba Cloud provides Resource Access Management (RAM) for you to manage permissions on ApsaraMQ for MQTT. If you use RAM, you do not need to share the AccessKey pair of your Alibaba Cloud account with other users. You can grant the users only the required permissions. An AccessKey pair consists of an AccessKey ID and an AccessKey secret. Before you call an Alibaba Cloud API operation as a RAM user, you must use an Alibaba Cloud account to create an authorization policy to grant permissions to the RAM user.

Mappings between resources and actions in ApsaraMQ for MQTT

In ApsaraMQ for MQTT, resource types include instances, topics, groups, and rules. The permissions that are granted on these resources are called actions. For more information about the format of resources, see Resources.

API operations that can be authorized to RAM users

The following table describes the ApsaraMQ for MQTT API operations that can be authorized to RAM users.

Note

To access ApsaraMQ for MQTT API operations, you must obtain the permissions to access ApsaraMQ for MQTT instances. The action for the permissions is mq:MqttInstanceAccess.

For more information, see Policies.

API

Resource naming format

Resource naming example

Action description

RevokeToken

acs:mq:*:*:*

acs:mq:*:*:*

  • mq:MqttInstanceAccess

  • mq:RevokeToken

QueryToken

acs:mq:*:*:*

acs:mq:*:*:*

  • mq:MqttInstanceAccess

  • mq:QueryToken

ApplyToken

  • Instance: acs:mq:*:*:instance/{mqttInstanceId}

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

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

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

  • mq:MqttInstanceAccess

  • mq:ApplyToken

SendMessage

  • mq:MqttInstanceAccess

  • mq:SendMessage

CreateGroupId

  • Instance: acs:mq:*:*:instance/{mqttInstanceId}

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

  • Instance: 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

  • Instance: acs:mq:*:*:instance/{mqttInstanceId}

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

  • Instance: 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

Instance: acs:mq:*:*:instance/{mqttInstanceId}

Instance: acs:mq:*:*:instance/post-cn-09k1noy****

  • mq:MqttInstanceAccess

  • mq:QueryMqttPubTrace

QueryMqttTraceMessageSubscribe

  • mq:MqttInstanceAccess

  • mq:QueryMqttSubTrace

RegisterCaCertificate

Instance: acs:mq:*:*:instance/{mqttInstanceId}

Instance: 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

Instance: acs:mq:*:*:instance/{mqttInstanceId}

Instance: 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

Instance: acs:mq:*:*:instance/{mqttInstanceId}

Instance: 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

DisasterDowngrade

  • mq:MqttInstanceAccess

  • mq:DisasterDowngrade

DisasterRecovery

  • mq:MqttInstanceAccess

  • mq:DisasterRecovery

CreateTopic

  • Instance: acs:mq:*:*:instance/{mqttInstanceId}

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

  • Instance: 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

  • Instance: acs:mq:*:*:instance/{mqttInstanceId}

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

  • Instance: 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