O Resource Access Management (RAM) permite delegar permissões por meio de usuários RAM. Conceda diferentes permissões a esses usuários conforme as necessidades do seu negócio para evitar riscos de segurança associados à exposição da AccessKey da sua conta Alibaba Cloud.
Contexto
A Empresa A ativou o serviço ApsaraMQ for RabbitMQ e precisa que seus colaboradores gerenciem recursos desse serviço, como instâncias, Vhosts, Queues e Exchanges. Como as responsabilidades variam entre os funcionários, cada um necessita de permissões específicas. Os requisitos da Empresa A são:
Por motivos de segurança e confiança, a empresa prefere não compartilhar diretamente a AccessKey da conta Alibaba Cloud com os colaboradores. Em vez disso, opta por criar contas de usuário individuais.
Os usuários devem gerenciar recursos apenas dentro das permissões concedidas. Todo o uso de recursos é faturado na conta Alibaba Cloud da empresa, e não nas contas individuais dos usuários.
A empresa deve poder revogar permissões ou excluir contas de usuário a qualquer momento.
Etapa 1: Criar um usuário RAM
Para criar usuários RAM para os colaboradores, faça login no console RAM usando a conta Alibaba Cloud da Empresa A.
Procedimento
Console
Faça login no console RAM com sua conta Alibaba Cloud ou como um usuário RAM com permissões administrativas (um usuário ao qual a política
AliyunRAMFullAccessestá anexada).No painel de navegação à esquerda, escolha .
Na página Users, clique em Create User.
-
Na página Create User, na seção User Account Information, configure as informações básicas do usuário.
Logon Name (obrigatório): Até 64 caracteres. Permite letras, dígitos, pontos (.), hifens (-) e sublinhados (_).
Display Name (opcional): O nome pode ter até 128 caracteres.
Tag (opcional): Clique em
e insira uma chave de tag e um valor de tag para categorizar e gerenciar usuários.
NotaClique em Add User para criar vários usuários RAM em massa.
-
Na seção Access Mode, selecione um modo de acesso conforme o tipo de usuário.
ImportanteComo prática recomendada de segurança, selecione apenas um modo de acesso por usuário para separar o acesso humano via console do acesso programático de aplicações.
Um par de AccessKey vazado compromete sua conta. Utilize tokens do Security Token Service (STS) (credenciais temporárias) para reduzir riscos. Consulte Práticas recomendadas para usar credenciais de acesso ao chamar APIs da Alibaba Cloud.
Acesso ao console
Selecione Console Access.
Set Logon Password: Gere automaticamente ou defina uma senha personalizada. Senhas personalizadas devem atender aos requisitos de complexidade configurados. Consulte Definir uma política de senha para usuários RAM.
Password Reset: Especifique se o usuário deve redefinir a senha no próximo login.
Enable MFA: O MFA é obrigatório para todos os usuários por padrão. Para alterar essa configuração, consulte Gerenciar configurações de segurança de usuários RAM. Os usuários devem vincular um dispositivo MFA no primeiro login. Consulte Vincular um dispositivo MFA.
Acesso programático
Selecione Using permanent AccessKey to access.
O sistema cria automaticamente um AccessKey ID e um AccessKey Secret para o usuário RAM.
ImportanteO AccessKey Secret é exibido apenas no momento da criação e não pode ser recuperado posteriormente. Baixe ou copie e salve o AccessKey Secret imediatamente. Um par de AccessKey vazado compromete todos os recursos da sua conta. Consulte Criar um par de AccessKey.
OpenAPI
Criar um usuário RAM para acesso ao console
Chame GetDefaultDomain para obter o sufixo de login padrão de uma conta. O formato é
<AccountAlias>.onaliyun.com.-
Chame a operação CreateUser para criar um usuário RAM. Os seguintes parâmetros são obrigatórios:
UserPrincipalName: O nome de login do usuário RAM. O formato é<username>@<AccountAlias>.onaliyun.com, onde<username>é o nome de usuário RAM e<AccountAlias>.onaliyun.comé o sufixo de login padrão.DisplayName: O nome de exibição do usuário RAM. Pode ser diferente do<username>mencionado acima.
-
Chame a operação CreateLoginProfile para criar um perfil de login e configurar o modo de acesso e o MFA. Configurações recomendadas:
UserPrincipalName: As informações do usuário criado na etapa anterior.Password: Defina conforme os requisitos de força de senha da conta. Chame a operação GetPasswordPolicy para consultar a política de senha atual.MFABindRequired: Defina comotruepara exigir MFA para usuários RAM.Status: Ativa ou desativa o login por senha no console. Padrão:Active.
Criar um usuário RAM para acesso programático
Chame GetDefaultDomain para obter o sufixo de login padrão de uma conta. O sufixo tem o formato
<AccountAlias>.onaliyun.com.-
Chame a operação CreateUser para criar um usuário RAM. Os seguintes parâmetros são obrigatórios:
UserPrincipalName: O nome de login do usuário RAM no formato<username>@<AccountAlias>.onaliyun.com, onde<username>é o nome de usuário RAM e<AccountAlias>.onaliyun.comé o sufixo de login padrão.DisplayName: O nome de exibição do usuário RAM, que pode ser diferente do<username>mencionado acima.
-
Para criar um par de AccessKey (AccessKey), chame a operação CreateAccessKey e passe apenas o
UserPrincipalNamedo usuário criado na etapa anterior.ImportanteA resposta de
CreateAccessKeycontém o AccessKeyID e o AccessKeySecret. O AccessKeySecret aparece apenas uma vez e não pode ser recuperado posteriormente — salve-o imediatamente. Uma AccessKey vazada compromete todos os recursos da sua conta. Para mais informações, consulte Criar uma AccessKey.
Etapa 2: Conceder permissões a usuários RAM
Conceda permissões diferentes para cada usuário RAM conforme necessário.
Faça login no console RAM como administrador RAM.
No painel de navegação à esquerda, escolha .
Localize o usuário RAM desejado e clique em Attach Policy na coluna Actions.
-
No painel Attach Policy, conceda permissões ao usuário RAM.
-
Selecione um Resource Scope.
Account: As permissões se aplicam à conta Alibaba Cloud atual.
-
Resource Group: As permissões se aplicam ao grupo de recursos especificado.
NotaUma autorização para um grupo de recursos só entra em vigor se o serviço de nuvem oferecer suporte a grupos de recursos. Para mais informações, consulte Serviços de nuvem compatíveis com grupos de recursos.
-
Especifique um Principal.
O principal é o usuário RAM ao qual você concede permissões.
-
Selecione a Policy.
Uma política é um conjunto de permissões. Existem dois tipos de políticas:
System Policy: Criadas e mantidas pela Alibaba Cloud. Você pode usar essas políticas, mas não pode modificá-las. Para mais informações, consulte Serviços compatíveis com RAM.
Custom Policy: Você pode criar, atualizar e excluir essas políticas. Para mais informações, consulte Criar uma política personalizada.
Para configurar permissões refinadas para recursos do ApsaraMQ for RabbitMQ, como instâncias, Vhosts e filas, crie uma política personalizada. O exemplo a seguir mostra uma política personalizada em JSON:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "amqp:*", "Resource": "acs:amqp:*:*:instance/<InstanceID>/vhost/<VhostName>" } ] }Substitua
<InstanceID>pelo ID real da instância e<VhostName>pelo nome real do Vhost. O campoResourceoferece suporte aos seguintes níveis de granularidade:Nível de instância:
acs:amqp:*:*:instance/<InstanceID>Nível de Vhost:
acs:amqp:*:*:instance/<InstanceID>/vhost/<VhostName>Nível de fila:
acs:amqp:*:*:instance/<InstanceID>/vhost/<VhostName>/queue/<QueueName>
NotaO sistema identifica automaticamente políticas de sistema de alto risco, como AdministratorAccess e AliyunRAMFullAccess. Ao conceder permissões, evite atribuir políticas de alto risco desnecessárias.
Solução de problemas: Permissões RAM insuficientes
Se você encontrar erros relacionados a permissões ao conectar-se ou consumir mensagens do ApsaraMQ for RabbitMQ, verifique os seguintes pontos:
BrokerUnreachableException ou InstanceNotServing (.NET SDK): Se seu cliente .NET SDK relatar
BrokerUnreachableExceptionouInstanceNotServinge a conexão de rede estiver verificada como normal, verifique se o usuário RAM possui permissões de operação para a instância e o Vhost de destino. Atualize a política personalizada para conceder permissõesamqp:*nos recursos relevantes.AccessDeniedByRamPolicy (consumo de fila adiada): Se o consumo de fila adiada for interrompido ou houver acúmulo de mensagens com o erro
AccessDeniedByRamPolicy, verifique se o usuário RAM tem permissões de operação para a instância, o Vhost e as filas específicas de destino (por exemplo,event_task_result_queryeevent_task_status). Atualize o campoResourcena sua política personalizada para incluir as filas afetadas.
Clique em Grant permissions.
-
Clique em Close.
Próximas etapas
Usuários RAM podem acessar o ApsaraMQ for RabbitMQ das seguintes maneiras:
-
Console
Abra a página de login de usuário RAM no navegador.
-
Na página RAM User Logon, insira o nome de usuário RAM, clique em Next, insira a senha e clique em Log On.
NotaO nome de usuário RAM deve estar no formato <$username>@<$AccountAlias> ou <$username>@<$AccountAlias>.onaliyun.com. <$AccountAlias> é o alias da conta. Se nenhum alias estiver definido, o ID da conta Alibaba Cloud será usado por padrão.
-
API
Utilize o AccessKey ID e o AccessKey Secret do usuário RAM no seu código para chamar a API e acessar o ApsaraMQ for RabbitMQ.