Use tags para agrupar instâncias ECS e conceder aos usuários RAM acesso apenas às instâncias atribuídas a eles.
Caso de uso
Sua conta Alibaba Cloud possui 10 instâncias ECS. Você deseja conceder à equipe developer acesso a cinco instâncias e à equipe operator acesso às outras cinco, restringindo cada equipe a visualizar e gerenciar apenas suas respectivas instâncias.
Solução
-
Identifique as instâncias ECS das diferentes equipes usando tags.
Crie duas tags para identificar as instâncias das equipes
developereoperator. -
Agrupe os usuários RAM.
Crie dois grupos de usuários RAM chamados
developereoperatore adicione os usuários RAM de cada equipe ao grupo correspondente. -
Conceda permissões aos grupos de usuários RAM com base em tags.
Crie duas políticas personalizadas que usem o elemento
Conditioncom condições baseadas em tags para definir o escopo de recursos e anexe cada política ao grupo correspondente. Os usuários RAM de um grupo herdam as permissões da política do grupo.acs:RequestTag/<tag-key>: tag obrigatória na solicitação de API.acs:ResourceTag/<tag-key>: tag obrigatória no recurso acessado.
A tabela a seguir lista o plano de recursos.
|
Equipe |
Grupo de usuários RAM |
Política RAM |
Tag |
|
Equipe de desenvolvimento |
developer |
policyForDevTeam |
chave da tag: team, valor da tag: dev |
|
Equipe de operações |
operator |
policyForOpsTeam |
chave da tag: team, valor da tag: ops |
Procedimento
Faça login com uma conta Alibaba Cloud ou um usuário RAM que possua as permissões AliyunRAMFullAccess e AliyunECSFullAccess.
-
No console ECS, crie e vincule tags às suas instâncias ECS.
Vincule a tag
team:deva cinco instâncias ECS e a tagteam:opsàs outras cinco instâncias. Criar e vincular tags. -
No console RAM, crie grupos de usuários RAM.
Crie dois grupos de usuários RAM:
developereoperator. Criar um grupo de usuários RAM. -
No console RAM, crie usuários RAM e adicione-os aos respectivos grupos.
Crie usuários RAM para cada equipe e adicione-os ao grupo
developerouoperator. Criar um usuário RAM. Adicionar um usuário RAM a um grupo de usuários RAM. -
No console RAM, crie políticas personalizadas.
Crie duas políticas personalizadas:
policyForDevTeamepolicyForOpsTeam. Criar uma política personalizada.Documento da política
policyForDevTeam:{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/team": [ "dev" ] } } }, { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/team": [ "dev" ] } } }, { "Effect": "Allow", "Action": [ "ecs:DescribeTags", "ecs:ListTagResources" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "ecs:DeleteTags", "ecs:UntagResources", "ecs:CreateTags", "ecs:TagResources" ], "Resource": "*" } ] }Documento da política
policyForOpsTeam:{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/team": [ "ops" ] } } }, { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/team": [ "ops" ] } } }, { "Effect": "Allow", "Action": [ "ecs:DescribeTags", "ecs:ListTagResources" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "ecs:DeleteTags", "ecs:UntagResources", "ecs:CreateTags", "ecs:TagResources" ], "Resource": "*" } ] }A tabela a seguir descreve cada instrução da política.
Instrução da política
Descrição
{ "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/team": [ "dev" ] } } }Permite filtrar instâncias ECS com a tag
team:dev.{ "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/team": [ "dev" ] } } }Permite gerenciar instâncias ECS com a tag
team:dev.{ "Effect": "Allow", "Action": [ "ecs:DescribeTags", "ecs:ListTagResources" ], "Resource": "*" }Permite visualizar todas as tags nas instâncias ECS.
NotaSe não for necessário listar todas as tags, remova esta instrução. Sem ela, ainda é possível filtrar instâncias ECS inserindo manualmente uma chave e um valor de tag.
{ "Effect": "Deny", "Action": [ "ecs:DeleteTags", "ecs:UntagResources", "ecs:CreateTags", "ecs:TagResources" ], "Resource": "*" }Nega permissões para excluir, desvincular, criar e vincular tags.
Impede que usuários RAM modifiquem tags e percam o acesso aos recursos.
-
Conceda permissões aos grupos de usuários RAM.
Anexe a política
policyForDevTeamao grupodevelopere a políticapolicyForOpsTeamao grupooperator. Conceder permissões a um grupo de usuários RAM.NotaOs usuários RAM herdam automaticamente as permissões de seu grupo.
Verifique os resultados
Faça login no console ECS como um usuário RAM.
No painel de navegação à esquerda, escolha .
Na barra de navegação superior, selecione uma região.
-
Na página Instance, clique em Filter by Tag ao lado da caixa de pesquisa e selecione a chave e o valor da tag apropriados.
Por exemplo, um usuário RAM do grupo
developerpode filtrar as instâncias autorizadas selecionando a tagteam:dev.ImportanteOs usuários RAM só conseguem visualizar instâncias ECS que correspondam à sua tag autorizada. Sem o filtro de tag, a lista de instâncias aparece vazia.
Visualize e gerencie as instâncias ECS autorizadas.
Mais informações
É possível aplicar a mesma autorização baseada em tags a outros recursos ECS, como block storage, snapshots, imagens, grupos de segurança, elastic network interfaces, dedicated hosts e pares de chaves SSH.