O blog da AWS

Aumentando a segurança em seu ambiente de containers através de VPC Endpoints

Por Jesús Humberto Contreras Rancurello, Arquiteto de Soluções, AWS México

 

Os clientes estão adotando rapidamente o uso de containers como base tecnológica em sua estratégia de microsserviços e a AWS trabalha para ser o melhor local para executar estes workloads.

Com diferentes orquestradores como o Amazon Elastic Container Service (Amazon ECS) ou o Amazon Elastic Kubernetes Service (Amazon EKS), a execução de containers na nuvem é muito simples, podendo ser ainda mais facilitada através do uso do AWS Fargate, que permite a execução de containers sem que haja a necessidade de gerenciamento inclusive de máquinas virtuais, permitindo que os clientes mantenham o foco apenas em suas aplicações.

Um dos aspectos cruciais nesta estratégia de adoção de containers e microsserviços é possuir um local para armazenar suas imagens de containers de forma segura e escalável, e exatamente pensando nisso que a AWS criou um serviço de registro de imagens chamado Amazon Elastic Container Registry (Amazon ECR).

Quando falamos em segurança, no entanto, é importante entender que muitos destes microsserviços podem ser executados em VPCs em ambientes que não possuam acesso à internet e é aí que as coisas ficam mais interessantes.

Para que orquestradores como o Amazon ECS ou o Amazon EKS obtenham imagens armazenadas no ECR, por padrão, é necessário conectar-se ao endpoint público do serviço do ECR e isto não é possível a partir de VPCs em que não existam rotas para a internet através de um Internet Gateway (IGW).

Portanto, a questão é: como você pode executar imagens de container armazenadas no Amazon ECR com o Amazon ECS ou o Amazon EKS sem acessar a internet?

Neste post, explicaremos como é possível realizar o download de imagens a partir do ECR com uma conexão privada usando VPC Endpoints.

 

Apresentando os VPC Endpoints

VPCs endpoints são recursos que permitem que você conecte sua VPC de maneira privada a serviços da AWS compatíveis e endpoints de serviços baseados no PrivateLink sem a necessidade do uso de Internet Gateways, NAT Gateways, conexões via VPN ou AWS Direct Connect. Utilizando VPC Endpoints, as instâncias em sua VPC não precisarão de endereços IP públicos para se comunicar com outros recursos da AWS: o tráfego entre sua VPC e o serviço necessário nunca sai da rede da Amazon.

Os VPC Endpoints são dispositivos virtuais. Eles são componentes redundantes e altamente disponíveis da VPC que permitem a comunicação entre sua VPC e outros serviços, sem implementar riscos de disponibilidade ou impor restrições de largura de banda ao tráfego da rede.

Então, ter um VPC Endpoint resolve as coisas, certo? Exatamente!

Abaixo, listo as etapas necessárias para que meu cluster Amazon ECS / Fargate pudesse realizar o download de imagens armazenadas em um repositório Amazon ECR na mesma região de forma privada, sem que houvesse a necessidade da utilização de um Internet Gateway (IGW).

Na mesma VPC em que tenho meu Cluster ECS, realizei a criação de três VPC Endpoints diferentes. Observe o nome do serviço que eu conectei e o tipo de terminal para cada VPC Endpoint:

O procedimento para a criação de cada um destes três VPC Endpoints é o seguinte: acesse o console da VPC, e então clique em Endpoints no menu lateral esquerdo da tela. Em seguida, clique no botão “Create Endpoint”. Depois disso, procure por:

com.amazonaws.region.s3

Notas:

  • Selecione a VPC em que seu Cluster de ECS foi criado
  • Selecione as tabelas de roteamento utilizadas pelas suas tarefas ECS
  • Mantenha selecionada a política padrão (Full Access)

Após criar o primeiro VPC Endpoint, repita as etapas para criar os dois próximos endpoints respectivamente:

Endpoint para conexão com o serviço CloudWatch Logs:
com.amazonaws.region.logs

Endpoint para conexão com o serviço Amazon ECR:
com.amazonaws.region.ecr.dkr

É importante observar que não é necessário fazer alterações no cluster do ECS, em suas Task Definitions, e nem no repositório Amazon ECR.

Quando uma nova tarefa ou serviço forem implementados em cluster executados nesta VPC, as imagens serão baixadas do repositório do Amazon ECR através dos VPC Endpoints, sem que haja a necessidade do uso de internet:

Na imagem abaixo, você pode visualizar todos os detalhes das subnets utilizadas pelo meu cluster Amazon ECS:

E a tabela de roteamento de ambas as sub-redes sem rotas para a internet através de um Internet Gateway (IGW):

Associações:

Rotas:

 

Você pode encontrar mais informações sobre a utilização de VPC Endpoints nos seguintes links:

https://docs.aws.amazon.com/AmazonECR/latest/userguide/vpc-endpoints.html

https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html

https://docs.aws.amazon.com/AWSGettingStartedContinuousDeliveryPipeline/latest/GettingStarted/ECS_CD_Pipeline.html

 

 


 

Sobre o autor

Jesús Humberto Contreras Rancurello

Arquiteto de Soluções, AWS México