全部產品
Search
文件中心

ApsaraMQ for MQTT:權限原則樣本

更新時間:Jul 05, 2024

本文介紹在雲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****/*"
        }
    ]
}