Skip to main content

Command Palette

Search for a command to run...

Como melhorar a administração e organização dos Grupos de Segurança da AWS com o VPC Prefix List

Updated
7 min read
Como melhorar a administração e organização dos Grupos de Segurança da AWS com o VPC Prefix List

Introdução

Quando comecei a usar mais a AWS, é comum criar cada vez mais grupos de segurança e com o tempo manter todos eles organizados acaba sendo tedioso, pois você observará que precisará atualizar com uma certa frequência cada grupo de segurança.

Para contextualizar melhor, imagine o seguinte cenário de exemplo:

  • Uma equipe de desenvolvedores solicita para você a criação de um novo servidor web no Windows com IIS instalado, então você prontamente cria uma instância EC2 com um novo grupo de segurança chamado "SG-web-app1".

  • Agora a mesma equipe de desenvolvedores solicita para você a criação de um outro servidor Windows com um novo serviço do Windows instalado, então você prontamente cria uma outra instância EC2 e prefere não utilizar o mesmo grupo de segurança, pois você é organizado e prefere criar um outro grupo de segurança com nome diferente que distingue melhor "SG-services-app1"

  • Então em cada grupo de segurança você adiciona o IP de cada desenvolvedor para o protocolo RDP e permite que eles possam acessar remotamente cada instância, isso se pareceria por exemplo com:

NomeProtocoloPortaIP do Desenvolvedor
SG-web-app1RDP33891.2.3.4
SG-web-app1RDP33895.6.7.8
SG-services-app1RDP33891.2.3.4
SG-services-app1RDP33895.6.7.8

Observe na tabela que você tem 2 IPs diferentes de 2 desenvolvedores diferentes em 2 grupos de seguranças diferentes e aí que todo o problema começa.

Cada desenvolvedor possui um IP dinâmico e não fixo, isso na prática significa que o IP que eles recebem do provedor de internet deles mudam frequentemente.

Então eles começam a enviar para você que perderam o acesso remoto, isso acontece porque o IP real e atual deles não é o mesmo que você liberou no grupo de segurança inicialmente.

Você então solicita o novo IP para eles e então atualiza cada grupo de segurança e o problema é resolvido.

Mas será que está resolvido mesmo? A resposta curta é sim. Mas comece a multiplicar essa situação para mais pessoas na equipe e para mais grupos de segurança e você passará muito tempo lembrando, organizando e atualizando esses grupos de segurança.

Se você está em uma situação semelhante, compartilho a solução que encontrei para reduzir essa complexidade usando o VPC Prefix List.


VPC Prefix List

A lista de prefixo da AWS é um recurso que existe já algum tempo e existem 2 tipos:

  1. Lista de prefixos gerenciadas pela AWS:

    Como o nome indica, essas listas são gerenciadas pela AWS e são usadas para manter um conjunto de intervalos de endereços IP para serviços da AWS como o S3, DynamoDB e CloudFront.

  2. Listas de prefixos gerenciadas pelo cliente:

    São criadas e mantidas por qualquer pessoa que tenha acesso ao Console AWS, as APIs da AWS ou aos SDKs da AWS. É nisso que nos concentraremos.

A lista de prefixo gerenciados pelo cliente da AWS VPC é uma ótima ferramenta disponível, pois fornece a capacidade de rastrear e manter uma lista de valores de bloco CIDR, que podem então ser referenciados por outros componentes de rede da AWS em suas regras.


Como criar um VPC Prefix List

1- Acesse a console AWSVPCManaged Prefix Lists

2- Clique em Create Prefix List

Para isso, atente-se as seguintes regras:

  • Você deve escolher o tipo de família como IPv4 ou IPv6 e a quantidade máxima de IPs que poderá ter essa lista. E esses valores não podem ser alterados depois.

  • Um grupo de segurança possui um limite de 60 regras

    • Cada entrada da sua lista consumirá uma regra do grupo de segurança

    • Por exemplo se sua lista de prefixo tiver 20 endereços IPs, isso consumirá 20 das 60 regras que o grupo de segurança pode ter

    • Então obviamente você não pode adicionar mais do que 60 IPs nessa lista, pois atingirá a cota limite do grupo de segurança e não dará certo

  • Na prática isso significa, que ao adicionar no grupo de segurança uma lista de prefixo, mesmo que seja uma regra, na verdade a lista expandirá pela quantidade de IPs da lista e consumirá do seu limite no grupo de segurança

  • A única exceção é que digamos que você tenha uma lista de prefixo IPv4 com 60 IPs e outra lista de prefixo IPv6 com outros 60 IPs, então você adiciona essas duas regras no grupo de segurança e irá ter então 120 IPs como total, isso iria funcionar porque a cota do grupo de segurança é imposta separadamente para IPv4 e IPv6

  • O mesmo não se aplica por exemplo se você adicionar no grupo de segurança 2 listas de prefixos IPv4 com 60 IPs cada, isso daria um total de 120 IPs IPv4 e ultrapassaria a cota de 60 regras do grupo de segurança

  • Para nosso exemplo, defini um limite de 20 entradas, isso dá uma margem para usar outras regras no grupo de segurança no futuro se for necessário

  • E lembre-se de adicionar /32 ao final do IP que algum desenvolvedor te passar, pois esse é o formato correto do CIDR aqui.

Então planeje bem e se atente a este detalhe do limite e cota no grupo de segurança


Como configurar o Grupo de Segurança

1- Uma vez criado, você verá ela juntamente com as listas de prefixos gerenciados pela AWS:

2- Agora acesse o grupo de segurança e adicione a regra de entrada com o ID da lista de prefixo

Pronto!

Para manter ainda mais organizado, costumo criar o grupo de segurança com o nome SG-<name>-team-rdp-<env>, por exemplo SG-simplescloud-team-rdp-qa e sua regra de entrada ficaria parecido com a imagem acima.

Então o que está acontecendo na prática é que:

  • As instâncias EC2 web-app1 e services-app1 do nosso exemplo, agora terão esse grupo de segurança adicional SG-<name>-team-rdp-<env> anexados nas instâncias e permitirá o acesso remoto para os IPs que serão consultados na lista de prefixo criada. Por exemplo a instância "web-app1" teria dois grupos de segurança anexados:
InstânciaGrupo de Segurança 1Grupo de Segurança 2
web-app1SG-http-httpsSG-simplescloud-team-rdp-qa
Porta 80 e 443Porta 3389
  • Desta forma, sua instância terá grupos de segurança dedicados pelos protocolos que as regras permitem, evitando aqueles grupos de segurança "launch-wizard" que possui todas regras misturadas de HTTP, HTTPS, RDP, MSSQL, etc. Facilitando assim a administração a longo prazo

  • Desta forma ainda, os desenvolvedores ainda sim precisarão fornecer para você seus respectivos IPs dinâmicos atualizados, a grande diferença agora é que você não precisará mais entrar em cada grupo de segurança e ir atualizando, atualizará apenas a lista de prefixo em um único lugar e isso será replicado para todos os grupos de segurança que fizer referência a ela

  • Diminuindo muito então a sobrecarga de administração e organização dos grupos de segurança.


Se ainda não estiver convencido dos benefícios, passamos por mais um exemplo:

Imagine que você tenha os IPs repetidos nos grupos de segurança X, Y e Z:

Aplicando essa solução, isso poderia ser modificado por:

Observe então que não será mais necessário entrar em cada grupo de segurança para atualizar, uma vez que você atualizar a lista de prefixo centralmente, isso será aplicado automaticamente para todos os grupos de segurança que fazem referência para essa lista de prefixo em suas regras.


Conclusão

Administrar e organizar os grupos de segurança da AWS é uma tarefa importante relacionada a segurança, porém ela pode ser tediosa e trabalhosa ao longo do tempo. Seu tempo é valioso demais para ficar perdendo tempo com esse tipo de tarefa, então compartilhei uma solução com VPC Prefix List para reduzir drasticamente as atualizações diretamente nos grupos de segurança e então manter as coisas organizadas com o menor esforço possível.

Espero que essas informações tenham sido úteis para você!

More from this blog

SimplesCloud

27 posts

Um blog de Cloud DevOps • SRE para compartilhar meus estudos, o que aprendi e experiências através de artigos, tutoriais, cursos gratuitos, cases e dicas. Confira!