O ApsaraMQ for RabbitMQ oferece suporte a dois modos de autenticação e autorização: autenticação nativa de código aberto e Resource Access Management (RAM). Ao conectar um cliente de código aberto ao servidor do ApsaraMQ for RabbitMQ, forneça um nome de usuário e uma senha para autenticação conforme o modo selecionado. O acesso é concedido somente após a autenticação bem-sucedida.
Informações básicas
O ApsaraMQ for RabbitMQ suporta dois modos de autenticação e permissão: open-source authentication and permission management e Alibaba Cloud Resource Access Management (RAM). Ao criar uma instância, selecione apenas um desses modos, pois a escolha não pode ser alterada posteriormente. A tabela a seguir compara os dois modos.
|
Modo de autenticação |
Descrição |
Escopo |
Vantagens e desvantagens |
|
Crie nomes de usuário e senhas personalizados e conceda permissões aos usuários. |
SDK do cliente |
|
|
|
Os nomes de usuário e as senhas são gerados a partir de um par de AccessKey (AccessKey ID e AccessKey Secret) do RAM. Para mais informações, consulte Criar credenciais estáticas abaixo. |
|
|
Observações
-
Autenticação e gerenciamento de permissões de código aberto
Somente instâncias serverless de cluster exclusivo recém-adquiridas têm suporte.
Evite usar senhas fracas para prevenir vazamentos de credenciais.
Desative a conta guest padrão.
-
Resource Access Management (RAM)
A conta usada para fazer login no console do ApsaraMQ for RabbitMQ deve ser uma conta Alibaba Cloud ou um usuário RAM com permissões mínimas para visualizar, criar e excluir nomes de usuário e senhas estáticos. Para mais informações sobre permissões de nome de usuário e senha estáticos e operações de autorização, consulte Políticas de permissão do RAM e Autorização de principal e subconta do RAM.
Para criar ou excluir um nome de usuário e senha estáticos, a instância deve estar no estado Running.
O sistema gera um nome de usuário e uma senha exclusivos para cada instância, mesmo ao usar o mesmo par de AccessKey.
Para atualizar um nome de usuário e senha estáticos, exclua o existente e crie um novo.
Ao chamar um SDK para enviar e receber mensagens, use conexões persistentes. Isso evita que o cliente crie novas conexões para cada mensagem, o que consome recursos significativos de rede e do servidor, além de poder acionar a proteção contra SYN flood no servidor. Para mais informações, consulte Conexão.
Autenticação e permissões de código aberto
Criar nome de usuário e senha
Faça login no console do ApsaraMQ for RabbitMQ. No painel de navegação à esquerda, clique em Instances.
Na barra de navegação superior da página Instances, selecione a região da instância que deseja gerenciar. Em seguida, na lista de instâncias, clique no nome da instância desejada.
No painel de navegação à esquerda, clique em Users and Permissions.
Na página Users and Permissions, clique em Create Username/Password.
No painel Create Username/Password, insira o Username, a Password e a Confirm Password e clique em OK.
Editar senha do usuário
Na página Users and Permissions, localize o usuário cuja senha deseja editar. Na coluna Actions, clique em Edit.
No painel Edit Username and Password, insira a nova Password e a Confirm Password e clique em OK.
Excluir usuário
Se um usuário for excluído, qualquer cliente que utilize o nome de usuário e a senha desse usuário para se conectar ao ApsaraMQ for RabbitMQ terá a conexão rejeitada.
Na página Users and Permissions, localize o usuário que deseja excluir. Na coluna Actions, clique em Delete.
Na caixa de diálogo Delete, clique em OK.
Gerenciamento de permissões
A autenticação e o gerenciamento de permissões de código aberto do ApsaraMQ for RabbitMQ limitam-se aos vhosts. As permissões do usuário são válidas apenas dentro dos vhosts aos quais ele foi atribuído. O controle granular sobre as permissões do usuário para operações em Exchanges e Filas utiliza expressões regulares (Regex). Para mais informações, consulte Autenticação e gerenciamento de permissões de código aberto.
Adicionar permissão
Na página Users and Permissions, localize o usuário ao qual deseja adicionar permissões. Na coluna Actions, clique em Manage Permissions.
No painel Manage Permissions, clique em Add Permission.
-
Na lista suspensa, selecione o vhost que deseja configurar, insira as expressões regulares para as operações relevantes e clique em OK.
A expressão regular corresponde aos nomes de exchanges e filas.
.*corresponde a todos os recursos.^$corresponde apenas a uma string vazia. Isso substitui todo o acesso a recursos e impede que o usuário realize qualquer operação.'^(amq\.gen.*|amq\.default)$'permite acesso a recursos gerados pelo sistema e à exchange padrão.
ImportanteSe você utilizar um endpoint público, também configure uma lista de permissões de endereços IP públicos após definir as permissões.
Atualizar permissão
Modificar as permissões de um usuário para um virtual host pode causar erros em clientes conectados a esse virtual host com as credenciais do usuário ao enviar ou consumir mensagens.
No painel Manage Permissions, localize a permissão de virtual host que deseja modificar. Na coluna Actions, clique em Update.
Insira a expressão regular atualizada para a operação e clique em OK.
Excluir permissão
Se as permissões de um usuário para um virtual host forem excluídas, o servidor rejeitará tentativas de conexão de clientes que utilizem essas credenciais para aquele virtual host.
No painel Manage Permissions, localize a permissão de virtual host que deseja excluir. Na coluna Actions, clique em Delete.
Na caixa de diálogo Delete, clique em OK.
Resource Access Management (RAM)
Criar credenciais estáticas
Faça login no console do ApsaraMQ for RabbitMQ. No painel de navegação à esquerda, clique em Instances.
Na barra de navegação superior da página Instances, selecione a região da instância que deseja gerenciar. Em seguida, na lista de instâncias, clique no nome da instância desejada.
No painel de navegação à esquerda, clique em Users and Permissions.
Na página Users and Permissions, clique em Create Username/Password.
-
No painel Create Username/Password, insira o AccessKey ID e o AccessKey Secret e clique em OK.
NotaObtenha o AccessKey ID e o AccessKey Secret no console do RAM da Alibaba Cloud. Para mais informações, consulte Criar um par de AccessKey.
Após criar as credenciais, a página Users and Permissions exibe o novo nome de usuário e senha estáticos, com a senha oculta por padrão. A nova entrada aparece na lista de credenciais com colunas como Instance ID, AccessKey, Username, Password e Creation Time. Clique em Delete na coluna Actions para remover a credencial.
Na coluna Password da credencial estática criada, clique em Display para visualizar a senha.
Se você usar um nome de usuário e senha estáticos criados a partir do AccessKey de um usuário RAM para se conectar ao ApsaraMQ for RabbitMQ e enviar ou receber mensagens, certifique-se de que o usuário RAM tenha as permissões necessárias para envio e recebimento de mensagens. Para mais informações, consulte Políticas de permissão do RAM.
Excluir credenciais estáticas
Um nome de usuário e senha estáticos tornam-se inválidos se forem excluídos ou se o AccessKey usado para criá-los for desativado ou excluído. Se um cliente usar esse nome de usuário e senha estáticos para se conectar ao ApsaraMQ for RabbitMQ, a conexão será rejeitada.
Na página Users and Permissions, localize o nome de usuário e senha estáticos que deseja excluir e, na coluna Actions, clique em Delete.
-
Na caixa de diálogo Prompt, leia atentamente a mensagem e clique em OK.
O nome de usuário e a senha estáticos excluídos deixam de aparecer na página Users and Permissions.
Operações relacionadas
Após criar um nome de usuário e senha, use diretamente um cliente RabbitMQ de código aberto para se conectar ao ApsaraMQ for RabbitMQ. Para mais informações, consulte Lista de SDKs e códigos de exemplo.