Anexe tags às instâncias do ECS e configure uma política personalizada do RAM para restringir o acesso de usuários específicos do RAM, permitindo que visualize e gerencie apenas as instâncias com tags.
Contexto
Uma política personalizada usa o bloco condition para especifique as tags autorizadas. As seguintes chaves de condição aplicam-se a tags:
acs:RequestTag/<tag-key>: Tag que deve estar presente na requisição da API.acs:ResourceTag/<tag-key>: Tag que deve estar anexada ao recurso acessado.
Procedimento
Neste exemplo, a usuária do RAM Alice pode visualize e gerencie apenas as instâncias do ECS com as tags owner:alice e environment:production.
O processo de autorização não afeta as instâncias do ECS que já estão em execução.
Execute as etapas a seguir usando a sua conta da Alibaba Cloud ou um usuário do RAM com permissões administrativas.
-
Crie a usuária do RAM Alice no console do RAM.
-
Anexe tags às instâncias do ECS de destino.
Anexe as tags
owner:aliceeenvironment:productionàs instâncias do ECS de destino.Use um dos métodos a seguir para anexar tags:
Crie e anexe as tags no console de Tags. Create a tag, Add tags.
Crie e anexe tags diretamente às suas instâncias no console do ECS. Create and attach tags.
-
Crie uma política personalizada chamada UseTagAccessRes no console do RAM.
Crie uma política com o seguinte conteúdo. Create a custom policy.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/owner": [ "alice" ], "acs:ResourceTag/environment": [ "production" ] } } }, { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/owner": [ "alice" ], "acs:RequestTag/environment": [ "production" ] } } }, { "Effect": "Allow", "Action": [ "ecs:List*", "ecs:DescribeInstanceStatus", "ecs:DescribeInstanceVncUrl", "ecs:DescribeInstanceAutoRenewAttribute", "ecs:DescribeInstanceRamRole", "ecs:DescribeInstanceTypeFamilies", "ecs:DescribeInstanceTypes", "ecs:DescribeInstanceAttachmentAttributes", "ecs:DescribeInstancesFullStatus", "ecs:DescribeInstanceHistoryEvents", "ecs:DescribeInstanceMonitorData", "ecs:DescribeInstanceMaintenanceAttributes", "ecs:DescribeInstanceModificationPrice", "ecs:DescribeA*", "ecs:DescribeC*", "ecs:DescribeD*", "ecs:DescribeE*", "ecs:DescribeH*", "ecs:DescribeIm*", "ecs:DescribeInv*", "ecs:DescribeK*", "ecs:DescribeL*", "ecs:DescribeM*", "ecs:DescribeN*", "ecs:DescribeP*", "ecs:DescribeR*", "ecs:DescribeS*", "ecs:DescribeT*", "ecs:DescribeZ*", "vpc:DescribeVpcs", "vpc:DescribeVSwitches" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "ecs:DeleteTags", "ecs:UntagResources", "ecs:CreateTags", "ecs:TagResources" ], "Resource": "*" } ] }Descrição da política:
Política
Descrição
{ "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/owner": "alice", "acs:RequestTag/environment": "production" } } }Permite ações, como crie uma instância, apenas se a requisição incluir as tags
owner:aliceeenvironment:production.{ "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/owner": [ "alice" ], "acs:ResourceTag/environment": [ "production" ] } } }Permite operações de gerenciamento em instâncias do ECS com as tags
owner:aliceeenvironment:production.{ "Effect": "Allow", "Action": [ "ecs:List*", "ecs:DescribeInstanceStatus", "ecs:DescribeInstanceVncUrl", "ecs:DescribeInstanceAutoRenewAttribute", "ecs:DescribeInstanceRamRole", "ecs:DescribeInstanceTypeFamilies", "ecs:DescribeInstanceTypes", "ecs:DescribeInstanceAttachmentAttributes", "ecs:DescribeInstancesFullStatus", "ecs:DescribeInstanceHistoryEvents", "ecs:DescribeInstanceMonitorData", "ecs:DescribeInstanceMaintenanceAttributes", "ecs:DescribeInstanceModificationPrice", "ecs:DescribeA*", "ecs:DescribeC*", "ecs:DescribeD*", "ecs:DescribeE*", "ecs:DescribeH*", "ecs:DescribeIm*", "ecs:DescribeInv*", "ecs:DescribeK*", "ecs:DescribeL*", "ecs:DescribeM*", "ecs:DescribeN*", "ecs:DescribeP*", "ecs:DescribeR*", "ecs:DescribeS*", "ecs:DescribeT*", "ecs:DescribeZ*", "vpc:DescribeVpcs", "vpc:DescribeVSwitches" ], "Resource": "*" }Concede permissões para listar e descrever instâncias do ECS. O console precisa dessas permissões para exibir informações da instância antes que os filtros baseados em tags entrem em vigor.
{ "Effect": "Deny", "Action": [ "ecs:DeleteTags", "ecs:UntagResources", "ecs:CreateTags", "ecs:TagResources" ], "Resource": "*" }Nega permissões para crie, anexar, desanexar ou exclua tags.
Isso impede que o usuário do RAM contorne as restrições de acesso modificando tags.
-
Anexe a política UseTagAccessRes à usuária do RAM Alice no console do RAM.
Ao conceder a permissão, defina Account como Account, selecione a usuária do RAM Alice como Principal e escolha a política personalizada UseTagAccessRes. Grant permissions to a RAM user.
Verificação do resultado
-
Faça logon no console do ECS como a usuária do RAM Alice.
No painel de navegação à esquerda, escolha .
No canto superior esquerdo da barra de navegação, selecione a região.
-
Na página Instance, clique em Filter by Tag ao lado da barra de pesquisa e selecione as tags
owner:aliceeenvironment:production.ImportanteO usuário do RAM deve filtrar pelas tags corretas para visualize as instâncias do ECS com tags. Caso contrário, nenhuma instância é exibida.
Verifique se é possível visualize e gerencie apenas as instâncias do ECS com as tags
owner:aliceeenvironment:production.
Referências
RAM authorization aborda as regras de autorização do RAM para recursos do ECS.