カスタムポリシーは、Simple Message Queue (旧称:MNS) リソースへの詳細なアクセス制御を実現します。各ポリシーでは、RAM ID がどのリソースに対してどのような操作を実行できるかを定義し、最小権限の原則 (PoLP) をサポートします。
カスタムポリシーの仕組み
Resource Access Management (RAM) では、システムポリシーとカスタムポリシーの 2 種類のポリシーがサポートされています。システムポリシーは Alibaba Cloud により事前定義されています。一方、カスタムポリシーは、ユーザーが作成・管理する JSON 形式のドキュメントです。
カスタムポリシーを利用するには、RAM ユーザー、ユーザーグループ、または RAM ロールにアタッチしてください。ポリシーはアタッチ後に初めて有効になります。カスタムポリシーを削除する場合は、まずすべてのプリンシパルからデタッチしてください。また、RAM ではカスタムポリシーのバージョン管理も提供されており、変更履歴の追跡およびロールバックが可能です。
リソース管理操作
これらの操作は、SMQ コンソールおよびSMQ API を通じて利用可能なリソースライフサイクル操作を制御します。
キュー管理
| 操作 | API オペレーション | アクセスレベル | リソース |
|---|---|---|---|
mns:ListQueue | ListQueue | リスト | acs:mns:${regionId}:${accountId}:/queues |
mns:CreateQueue | CreateQueue | 書き込み | acs:mns:${regionId}:${accountId}:/queues/${queueName} |
mns:DeleteQueue | DeleteQueue | 書き込み | acs:mns:${regionId}:${accountId}:/queues/${queueName} |
mns:GetQueueAttributes | GetQueueAttributes | 読み取り | acs:mns:${regionId}:${accountId}:/queues/${queueName} |
mns:SetQueueAttributes | SetQueueAttributes | 書き込み | acs:mns:${regionId}:${accountId}:/queues/${queueName} |
トピック管理
| 操作 | API オペレーション | アクセスレベル | リソース |
|---|---|---|---|
mns:ListTopic | ListTopic | リスト | acs:mns:${regionId}:${accountId}:/topics |
mns:CreateTopic | CreateTopic | 書き込み | acs:mns:${regionId}:${accountId}:/topics/${topicName} |
mns:DeleteTopic | DeleteTopic | 書き込み | acs:mns:${regionId}:${accountId}:/topics/${topicName} |
mns:GetTopicAttributes | GetTopicAttributes | 読み取り | acs:mns:${regionId}:${accountId}:/topics/${topicName} |
mns:SetTopicAttributes | SetTopicAttributes | 書き込み | acs:mns:${regionId}:${accountId}:/topics/${topicName} |
サブスクリプション管理
| 操作 | API オペレーション | アクセスレベル | リソース |
|---|---|---|---|
mns:ListSubscriptionByTopic | ListSubscriptionByTopic | リスト | acs:mns:${regionId}:${accountId}:/topics/${topicName}/subscriptions |
mns:Subscribe | Subscribe | 書き込み | acs:mns:${regionId}:${accountId}:/topics/${topicName}/subscriptions/${subscriptionName} |
mns:Unsubscribe | Unsubscribe | 書き込み | acs:mns:${regionId}:${accountId}:/topics/${topicName}/subscriptions/${subscriptionName} |
mns:GetSubscriptionAttributes | GetSubscriptionAttributes | 読み取り | acs:mns:${regionId}:${accountId}:/topics/${topicName}/subscriptions/${subscriptionName} |
mns:SetSubscriptionAttributes | SetSubscriptionAttributes | 書き込み | acs:mns:${regionId}:${accountId}:/topics/${topicName}/subscriptions/${subscriptionName} |
メッセージ操作
これらの操作は、クライアント SDK を介したメッセージの送受信を制御します。詳細については、「関数別の操作リスト」をご参照ください。
キューによるメッセージング
| 操作 | API オペレーション | アクセスレベル | リソース |
|---|---|---|---|
mns:SendMessage | SendMessage、BatchSendMessage | 書き込み | acs:mns:${regionId}:${accountId}:/queues/${queueName}/messages |
mns:ReceiveMessage | ReceiveMessage、BatchReceiveMessage | 読み取り | acs:mns:${regionId}:${accountId}:/queues/${queueName}/messages |
mns:DeleteMessage | DeleteMessage、BatchDeleteMessage | 書き込み | acs:mns:${regionId}:${accountId}:/queues/${queueName}/messages |
mns:PeekMessage | PeekMessage、BatchPeekMessage | 読み取り | acs:mns:${regionId}:${accountId}:/queues/${queueName}/messages |
mns:ChangeMessageVisibility | ChangeMessageVisibility | 書き込み | acs:mns:${regionId}:${accountId}:/queues/${queueName}/messages |
バッチ操作は、単一メッセージ操作と同一の操作を共有します。たとえば、SendMessageおよびBatchSendMessageの両方でmns:SendMessage操作が必要です。
トピックによるメッセージング
| 操作 | API オペレーション | アクセスレベル | リソース |
|---|---|---|---|
mns:PublishMessage | PublishMessage | 書き込み | acs:mns:${regionId}:${accountId}:/topics/${topicName}/messages |