すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for MQTT:サンプルポリシー

最終更新日:Jan 14, 2025

このトピックでは、MQTT用ApsaraMQに対する権限を付与するために使用されるサンプルポリシーについて説明します。

使用方法

  • このトピックを読む前に、Resource Access Management(RAM)でMQTT用ApsaraMQによって提供されるポリシーを確認することをお勧めします。

  • リソースの形式については、リソースをご覧ください。

  • サンプルコードを直接使用する場合、コードをコピーした後に2つのスラッシュ(//)とそれに続くテキストの説明を削除してください。サンプルポリシーの次の値を実際のresource情報に置き換えてください。

    • post-cn-09k1noy****:インスタンスIDに置き換えます。

    • Topic_****:トピック名に置き換えます。

    • GID_****:グループIDに置き換えます。

    • Rule****:ルールIDに置き換えます。

例 1:RAMユーザーにMQTT用ApsaraMQコンソールの概要ページとホームページにアクセスするための権限を付与する

{
    "Version": "1",
    "Statement": [
        {   // RAMユーザーにMQTT用ApsaraMQクライアントを使用してメッセージをパブリッシュおよびサブスクライブする権限を付与する前に、対応するインスタンスにアクセスするための権限をRAMユーザーに付与します。
            "Effect": "Allow",
            "Action": "mq:MqttInstanceAccess",
            "Resource": "acs:mq:*:*:instance/mqtt-cn-7213l8z****"
        },
        {   // MQTT用ApsaraMQコンソールの概要ページとホームページにアクセスするための権限をRAMユーザーに付与します。 そうしないと、コンソールにアクセスするとエラーメッセージが返されます。
            "Effect": "Allow",
            "Action": "mq:MqttMetaData",
            "Resource": "acs:mq:*:198126978280****:*"
        },
        {   // インスタンスにアクセスするための権限をRAMユーザーに付与します。 そうしないと、インスタンスリストを表示できません。
            "Effect": "Allow",
            "Action": "mq:ListMqttInstance",
            "Resource": "acs:mq:*:198126978280****:instance/mqtt-cn-7213l8z****"
        }
    ]
}

例 2:RAMユーザーにMQTT用ApsaraMQクライアントを使用してメッセージをパブリッシュおよびサブスクライブする権限を付与する

説明

Alibaba Cloudアカウント間でMQTT用ApsaraMQクライアントを使用してメッセージをパブリッシュおよびサブスクライブする権限をRAMユーザーに付与することはできません。

{
    "Version":"1",
    "Statement":[
        {   // RAMユーザーにMQTT用ApsaraMQクライアントを使用してメッセージをパブリッシュおよびサブスクライブする権限を付与する前に、対応するインスタンスにアクセスするための権限をRAMユーザーに付与します。
            "Effect":"Allow",
            "Action":[
                "mq:MqttInstanceAccess"
            ],
            "Resource":[
                "acs:mq:*:*:instance/post-cn-09k1noy****"
            ]
        },
        {   // RAMユーザーにトピックへのメッセージのパブリッシュとトピックからのメッセージの受信を許可します。
            "Effect":"Allow",
            "Action":[
                "mq:PUB",
                "mq:SUB"
            ],
            "Resource":[
                "acs:mq:*:*:topic/post-cn-09k1noy****/Topic_****"
            ]
        },
        {   // RAMユーザーにグループを使用してメッセージをサブスクライブする権限を付与します。
            "Effect":"Allow",
            "Action":[
                "mq:SUB"
            ],
            "Resource":[
                "acs:mq:*:*:groupId/post-cn-09k1noy****/GID_****"
            ]
        }
    ]
}

例 3:RAMユーザーにコンソールでトピックにメッセージをパブリッシュする権限を付与する

{
    "Version":"1",
    "Statement":[
        {   // RAMユーザーにApsaraMQ for MQTTコンソールでトピックにメッセージをパブリッシュする権限を付与する前に、対応するインスタンスにアクセスするための権限をRAMユーザーに付与します。
            "Effect":"Allow",
            "Action":[
                "mq:MqttInstanceAccess"
            ],
            "Resource":[
                "acs:mq:*:*:instance/post-cn-09k1noy****"
            ]
        },
        {   // RAMユーザーにMQTT用ApsaraMQコンソールでトピックにメッセージをパブリッシュする権限を付与します。
            "Effect":"Allow",
            "Action":[
                "mq:SendMqttMessageByConsole"
            ],
            "Resource":[
                "acs:mq:*:*:topic/post-cn-09k1noy****/Topic_****"
            ]
        }
    ]
}

例 4:RAMユーザーにトークンの申請に使用するAPI操作を呼び出す権限を付与する

{
    "Version":"1",
    "Statement":[
        {   // RAMユーザーにトークンを申請するためのAPI操作を呼び出す権限を付与する前に、対応するインスタンスにアクセスするための権限をRAMユーザーに付与します。
            "Effect":"Allow",
            "Action":[
                "mq:MqttInstanceAccess"
            ],
            "Resource":[
                "acs:mq:*:*:instance/post-cn-09k1noy****"
            ]
        },
        {   // RAMユーザーにトークンを申請するためのAPI操作を呼び出す権限を付与します。
            "Effect":"Allow",
            "Action":[
                "mq:ApplyToken"
            ],
            "Resource":[
                "acs:mq:*:*:topic/post-cn-09k1noy****/Topic_****"
            ]
        }
    ]
}

例 5:RAMユーザーにデータ送信ルールの管理に使用するすべてのAPI操作を呼び出す権限を付与する

RAMユーザーにデータ送信ルールの管理に使用するすべてのAPI操作を呼び出す権限を付与する前に、インスタンス、トピック、およびグループが同じAlibaba Cloudアカウントに作成されていることを確認してください。

{
    "Version":"1",
    "Statement":[
        {   // RAMユーザーにデータ送信ルールの管理に使用するすべてのAPI操作を呼び出す権限を付与する前に、対応するインスタンスにアクセスするための権限をRAMユーザーに付与します。
            "Effect":"Allow",
            "Action":[
                "mq:MqttInstanceAccess"
            ],
            "Resource":[
                "acs:mq:*:*:instance/post-cn-09k1noy****"
            ]
        },
        {   // RAMユーザーにデータ送信ルールの管理に使用するすべてのAPI操作を呼び出す権限を付与します。
            "Effect":"Allow",
            "Action":[
                "mq:CreateMqttOutboundRule",
                "mq:DeleteMqttOutboundRule",
                "mq:ListMqttOutboundRule",
                "mq:UpdateMqttOutboundRule"
            ],
            "Resource":[
                "acs:mq:*:*:rule/post-cn-09k1noy****/Rule****"
            ]
        }
    ]
}

例 6:RAMユーザーにインスタンスに対するすべての権限を付与する

{
    "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****/*"
        }
    ]
}