このトピックでは、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****/*"
}
]
}