权限策略示例
更新时间:
本文介绍在云消息队列 MQTT 版中常见的授权策略示例。
注意事项
在阅读本文前,建议您先查看在访问控制RAM中支持的云消息队列 MQTT 版相关的权限策略。
如需直接复制示例代码,使用时请删除注释内容,即“//”及以后的文字说明。示例中的{mqttinstanceId}、{storeinstanceId}、{topic}和{groupId}均需替换为您实际的资源信息。例如,{groupId}替换为GID_xxx。
重要
此处的{storeInstanceid}指您为云消息队列 MQTT 版实例绑定的持久化实例的ID。您可在云消息队列 MQTT 版控制台的实例详情页面获取绑定的持久化实例的ID。
示例一:授予实例中某Topic和Group的权限
适用于有命名空间的实例
{ "Version":"1", "Statement":[ {// 授予实例的授权,授予Topic和Group的权限前请先授予相应实例的权限(适用于有命名空间的实例)。 "Effect":"Allow", "Action":[ "mq:MqttInstanceAccess" ], "Resource":[ "acs:mq:*:*:{mqttInstanceId}" ] }, {// 授予Topic的消息发布和订阅权限。 "Effect":"Allow", "Action":[ "mq:PUB", "mq:SUB" ], "Resource":[ "acs:mq:*:*:{storeInstanceId}%{topic}" ] }, {// 授予Group的权限 "Effect":"Allow", "Action":[ "mq:SUB" ], "Resource":[ "acs:mq:*:*:{mqttInstanceId}%{groupId}" ] } ] }
适用于无命名空间的实例
{ "Version": "1", "Statement": [ { //授予实例的授权,授予Topic和Group的权限前请先授予相应实例的权限(适用于无命名空间的实例)。 "Effect": "Allow", "Action": [ "mq:MqttInstanceAccess" ], "Resource": [ "acs:mq:*:*:{mqttInstanceId}" ] }, { // 授予Topic的消息发布和订阅权限。 "Effect":"Allow", "Action":[ "mq:PUB", "mq:SUB" ], "Resource": [ "acs:mq:*:*:{topic}" ] }, { // 授予Group的权限。 "Effect":"Allow", "Action":[ "mq:SUB" ], "Resource": [ "acs:mq:*:*:{groupId}" ] } ] }
示例二:授权整个实例的权限(只适用于有命名空间的实例)
若要授予整个实例的权限,即该实例中所有资源的所有操作权限,请按以下示例设置。
{ // 仅适用于有命名空间的实例。
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"mq:*"
],
"Resource": [
"acs:mq:*:*:{mqttInstanceId}*" //授予该实例的权限,{mqttInstanceId}用实例ID代替。
]
}
]
}
文档内容是否对您有帮助?