O Simple Message Queue (formerly MNS) utiliza o Resource Access Management (RAM) do Alibaba Cloud para gerenciar permissões. Com o RAM, você não precisa compartilhar o par de AccessKey da sua conta Alibaba Cloud com outros usuários. Em vez disso, conceda apenas as permissões mínimas necessárias. Um par de AccessKey inclui um AccessKey ID e um AccessKey secret. Este tópico descreve as políticas do RAM e fornece exemplos para o Simple Message Queue (formerly MNS).
Informações básicas
No RAM, uma política é um conjunto de permissões descritas com sintaxe e estrutura específicas. Ela define com precisão os recursos autorizados, as ações permitidas e as condições de autorização. Para mais informações, consulte Estrutura e sintaxe de políticas.
O Simple Message Queue (formerly MNS) oferece suporte aos seguintes tipos de políticas do RAM:
-
O Alibaba Cloud cria essas políticas. Você pode usá-las, mas não pode modificá-las. O Alibaba Cloud mantém as atualizações dessas políticas.
-
Crie, atualize e exclua políticas personalizadas, além de manter o controle de versões. Edite essas políticas e anexe-as a usuários do RAM no console do RAM.
Políticas do sistema
A tabela a seguir descreve as políticas de permissão padrão fornecidas para o Simple Message Queue (formerly MNS).
|
Política |
Descrição |
|
AliyunMNSFullAccess |
Permissões completas para gerencie o Simple Message Queue (formerly MNS), equivalentes às permissões da conta Alibaba Cloud. Um usuário do RAM com essa política anexada pode enviar e assinar todas as mensagens, além de utilizar todos os recursos do console. |
|
AliyunMNSReadOnlyAccess |
Permissões somente leitura no Simple Message Queue (formerly MNS). Um usuário do RAM com essa política anexada pode apenas ler informações de recursos no console ou por meio de chamadas de API. |
Políticas personalizadas
Defina políticas personalizadas para conceder permissões granulares. A tabela a seguir lista as ações e os recursos disponíveis para criar políticas personalizadas no Simple Message Queue (formerly MNS).
|
Operação de API |
Ação |
Recurso |
|
OpenService |
mns:OpenService |
acs:mns:$region:$accountid:/commonbuy/openservice |
|
ListQueue |
mns:ListQueue |
acs:mns:$region:$accountid:/queues |
|
CreateQueue |
mns:CreateQueue |
acs:mns:$region:$accountid:/queues/$queueName |
|
DeleteQueue |
mns:DeleteQueue |
acs:mns:$region:$accountid:/queues/$queueName |
|
SetQueueAttributes |
mns:SetQueueAttributes |
acs:mns:$region:$accountid:/queues/$queueName |
|
GetQueueAttributes |
mns:GetQueueAttributes |
acs:mns:$region:$accountid:/queues/$queueName |
|
SendMessage ou BatchSendMessage |
mns:SendMessage |
acs:mns:$region:$accountid:/queues/$queueName/messages |
|
ReceiveMessage ou BatchReceiveMessage |
mns:ReceiveMessage |
acs:mns:$region:$accountid:/queues/$queueName/messages |
|
DeleteMessage |
mns:DeleteMessage |
acs:mns:$region:$accountid:/queues/$queueName/messages |
|
PeekMessage ou BatchPeekMessage |
mns:PeekMessage |
acs:mns:$region:$accountid:/queues/$queueName/messages |
|
ChangeMessageVisibility |
mns:ChangeMessageVisibility |
acs:mns:$region:$accountid:/queues/$queueName/messages |
|
ListTopic |
mns:ListTopic |
acs:mns:$region:$accountid:/topics |
|
CreateTopic |
mns:CreateTopic |
acs:mns:$region:$accountid:/topics/$topicName |
|
DeleteTopic |
mns:DeleteTopic |
acs:mns:$region:$accountid:/topics/$topicName |
|
SetTopicAttributes |
mns:SetTopicAttributes |
acs:mns:$region:$accountid:/topics/$topicName |
|
GetTopicAttributes |
mns:GetTopicAttributes |
acs:mns:$region:$accountid:/topics/$topicName |
|
ListSubscriptionByTopic |
mns:ListSubscriptionByTopic |
acs:mns:$region:$accountid:/topics/$topicName/subscriptions |
|
Subscribe |
mns:Subscribe |
acs:mns:$region:$accountid:/topics/$topicName/subscriptions/$subscriptionName |
|
Unsubscribe |
mns:Unsubscribe |
acs:mns:$region:$accountid:/topics/$topicName/subscriptions/$subscriptionName |
|
SetSubscriptionAttributes |
mns:SetSubscriptionAttributes |
acs:mns:$region:$accountid:/topics/$topicName/subscriptions/$subscriptionName |
|
GetSubscriptionAttributes |
mns:GetSubscriptionAttributes |
acs:mns:$region:$accountid:/topics/$topicName/subscriptions/$subscriptionName |
|
PublishMessage |
mns:PublishMessage |
acs:mns:$region:$accountid:/topics/$topicName/messages |
Exemplos de políticas personalizadas
-
Exemplo 1: Permitir acesso de blocos CIDR específicos
O exemplo abaixo demonstra como permitir o acesso aos blocos CIDR 42.120.88.0/24 e 42.120.66.0/24 no Simple Message Queue (formerly MNS).
{ "Version": "1", "Statement": [ { "Action": "mns:*", "Effect": "Allow", "Resource": "acs:mns:*:*:*", "Condition":{ "IpAddress": { "acs:SourceIp": ["42.120.88.0/24", "42.120.66.0/24"] } } } ] } -
Exemplo 2: Negar acesso de blocos CIDR específicos
Este exemplo ilustra como negar acesso de qualquer endereço IP no bloco CIDR 42.120.88.0/24 ao Simple Message Queue (formerly MNS):
{ "Version":"1", "Statement":[ { "Action":"mns:*", "Effect":"Deny", "Resource":"acs:mns:*:*:*", "Condition":{ "NotIpAddress":{ "acs:SourceIp":[ "42.120.88.0/24" ] } } } ] }ImportanteEm políticas do RAM, a regra Deny tem prioridade sobre a regra Allow. Se você executar uma operação de acesso especificada na regra Deny, a operação falhará. Neste exemplo, ao tentar acessar o Simple Message Queue (formerly MNS) com um endereço IP fora do bloco CIDR 42.120.88.0/24, o sistema retornará uma mensagem de erro, pois o acesso ao MNS não estará autorizado.
-
Exemplo 3: Autorizar um usuário do RAM a visualize tópicos e filas do MNS
Configure a política abaixo para autorizar um usuário do RAM a visualize filas ou tópicos do MNS, bem como os parâmetros de cada fila ou tópico:
{ "Version":"1", "Statement":[ { "Effect":"Allow", "Action":[ "mns:ListQueue", "mns:ListTopic", "mns:GetQueueAttributes", "mns:GetTopicAttributes" ], "Resource":"acs:mns:*:*:*" } ] }