Todos os produtos
Search
Central de documentação

Auto Scaling:Use tags para gerenciar permissões de grupos de dimensionamento

Última atualização: Jul 03, 2026

O Auto Scaling permite categorizar e controlar o acesso a grupos de dimensionamento por meio de tags. É possível conceder permissões refinadas para grupos individuais ou para vários grupos que compartilham uma tag específica. Este tópico explica como usar a autenticação baseada em tags para gerenciar permissões de usuários RAM, aumentando a eficiência da gestão e reduzindo o risco de vazamento de dados.

Contexto

  • Uma tag é um identificador de recurso de nuvem. Tags permitem categorizar, pesquisar e agregar recursos de nuvem com as mesmas características sob diferentes dimensões. Para mais informações, consulte Tags.

  • O Resource Access Management (RAM) possibilita gerenciar identidades de usuários e controlar o acesso e as operações nos seus recursos de nuvem com base em políticas. Para mais informações, consulte O que é o RAM?.

Ao utilizar tags como condições em uma política do Resource Access Management (RAM), você implementa controle refinado sobre o Auto Scaling.

A figura a seguir ilustra como usar tags para gerenciar permissões de acesso e operação de recursos para usuários RAM, processo conhecido como autenticação baseada em tags.

image

APIs sem suporte à autenticação por tag

Após anexar uma política de autenticação baseada em tags a um usuário RAM, essa autenticação não terá suporte quando o usuário chamar as seguintes operações de API para gerenciar o Auto Scaling.

API

Suporte à autenticação por tag

DescribeRegions

Não

Para tarefas agendadas não associadas a um grupo de dimensionamento:

  • CreateScheduledTask

  • ModifyScheduledTask

  • DescribeScheduledTasks

  • DeleteScheduledTask

Não

Para tarefas acionadas por eventos não associadas a um grupo de dimensionamento:

  • CreateAlarm

  • DescribeAlarms

  • ModifyAlarm

  • EnableAlarm

  • DeleteAlarm

Não

Cenário de exemplo

Este tópico utiliza o cenário a seguir para demonstrar como implementar a autenticação baseada em tags.

Suponha que você tenha criado dois grupos de dimensionamento para desenvolvimento de jogos. Cada grupo possui tags de ambiente e equipe. Você precisa conceder a um usuário RAM permissões específicas sobre os seguintes grupos de dimensionamento:

Grupo de dimensionamento

Nome

Tag

Grupo de dimensionamento 1

asg-001

  • Tag 1: environment:test, onde a chave da tag é environment e o valor da tag é test.

  • Tag 2: team:game1, onde a chave da tag é team e o valor da tag é game1.

Grupo de dimensionamento 2

asg-002

  • Tag 1: environment:dev, onde a chave da tag é environment e o valor da tag é dev.

  • Tag 2: team:game2, onde a chave da tag é team e o valor da tag é game2.

Os requisitos específicos de controle de acesso são:

  • Cenário 1: Não é permitido crie grupos de dimensionamento sem tags. O Grupo de dimensionamento 1 só será criado com sucesso se você adicionar as tags environment:test e team:game1 durante a criação.

  • Cenário 2: Ao consultar grupos de dimensionamento, apenas os recursos do Grupo de dimensionamento 1 estarão visíveis, pois ele está vinculado às tags environment:test e team:game1.

  • Cenário 3: A gestão é permitida apenas para recursos no Grupo de dimensionamento 1 (com as tags environment:test e team:game1), mas não para recursos no Grupo de dimensionamento 2 (com as tags environment:dev e team:game2).

Procedimento

Nota

Antes de começar, certifique-se de ter criado um usuário RAM. Para mais informações, consulte Criar um usuário RAM.

  1. Crie dois grupos de dimensionamento.

    Para mais informações, consulte Configurar grupos de dimensionamento. Consulte Cenário de exemplo para obter detalhes sobre os grupos de dimensionamento.

  2. Faça login no RAM console.

  3. Crie uma política personalizada.

    Para mais informações, consulte Criar uma política personalizada.

    É possível defina múltiplas condições de tag para recursos de nuvem no bloco Condition de uma política, restringindo assim as permissões para executar operações em recursos do Auto Scaling. Condições com suporte para autenticação baseada em tags:

    Condição baseada em tag

    Descrição

    acs:RequestTag

    Verifica se a solicitação inclui uma tag específica.

    Se uma solicitação de API não incluir parâmetros de tag, o uso de acs:RequestTag causará falha na autenticação.

    acs:ResourceTag

    Verifica se o recurso especifique na solicitação contém uma tag específica.

    Caso utilize acs:ResourceTag em uma solicitação de API que não contenha um parâmetro de ID de recurso, a autenticação falhará.

    O bloco de código a seguir mostra um exemplo completo de política:

    {
        "Version": "1",
        "Statement": [
             {
               "Effect": "Allow",
               "Action": "ess:Create*",
               "Resource": "*",
               "Condition": {
                       "StringEquals": {
                            "acs:RequestTag/environment": "test",
                            "acs:RequestTag/team": "game1"
                       }
                  }
             },
             {
                "Effect": "Allow",
                "Action": "ess:Describe*",
                "Resource": "*",
                "Condition": {
                        "StringEquals": {
                        "acs:RequestTag/environment": "test",
                        "acs:RequestTag/team": "game1"
                        }
                  }
             },
             {
                "Action": "ess:*",
                "Effect": "Allow",
                "Resource": "*",
                "Condition": {
                    "StringEquals": {
                        "acs:ResourceTag/environment": "test",
                        "acs:ResourceTag/team": "game1"
                      }
                  }
             },
             {
                "Effect": "Allow",
                "Action": [
                       "ess:Describe*",
                       "ess:List*",
                       "ess:DescribeRegions",
                       "ess:CreateScheduledTask",
                       "ess:ModifyScheduledTask",
                       "ess:DescribeScheduledTasks",
                       "ess:DeleteScheduledTask",
                       "ess:CreateAlarm",
                       "ess:DescribeAlarms",
                       "ess:ModifyAlarm",
                       "ess:EnableAlarm",
                       "ess:DeleteAlarm"
                    ],
        "Resource": "*"
          }
       ]
    }
    • Cenário 1: Impor tags específicas durante a criação do grupo de dimensionamento

      Neste caso, o Grupo de dimensionamento 1 só será criado com sucesso se as tags environment:test e team:game1 estiverem vinculadas a ele durante a criação.

      A política abaixo corresponde a este cenário:

      {
          "Effect": "Allow",
          "Action": "ess:Create*",
          "Resource": "*",
          "Condition": {
              "StringEquals": {
                  "acs:RequestTag/environment": "test",
                  "acs:RequestTag/team": "game1"
              }
          }
      }
    • Cenário 2: Permitir que usuários visualize apenas o Grupo de dimensionamento 1

      Isso significa que, ao vincular as tags environment:test e team:game1 ao Grupo de dimensionamento 1, apenas os recursos desse grupo serão retornados nas consultas.

      A política abaixo corresponde a este cenário:

      {
          "Effect": "Allow",
          "Action": "ess:Describe*",
          "Resource": "*",
          "Condition": {
              "StringEquals": {
                  "acs:RequestTag/environment": "test",
                  "acs:RequestTag/team": "game1"
              }
          }
      }
    • Cenário 3: Permitir que usuários gerencie apenas o Grupo de dimensionamento 1 e negar acesso ao Grupo de dimensionamento 2

      Por exemplo, o Grupo de dimensionamento 1 está vinculado às tags environment:test e team:game1, enquanto o Grupo de dimensionamento 2 está vinculado às tags environment:dev e team:game2.

      A política abaixo corresponde a este cenário:

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": "ess:*",
                  "Effect": "Allow",
                  "Resource": "*",
                  "Condition": {
                      "StringEquals": {
                          "acs:ResourceTag/environment": "test",
                          "acs:ResourceTag/team": "game1"
                      }
                  }
              },
              {
                  "Action": "ess:*",
                  "Effect": "Deny",
                  "Resource": "*",
                  "Condition": {
                      "StringEquals": {
                          "acs:ResourceTag/environment": "dev",
                          "acs:ResourceTag/team": "game2"
                      }
                  }
              },      
              {
                 "Effect": "Allow",
                 "Action": [
                         "ess:DescribeRegions",
                         "ess:CreateScheduledTask",
                         "ess:ModifyScheduledTask",
                         "ess:DescribeScheduledTasks",
                         "ess:DeleteScheduledTask",
                         "ess:CreateAlarm",
                         "ess:DescribeAlarms",
                         "ess:ModifyAlarm",
                         "ess:EnableAlarm",
                         "ess:DeleteAlarm"
                      ],
          "Resource": "*"
            }
         ]
      }
  4. Anexe a política personalizada ao usuário RAM.

    Para mais informações, consulte Conceder permissões a um usuário RAM.

  5. Verifique se a política entrou em vigor.

    • Valide o Cenário 1 criando o Grupo de dimensionamento 1

      • Como o Grupo de dimensionamento 1 possui as tags environment:test e team:game1, ele pode ser criado com sucesso.

      • Se você tentar crie o grupo sem as tags especifique, a criação será negada devido a permissões insuficientes. Um erro diferente ocorre caso o Auto Scaling não tenha as permissões necessárias da OpenAPI: o erro Forbidden.Unauthorized é retornado com a mensagem: The user has not fully authorized the OpenAPI interface for ESS. Please authorize and try again. Nessa situação, conceda as permissões necessárias e tente novamente.

    • Valide o Cenário 2 consultando grupos de dimensionamento

      • Para um grupo de dimensionamento que tenha as tags environment:test e team:game1, ainda é possível recuperar suas informações realizando uma consulta sem filtrar por tags.

      • Caso consulte um grupo diferente do Grupo de dimensionamento 1 que não esteja marcado com environment:test e team:game1, a consulta não retornará resultados.

      • Se você não especifique um grupo de dimensionamento e pesquisar apenas pelas tags environment:test e team:game1, a consulta retornará todos os grupos de dimensionamento que possuem essas tags.

    • Valide o Cenário 3 excluindo grupos de dimensionamento

      • Se o Grupo de dimensionamento 1 tiver as tags environment:test e team:game1, você poderá exclua o grupo.

      • Quando um grupo de dimensionamento não estiver associado às tags environment:test e team:game1, ou possuir outras tags, uma mensagem indicará que você não tem permissão para excluí-lo.

Documentos relacionados