Alibaba Cloud は、MQTT 版 ApsaraMQ の権限を管理するための Resource Access Management (RAM)を提供しています。 RAM を使用する場合、Alibaba Cloud アカウントの AccessKey ペアを他のユーザーと共有する必要はありません。必要な権限のみをユーザーに付与できます。 AccessKey ペアは、AccessKey ID と AccessKey シークレットで構成されます。このトピックでは、RAM で MQTT 版 ApsaraMQ に提供されるポリシーについて説明します。
ポリシータイプ
RAM では、ポリシーは構文を使用して記述された権限の集合です。詳細については、「ポリシーの構造と構文」をご参照ください。ポリシーでは、承認されたリソースセット、アクションセット、および承認条件を正確に記述できます。 MQTT 版 ApsaraMQ は、次のタイプの RAM ポリシーを提供します。
システムポリシー
MQTT 版 ApsaraMQ は、4 つのデフォルトのシステムポリシーを提供します。
MQTT 版 ApsaraMQ は、独立したシステムポリシーをサポートしていません。次のシステムポリシーを RAM ユーザーにアタッチすると、MQTT 版 ApsaraMQ と RocketMQ 版 ApsaraMQ の両方でポリシーが有効になります。
ポリシー | 説明 |
AliyunMQFullAccess | MQTT 版 ApsaraMQ を管理するための権限。このポリシーがアタッチされている RAM ユーザーは、Alibaba Cloud アカウントを使用して MQTT 版 ApsaraMQ コンソールでリソースを管理するのと同じ方法ですべての機能を管理できます。 説明 このポリシーを RAM ユーザーにアタッチした後、RAM ユーザーは MQTT 版 ApsaraMQ コンソールでインスタンスのリストを表示できません。 MQTT 版 ApsaraMQ コンソールでインスタンスのリストを表示するには、RAM ユーザーに必要な権限が付与されている必要があります。権限のアクションは mq:MqttInstanceAccess です。詳細については、「コンソールでインスタンスを管理するための権限」をご参照ください。 |
AliyunMQPubOnlyAccess | MQTT 版 ApsaraMQ でメッセージをパブリッシュするための権限。このポリシーがアタッチされている RAM ユーザーは、Alibaba Cloud アカウントのすべてのリソースを使用して、SDK を使用してメッセージをパブリッシュできます。 |
AliyunMQSubOnlyAccess | MQTT 版 ApsaraMQ でメッセージをサブスクライブするための権限。このポリシーがアタッチされている RAM ユーザーは、Alibaba Cloud アカウントのすべてのリソースを使用して、SDK を使用してメッセージをサブスクライブできます。 |
AliyunMQReadOnlyAccess | MQTT 版 ApsaraMQ の読み取り専用権限。このポリシーがアタッチされている RAM ユーザーは、MQTT 版 ApsaraMQ コンソールで、または API 操作を呼び出すことによってのみ、リソース情報を読み取ることができます。 説明 このポリシーを RAM ユーザーにアタッチした後、RAM ユーザーは MQTT 版 ApsaraMQ コンソールでインスタンスのリストを表示できません。 MQTT 版 ApsaraMQ コンソールでインスタンスのリストを表示するには、RAM ユーザーに必要な権限が付与されている必要があります。権限のアクションは mq:MqttInstanceAccess です。詳細については、「コンソールでインスタンスを管理するための権限」をご参照ください。 |
カスタムポリシー
カスタムポリシーを使用すると、ユーザーに詳細な権限を付与できます。
次のセクションでは、MQTT 版 ApsaraMQ のリソースとアクション間のマッピングについて説明します。
MQTT 版 ApsaraMQ では、インスタンス、トピック、グループ、およびルールは異なるタイプのリソースです。リソースに対してアクションを実行するには、権限を付与する必要があります。リソースの形式については、「リソース」をご参照ください。
MQTT 版 ApsaraMQ のリソースとアクションの可能な値と対応するルールは、コンソール、API 操作、および MQTT 版 ApsaraMQ クライアントというカテゴリに分類できます。 MQTT 版 ApsaraMQ コンソールのリソース関連操作は、リソースタイプ(インスタンス、トピック、グループ、ルール)に基づいて次のカテゴリに分類されます。
MQTT 版 ApsaraMQ インスタンスのリソースにアクセスし、API 操作を呼び出してインスタンスで操作を実行するには、インスタンスに必要な権限を取得する必要があります。対応するアクションは mq:MqttInstanceAccess です。
カスタムポリシーの例については、「権限ポリシーの例」をご参照ください。
MQTT 版 ApsaraMQ クライアントでメッセージをパブリッシュおよびサブスクライブするための権限
メッセージをパブリッシュおよびサブスクライブするための権限には、トピックとグループのリソース命名形式が関係します。
トピック: acs:mq:*:*:topic/{mqttInstanceId}/{topic}
グループ ID: acs:mq:*:*:groupId/{mqttInstanceId}/{gid}
アクション | 説明 | 備考 |
mq:PUB | メッセージをパブリッシュします。 | RAM ユーザーにトピックまたはグループの権限を付与する前に、トピックまたはグループが属するインスタンスにアクセスするための権限をユーザーに付与する必要があります。権限のアクションは mq:MqttInstanceAccess です。 |
mq:SUB | メッセージをサブスクライブします。 |
MQTT 版 ApsaraMQ クライアントでメッセージをパブリッシュおよびサブスクライブするための権限は、Alibaba Cloud アカウント間で付与することはできません。
コンソールでインスタンスを管理するための権限
MQTT 版 ApsaraMQ インスタンスのリソース命名形式は、acs:mq:*:*:instance/{mqttInstanceId} です。
アクション | 説明 | 備考 |
mq:MqttInstanceAccess | インスタンスの基本情報を照会します。 | RAM ユーザーにトピックまたはグループの権限を付与する前に、トピックまたはグループが属するインスタンスにアクセスするための権限をユーザーに付与する必要があります。権限のアクションは mq:MqttInstanceAccess です。 |
mq:DeleteMqttInstance | インスタンスを削除します。 | なし。 |
mq:UpdateMqttInstance | インスタンス情報を変更します。 | なし。 |
mq:ListMqttInstance | インスタンスのリストを照会します。 | なし。 |
mq:UpdateMqttInstanceWarn | 特定のインスタンスに関するアラート情報を更新します。 | なし。 |
mq:MqttMetaData | MQTT 版 ApsaraMQ コンソールの [概要] ページとホームページにアクセスします。 | RAM ユーザーに MQTT 版 ApsaraMQ コンソールの [概要] ページとホームページにアクセスするための権限を付与した後、ユーザーが MQTT 版 ApsaraMQ コンソールでインスタンスのリストを表示できるようにするには、インスタンスを表示するための権限をユーザーに付与する必要があります。 |
コンソールでトピックを管理するための権限
トピックのリソース命名形式は、acs:mq:*:*:topic/{mqttInstanceId}/{topic} です。
アクション | 説明 | 備考 |
mq:QueryMqttClientByTopic | 特定のトピックをサブスクライブしている MQTT 版 ApsaraMQ クライアントを照会します。 | RAM ユーザーにトピックまたはグループの権限を付与する前に、トピックまたはグループが属するインスタンスにアクセスするための権限をユーザーに付与する必要があります。権限のアクションは mq:MqttInstanceAccess です。 |
mq:QueryMqttMsgTransTrend | 特定のトピックに基づいてメッセージング統計を照会します。 | |
mq:SendMqttMessageByConsole | コンソールでメッセージ送信機能をテストします。 | |
mq:CreateMqttTopic | トピックを作成します。 | |
mq:DeleteMqttTopic | トピックを削除します。 | |
mq:ListMqttTopic | トピックを照会します。 | |
mq:UpdateMqttTopic | トピックの説明を更新します。 |
コンソールでグループを管理するための権限
グループのリソース命名形式は、acs:mq:*:*:groupId/{mqttInstanceId}/{gid} です。
アクション | 説明 | 備考 |
mq:CreateMqttGroupId | グループを作成します。 | RAM ユーザーにトピックまたはグループの権限を付与する前に、トピックまたはグループが属するインスタンスにアクセスするための権限をユーザーに付与する必要があります。権限のアクションは mq:MqttInstanceAccess です。 |
mq:ListMqttGroupId | グループのリストを照会します。 | |
mq:QueryMqttClientByClientId | 特定のクライアント ID に基づいて MQTT 版 ApsaraMQ クライアント情報を照会します。 | |
mq:QueryMqttClientByGroupId | 特定のグループ ID に基づいて MQTT 版 ApsaraMQ クライアント情報を照会します。 | |
mq:QueryMqttHistoryOnline | 特定のグループ ID に基づいて、履歴接続されている MQTT 版 ApsaraMQ クライアントに関する情報を照会します。 | |
mq:DeleteMqttGroupId | グループを削除します。 | |
mq:QueryMqttTraceDevice | MQTT 版 ApsaraMQ クライアントのトレースを照会します。 | |
mq:QueryMqttDeviceTrace | 特定の MQTT 版 ApsaraMQ クライアントに関する情報を照会します。 |
コンソールでルールを管理するための権限
ルールのリソース命名形式は、acs:mq:*:*:rule/{mqttInstanceId}/{ruleId} です。
ルールに権限を付与する場合は、関連するインスタンス、トピック、およびグループが同じ Alibaba Cloud アカウントに属していることを確認してください。
アクション | 説明 | 備考 |
mq:CreateMqttInboundRule | データインバウンドルールを作成します。 | RAM ユーザーにトピックまたはグループの権限を付与する前に、トピックまたはグループが属するインスタンスにアクセスするための権限をユーザーに付与する必要があります。権限のアクションは mq:MqttInstanceAccess です。 |
mq:DeleteMqttInboundRule | データインバウンドルールを削除します。 | |
mq:ListMqttInboundRule | データインバウンドルールを照会します。 | |
mq:UpdateMqttInboundRule | データインバウンドルールを更新します。 | |
mq:CreateMqttOutboundRule | データアウトバウンドルールを作成します。 | |
mq:DeleteMqttOutboundRule | データアウトバウンドルールを削除します。 | |
mq:ListMqttOutboundRule | データアウトバウンドルールを照会します。 | |
mq:UpdateMqttOutboundRule | データアウトバウンドルールを更新します。 | |
mq:CreateClientStatusNotifyRule | クライアントステータス通知のルールを作成します。 | |
mq:DeleteClientStatusNotifyRule | クライアントステータス通知のルールを削除します。 | |
mq:ListClientStatusNotifyRule | クライアントステータス通知のルールを照会します。 | |
mq:UpdateClientStatusNotifyRule | クライアントステータス通知のルールを更新します。 |
API 操作を呼び出すための権限
API 操作を呼び出すことによってルールに対する操作を実行するための権限を付与する前に、関連するインスタンス、トピック、およびグループが同じ Alibaba Cloud アカウントに属していることを確認してください。
API | リソース命名形式 | リソース命名例 | アクション |
acs:mq:*:*:* | acs:mq:*:*:* |
| |
acs:mq:*:*:* | acs:mq:*:*:* |
| |
|
|
| |
| |||
|
|
| |
| |||
| |||
|
|
| |
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
インスタンス: acs:mq:*:*:instance/{mqttInstanceId} | インスタンス: acs:mq:*:*:instance/post-cn-09k1noy**** |
| |
| |||
インスタンス: acs:mq:*:*:instance/{mqttInstanceId} | インスタンス: acs:mq:*:*:instance/post-cn-09k1noy**** |
| |
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
トピックの作成 |
|
|
|
ListTopics |
| ||
トピックの削除 |
| ||
トピックの更新 |
| ||
MQTT アウトバウンドルールの更新 |
|
|
|
MQTT 受信ルールを作成 |
| ||
MQTT アウトバウンドルールを削除 |
| ||
UpdateClientStatusNotifyRule |
| ||
ListClientStatusNotifyRuleInPages |
| ||
Mqtt受信ルールをページ単位で一覧表示 |
| ||
クライアントステータス通知ルールの削除 |
| ||
CreateClientStatusNotifyRule |
| ||
MQTT アウトバウンド規則の作成 |
| ||
MQTT インバウンドルールの更新 |
| ||
MQTT 受信ルールを削除する |
| ||
ListMqttOutboundRuleInPages |
|
API 操作の詳細については、「関数別の操作一覧」をご参照ください。