全部产品
Search
文档中心

云消息队列 MQTT 版:权限策略示例

更新时间:Jul 04, 2024

本文介绍在云消息队列 MQTT 版中常见的授权策略示例。

注意事项

在阅读本文前,建议您可先查看在访问控制RAM中支持的云消息队列 MQTT 版相关的权限策略

如需直接复制示例代码,使用时请删除注释内容,即双斜杠(//)及以后的文字说明。示例中的取值均需替换为您实际的资源信息:

  • post-cn-09k1noy****替换为您的实例ID。

  • Topic_****替换为您的Topic。

  • GID_****替换为您的Group ID。

  • Rule****替换为您的规则ID。

示例一:授予RAM用户访问MQTT控制台概览页面以及首页权限

{
    "Version": "1",
    "Statement": [
        {   // 授予消息收发的授权前,请先授予相应实例的权限。
            "Effect": "Allow",
            "Action": "mq:MqttInstanceAccess",
            "Resource": "acs:mq:*:*:instance/mqtt-cn-7213l8z****"
        },
        {   // 授予访问控制台概览页面及首页权限,否则会导致访问报错。
            "Effect": "Allow",
            "Action": "mq:MqttMetaData",
            "Resource": "acs:mq:*:198126978280****:*"
        },
        {   // 授予访问实例列表权限,否则无法列出实例。
            "Effect": "Allow",
            "Action": "mq:ListMqttInstance",
            "Resource": "acs:mq:*:198126978280****:instance/mqtt-cn-7213l8z****"
        }
    ]
}

示例二:授予MQTT客户端消息收发权限

说明

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

{
    "Version":"1",
    "Statement":[
        {   // 授予消息收发的授权前,请先授予相应实例的权限。
            "Effect":"Allow",
            "Action":[
                "mq:MqttInstanceAccess"
            ],
            "Resource":[
                "acs:mq:*:*:instance/post-cn-09k1noy****"
            ]
        },
        {   // 授予Topic的消息发布和订阅权限。
            "Effect":"Allow",
            "Action":[
                "mq:PUB",
                "mq:SUB"
            ],
            "Resource":[
                "acs:mq:*:*:topic/post-cn-09k1noy****/Topic_****"
            ]
        },
        {   // 授予Group的权限。
            "Effect":"Allow",
            "Action":[
                "mq:SUB"
            ],
            "Resource":[
                "acs:mq:*:*:groupId/post-cn-09k1noy****/GID_****"
            ]
        }
    ]
}

示例三:授予控制台某Topic发消息权限

{
    "Version":"1",
    "Statement":[
        {   // 授予Topic控制台发消息权限前,请先授予相应实例的权限。
            "Effect":"Allow",
            "Action":[
                "mq:MqttInstanceAccess"
            ],
            "Resource":[
                "acs:mq:*:*:instance/post-cn-09k1noy****"
            ]
        },
        {   // 授予Topic控制台发消息权限。
            "Effect":"Allow",
            "Action":[
                "mq:SendMqttMessageByConsole"
            ],
            "Resource":[
                "acs:mq:*:*:topic/post-cn-09k1noy****/Topic_****"
            ]
        }
    ]
}

示例四:授予申请Token的OpenAPI权限

{
    "Version":"1",
    "Statement":[
        {   // 授予申请Token的OpenAPI权限前,请先授予相应实例的权限。
            "Effect":"Allow",
            "Action":[
                "mq:MqttInstanceAccess"
            ],
            "Resource":[
                "acs:mq:*:*:instance/post-cn-09k1noy****"
            ]
        },
        {   // 授予申请Token的OpenAPI权限。
            "Effect":"Allow",
            "Action":[
                "mq:ApplyToken"
            ],
            "Resource":[
                "acs:mq:*:*:topic/post-cn-09k1noy****/Topic_****"
            ]
        }
    ]
}

示例五:授予数据流出规则的所有OpenAPI权限

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

{
    "Version":"1",
    "Statement":[
        {   // 授予数据流出规则的所有OpenAPI权限前,请先授予相应实例的权限。
            "Effect":"Allow",
            "Action":[
                "mq:MqttInstanceAccess"
            ],
            "Resource":[
                "acs:mq:*:*:instance/post-cn-09k1noy****"
            ]
        },
        {   // 授予数据流出规则的所有OpenAPI权限。
            "Effect":"Allow",
            "Action":[
                "mq:CreateMqttOutboundRule",
                "mq:DeleteMqttOutboundRule",
                "mq:ListMqttOutboundRule",
                "mq:UpdateMqttOutboundRule"
            ],
            "Resource":[
                "acs:mq:*:*:rule/post-cn-09k1noy****/Rule****"
            ]
        }
    ]
}

示例六:授予某个实例所有的权限

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "mq:MqttInstanceAccess",
            "Resource": "acs:mq:*:*:instance/post-cn-09k1noy****"
        },
        {
            "Effect": "Allow",
            "Action": "mq:MqttMetaData",
            "Resource": "acs:mq:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": "mq:ListMqttInstance",
            "Resource": "acs:mq:*:*:instance/post-cn-09k1noy****"
        },
        {
            "Effect": "Allow",
            "Action": "mq:*",
            "Resource": "acs:mq:*:*:*/post-cn-09k1noy****/*"
        }
    ]
}