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

Simple Message Queue (formerly MNS):カスタムポリシーのサンプル

最終更新日:Jan 13, 2025

このトピックでは、Simple Message Queue(SMQ)コンソールまたはクライアント SDK を使用してカスタムポリシーを作成する一般的なシナリオと例について説明します。

SMQ コンソールでカスタムポリシーを作成する

コンソールアクセス権限を付与する

例 1:RAM ユーザーに SMQ コンソールへのアクセスを許可する

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "mns:ListQueue",
            "Resource": "*"
        }
    ]
}

例 2:RAM ユーザーに HTTPS 経由で SMQ コンソールへのアクセスを許可する

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "mns:*",
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "acs:SecureTransport": [
                        "false"
                    ]
                }
            }
        }
    ]
}

キュー管理権限を付与する

例 3:RAM ユーザーに SMQ コンソールへのアクセスとすべてのキューからのメッセージの読み取りを許可する

  • SMQ の管理 SDK を使用して、Alibaba Cloud アカウント内のすべてのキューの属性を読み取る権限を RAM ユーザーに付与します。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mns:ListQueue"
                ],
                "Resource": "*"
            }
        ]
    }
  • SMQ コンソールの [キュー] メニュー項目にアクセスする権限を RAM ユーザーに付与します。

    説明

    キュー管理には、mns:ListTagResources を含む複数のアクションが関係します。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mns:ListTagResources",
                    "mns:ListQueue"
                ],
                "Resource": "*"
            }
        ]
    }

例 4:RAM ユーザーに特定のキューのメッセージのみを管理する権限を付与する

  • SMQ の管理 SDK を使用して、特定のキューとの間でのみメッセージの読み取りまたは書き込みを行う権限を RAM ユーザーに付与します。この例では、キュー名 MySampleQueue を使用します。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mns:CreateQueue",
                    "mns:DeleteQueue",
                    "mns:GetQueueAttributes",
                    "mns:SetQueueAttributes"
                ],
                "Resource": "acs:mns:*:*:/queues/MySampleQueue"
            }
        ]
    }
  • SMQ コンソールで特定のキューの詳細を照会する権限を RAM ユーザーに付与します。

    説明
    • 指定されたキューの詳細にアクセスするための URL は、https://${SMQ 管理アドレス}/region/${regionId}/queue/${queueName}/detail の形式です。

    • キュー管理には、mns:ListQueue を含む複数のアクションが関係します。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mns:CreateQueue",
                    "mns:DeleteQueue",
                    "mns:GetQueueAttributes",
                    "mns:SetQueueAttributes"
                ],
                "Resource": "acs:mns:*:*:/queues/MySampleQueue"
            },
            {
                "Effect": "Allow",
                "Action": "mns:ListQueue",
                "Resource": "*"
            }
        ]
    }

トピック管理権限を付与する

例 5:RAM ユーザーに SMQ コンソールへのアクセスとすべてのトピックのメッセージの読み取りを許可する

  • SMQ の管理 SDK を使用して、Alibaba Cloud アカウント内のすべてのトピックの属性を読み取る権限を RAM ユーザーに付与します。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mns:ListTopic"
                ],
                "Resource": "*"
            }
        ]
    }
  • SMQ コンソールの [トピック] メニュー項目にアクセスする権限を RAM ユーザーに付与します。

    説明

    トピック管理には、mns:ListTagResources を含む複数のアクションが関係します。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mns:ListTagResources",
                    "mns:ListTopic"
                ],
                "Resource": "*"
            }
        ]
    }

例 6:RAM ユーザーに特定のトピックのメッセージのみを管理する権限を付与する

  • SMQ の管理 SDK を使用して、特定のトピックとの間でのみメッセージの読み取りまたは書き込みを行う権限を RAM ユーザーに付与します。この例では、トピック名 MySampleTopic を使用します。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mns:CreateTopic",
                    "mns:DeleteTopic",
                    "mns:GetTopicAttributes",
                    "mns:SetTopicAttributes"
                ],
                "Resource": "acs:mns:*:*:/topics/MySampleTopic"
            }
        ]
    }
  • SMQ コンソールで特定のトピックの詳細を照会する権限を RAM ユーザーに付与します。

    説明
    • 指定されたトピックの詳細にアクセスするための URL は、https://${SMQ 管理アドレス}/region/${regionId}/topic/${topicName}/detail の形式です。

    • トピック管理には、mns:ListSubscriptionByTopic を含む複数のアクションが関係します。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "mns:CreateTopic",
            "mns:DeleteTopic",
            "mns:GetTopicAttributes",
            "mns:SetTopicAttributes"
          ],
          "Resource": "acs:mns:*:*:/topics/MySampleTopic"
        },
        {
          "Effect": "Allow",
          "Action": [
            "mns:ListQueue",
            "mns:ListSubscriptionByTopic"
          ],
          "Resource": "*"
        }
      ]
    }

クライアント SDK を使用してカスタムポリシーを作成する

キュー関連のメッセージング権限を付与する

例 1:RAM ユーザーに特定のキューとの間でのみメッセージを送受信する権限を付与する

  • クライアント SDK を使用して、特定のキューとの間でのみメッセージを送受信する権限を RAM ユーザーに付与します。この例では、キュー名 MySampleQueue を使用します。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mns:SendMessage",
                    "mns:ReceiveMessage",
                    "mns:DeleteMessage",
                    "mns:PeekMessage",
                    "mns:ChangeMessageVisibility"
                ],
                "Resource": "acs:mns:*:*:/queues/MySampleQueue/messages"
            }
        ]
    }
  • SMQ コンソールでキュー関連のメッセージングを管理する権限を RAM ユーザーに付与します。

    説明
    • キューの URL は、https://${SMQ 管理アドレス}/region/${regionId}/queue/${queueName}/publish の形式です。

    • キュー管理には、mns:ListQueue を含む複数のアクションが関係します。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mns:SendMessage",
                    "mns:ReceiveMessage",
                    "mns:DeleteMessage",
                    "mns:PeekMessage",
                    "mns:ChangeMessageVisibility"
                ],
                "Resource": "acs:mns:*:*:/queues/MySampleQueue/messages"
            },
            {
                "Effect": "Allow",
                "Action": "mns:ListQueue",
                "Resource": "*"
            }
        ]
    }

トピック関連のメッセージング権限を付与する

例 2:RAM ユーザーに特定のトピックにのみメッセージを送信する権限を付与する

  • クライアント SDK を使用して、特定のトピックにのみメッセージを送信する権限を RAM ユーザーに付与します。この例では、トピック名 MySampleTopic を使用します。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mns:PublishMessage"
                ],
                "Resource": "acs:mns:*:*:/topics/MySampleTopic/messages"
            }
        ]
    }
  • SMQ コンソールでトピック関連のメッセージングを管理する権限を RAM ユーザーに付与します。

    説明
    • トピックの URL は、https://${SMQ 管理アドレス}/region/${regionId}/topic/${topicName}/publish の形式です。

    • キュー管理には、mns:ListQueue を含む複数のアクションが関係します。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mns:PublishMessage"
                ],
                "Resource": "acs:mns:*:*:/topics/MySampleTopic/messages"
            },
            {
                "Effect": "Allow",
                "Action": "mns:ListQueue",
                "Resource": "*"
            }
        ]
    }