Copie estas políticas de RAM de exemplo para conceder acesso granular a instâncias, tópicos, grupos e operações de API do ApsaraMQ for MQTT. Substitua os espaços reservados pelas informações dos seus recursos e anexe cada política a um usuário RAM.
Pré-requisitos
Antes de começar, verifique se você possui:
Conhecimento sobre as políticas de RAM para ApsaraMQ for MQTT
Familiaridade com o formato do elemento Resource
Ações e tipos de recurso
Cada instrução de política mapeia uma Action a um Resource. A tabela a seguir lista as ações disponíveis e os formatos de ARN de recurso correspondentes.
|
Action |
Descrição |
Formato do ARN do recurso |
|
|
Acessar uma instância MQTT |
|
|
|
Acessar a página Overview e a página inicial do console |
|
|
|
Listar instâncias MQTT |
|
|
|
Publicar mensagens em um tópico |
|
|
|
Inscrever-se em um tópico ou grupo |
|
|
|
Publicar mensagens pelo console |
|
|
|
Solicitar um token de autenticação via API |
|
|
|
Crie uma regra de saída de dados |
|
|
|
Exclua uma regra de saída de dados |
|
|
|
Listar regras de saída de dados |
|
|
|
Atualize uma regra de saída de dados |
|
|
|
Todas as ações (acesso total) |
|
Valores de espaço reservado
Substitua estes espaços reservados pelos valores reais antes de aplicar uma política.
|
Espaço reservado |
Descrição |
Exemplo |
|
|
ID da instância MQTT |
|
|
|
ID da conta Alibaba Cloud |
|
|
|
Nome do tópico |
|
|
|
ID do grupo |
|
|
|
ID da regra de saída de dados |
|
Acesso ao console
Conceda a um usuário RAM acesso ao console do ApsaraMQ for MQTT, incluindo a página Overview, a página inicial e a lista de instâncias.
Esta política contém três instruções:
Acesso à instância: obrigatório antes de conceder quaisquer outras permissões.
Metadados do console: carrega a página Overview e a página inicial.
Listagem de instâncias: exibe as instâncias na lista.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "mq:MqttInstanceAccess",
"Resource": "acs:mq:*:*:instance/<instance-id>"
},
{
"Effect": "Allow",
"Action": "mq:MqttMetaData",
"Resource": "acs:mq:*:<account-id>:*"
},
{
"Effect": "Allow",
"Action": "mq:ListMqttInstance",
"Resource": "acs:mq:*:<account-id>:instance/<instance-id>"
}
]
}
Publicação e assinatura por cliente MQTT
Conceda a um usuário RAM permissões para publicar e assinar mensagens em um tópico por meio de um cliente ApsaraMQ for MQTT.
Não há suporte para permissões de publicação e assinatura entre contas. O usuário RAM e a instância MQTT devem pertencer à mesma conta Alibaba Cloud.
Esta política contém três instruções:
Acesso à instância: obrigatório antes de conceder quaisquer outras permissões.
Publicação e assinatura no tópico: publica e recebe mensagens em um tópico específico.
Assinatura por grupo: inscreve-se usando um ID de grupo específico.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"mq:MqttInstanceAccess"
],
"Resource": [
"acs:mq:*:*:instance/<instance-id>"
]
},
{
"Effect": "Allow",
"Action": [
"mq:PUB",
"mq:SUB"
],
"Resource": [
"acs:mq:*:*:topic/<instance-id>/<topic-name>"
]
},
{
"Effect": "Allow",
"Action": [
"mq:SUB"
],
"Resource": [
"acs:mq:*:*:groupId/<instance-id>/<group-id>"
]
}
]
}
Publicação de mensagens pelo console
Conceda a um usuário RAM permissões para publicar mensagens em um tópico específico pelo console do ApsaraMQ for MQTT.
Esta política contém duas instruções:
Acesso à instância: obrigatório antes de conceder quaisquer outras permissões.
Publicação pelo console: envia mensagens para um tópico pelo console.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"mq:MqttInstanceAccess"
],
"Resource": [
"acs:mq:*:*:instance/<instance-id>"
]
},
{
"Effect": "Allow",
"Action": [
"mq:SendMqttMessageByConsole"
],
"Resource": [
"acs:mq:*:*:topic/<instance-id>/<topic-name>"
]
}
]
}
Solicitação de token via API
Conceda a um usuário RAM permissões para chamar a operação de API ApplyToken e solicitar um token de autenticação.
Esta política contém duas instruções:
Acesso à instância: obrigatório antes de conceder quaisquer outras permissões.
Solicitação de token: chama a operação ApplyToken para um tópico específico.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"mq:MqttInstanceAccess"
],
"Resource": [
"acs:mq:*:*:instance/<instance-id>"
]
},
{
"Effect": "Allow",
"Action": [
"mq:ApplyToken"
],
"Resource": [
"acs:mq:*:*:topic/<instance-id>/<topic-name>"
]
}
]
}
Gerenciamento de regras de saída de dados
Conceda a um usuário RAM permissões completas de CRUD em regras de saída de dados: crie, liste, atualize e exclua.
A instância, o tópico e o grupo referenciados nas regras de saída devem pertencer à mesma conta Alibaba Cloud.
Esta política contém duas instruções:
Acesso à instância: obrigatório antes de conceder quaisquer outras permissões.
Gerenciamento de regras de saída: concede permissões para crie, liste, atualize e exclua regras de saída de dados.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"mq:MqttInstanceAccess"
],
"Resource": [
"acs:mq:*:*:instance/<instance-id>"
]
},
{
"Effect": "Allow",
"Action": [
"mq:CreateMqttOutboundRule",
"mq:DeleteMqttOutboundRule",
"mq:ListMqttOutboundRule",
"mq:UpdateMqttOutboundRule"
],
"Resource": [
"acs:mq:*:*:rule/<instance-id>/<rule-id>"
]
}
]
}
Acesso total a uma instância
Conceda a um usuário RAM todas as permissões em uma instância específica do ApsaraMQ for MQTT, incluindo acesso ao console, publicação e assinatura, operações de API e gerenciamento de regras.
Esta política contém quatro instruções:
Acesso à instância: concede acesso à instância.
Metadados do console: carrega a página Overview e a página inicial do console.
Listagem de instâncias: exibe a instância na lista.
Todas as ações com curinga: concede todas as operações em todos os tipos de recurso da instância.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "mq:MqttInstanceAccess",
"Resource": "acs:mq:*:*:instance/<instance-id>"
},
{
"Effect": "Allow",
"Action": "mq:MqttMetaData",
"Resource": "acs:mq:*:*:*"
},
{
"Effect": "Allow",
"Action": "mq:ListMqttInstance",
"Resource": "acs:mq:*:*:instance/<instance-id>"
},
{
"Effect": "Allow",
"Action": "mq:*",
"Resource": "acs:mq:*:*:*/<instance-id>/*"
}
]
}