本文介紹在雲Message QueueTT 版中常見的授權策略樣本。
注意事項
在閱讀本文前,建議您可先查看在存取控制RAM中支援的雲Message QueueTT 版相關的權限原則。
如需直接複製範例程式碼,使用時請刪除注釋內容,即雙斜杠(//)及以後的文字說明。樣本中的取值均需替換為您實際的資源資訊:
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****/*"
}
]
}