Práticas recomendadas de segurança de rede para o Amazon ECS - Amazon Elastic Container Service

Práticas recomendadas de segurança de rede para o Amazon ECS

A segurança de rede é um tópico amplo que engloba vários subtópicos. Isso inclui criptografia em trânsito, segmentação e isolamento de rede, firewall, roteamento de tráfego e observabilidade.

Criptografia em trânsito

A criptografia do tráfego de rede impede que usuários não autorizados interceptem e leiam dados quando esses dados são transmitidos pela rede. Com o Amazon ECS, a criptografia de rede pode ser implementada de qualquer uma das formas a seguir.

Redes de tarefas

As recomendações a seguir são em consideração a como o Amazon ECS funciona. O Amazon ECS não usa uma rede de sobreposição. Em vez disso, as tarefas são configuradas para operar em diferentes modos de rede. Por exemplo, tarefas configuradas para usar o modo bridge adquirem um endereço IP não roteável de uma rede Docker que é executada em cada host. As tarefas configuradas para usar o modo de rede awsvpc adquirem um endereço IP da sub-rede do host. As tarefas configuradas com rede host usam a interface de rede do host. awsvpc é o modo de rede preferido. Isso ocorre porque é o único modo possível de ser usado para atribuir grupos de segurança às tarefas. Também é o único modo disponível para tarefas do AWS Fargate no Amazon ECS.

Grupos de segurança para tarefas

Recomendamos configurar suas tarefas para usar o modo de rede awsvpc. Depois de configurar sua tarefa para usar esse modo, o agente do Amazon ECS provisionará e anexará automaticamente uma interface de rede elástica (ENI) à tarefa. Quando a ENI for provisionada, a tarefa será registrada em um grupo de segurança da AWS. O grupo de segurança atua como um firewall virtual para controlar o tráfego de entrada e saída.

AWS PrivateLink é uma tecnologia de rede que permite criar endpoints privados para diferentes serviços da AWS, incluindo o Amazon ECS. Os endpoints são necessários em ambientes de sandbox, onde não há nenhum gateway da Internet (IGW) conectado ao Amazon VPC e nenhuma rota alternativa para a Internet. O uso de AWS PrivateLink garante que as chamadas para o serviço Amazon ECS permaneçam dentro da Amazon VPC e não atravessem a Internet. Para obter instruções sobre como criar endpoints de AWS PrivateLink para o Amazon ECS e outros serviços relacionados, consulte Endpoints da Amazon VPC de interface do Amazon ECS.

Importante

As tarefas do AWS Fargate não exigem um endpoint AWS PrivateLink para o Amazon ECS.

Tanto o Amazon ECR quanto o Amazon ECS oferecem suporte a políticas de endpoints. Essas políticas permitem refinar o acesso às APIs de um serviço. Por exemplo, é possível criar uma política de endpoint para o Amazon ECR que só permita que imagens sejam enviadas para registros em contas específicas da AWS. Uma política como essa pode ser usada para evitar que os dados sejam exfiltrados por meio de imagens de contêineres e, ao mesmo tempo, permitir que os usuários acessem registros autorizados do Amazon ECR. Para obter mais informações, consulte Uso de políticas de endpoint da VPC.

A política a seguir permite que todas as entidades principais da AWS da sua conta realizem todas as ações somente nos seus repositórios do Amazon ECR:

{ "Statement": [ { "Sid": "LimitECRAccess", "Principal": "*", "Action": "*", "Effect": "Allow", "Resource": "arn:aws:ecr:region:account_id:repository/*" }, ] }

É possível aprimorar isso ainda mais definindo uma condição que use a nova propriedade PrincipalOrgID. Isso evita o envio e a extração de imagens por uma entidade principal do IAM que não faça parte do seu AWS Organizations. Para obter mais informações, consulte aws:PrincipalOrgID.

Recomendamos aplicar a mesma política a ambos os endpoints com.amazonaws.region.ecr.dkr e com.amazonaws.region.ecr.api.

Configurações do agente de contêiner

O arquivo de configuração do agente de contêiner do Amazon ECS inclui várias variáveis de ambiente relacionadas à segurança da rede. ECS_AWSVPC_BLOCK_IMDS e ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST são usadas para bloquear o acesso de uma tarefa aos metadados do Amazon EC2. HTTP_PROXY é usada para configurar o agente para rotear por meio de um proxy HTTP para se conectar à Internet. Para obter instruções sobre como configurar o agente e o runtime do Docker para rotear por meio de um proxy, consulte Configuração do proxy HTTP.

Importante

Essas configurações não estão disponíveis quando você usa o AWS Fargate.

Recomendações de segurança de rede

Recomendamos que você faça o seguinte ao configurar sua Amazon VPC, balanceadores de carga e rede.

Uso da criptografia de rede com o Amazon ECS, quando aplicável

Você deve usar criptografia de rede quando aplicável. Alguns programas de conformidade, como o PCI DSS, exigem que você criptografe os dados em trânsito se eles contiverem dados do titular do cartão. Se sua workload tiver requisitos semelhantes, configure a criptografia de rede.

Os navegadores modernos avisam quando os usuários se conectam a sites inseguros. Se o seu serviço for administrado por um balanceador de carga voltado para o público, use TLS/SSL para criptografar o tráfego do navegador do cliente para o balanceador de carga e recriptografar no backend, se necessário.

Uso do modo de rede awsvpc e de grupos de segurança para controlar o tráfego entre tarefas e outros recursos no Amazon ECS

Você deve usar o modo de rede awsvpc e grupos de segurança quando precisar controlar o tráfego entre tarefas e entre tarefas e outros recursos de rede. Se o seu serviço estiver por trás de um ALB, use grupos de segurança para permitir somente o tráfego de entrada de outros recursos de rede usando o mesmo grupo de segurança do seu ALB. Se a sua aplicação estiver protegida por um NLB, configure o grupo de segurança da tarefa para permitir somente tráfego de entrada do intervalo CIDR do Amazon VPC e dos endereços IP estáticos atribuídos ao NLB.

Grupos de segurança também devem ser usados para controlar o tráfego entre tarefas e outros recursos dentro da Amazon VPC, como bancos de dados do Amazon RDS.

Criação de clusters do Amazon ECS em VPCs da Amazon separadas quando o tráfego de rede precisar ser estritamente isolado

Você deve criar clusters em Amazon VPCs separadas quando o tráfego de rede precisar ser estritamente isolado. Evite executar workloads que tenham requisitos rígidos de segurança em clusters com workloads que não precisem cumprir esses requisitos. Quando o isolamento estrito da rede for obrigatório, crie clusters em Amazon VPCs separadas e exponha seletivamente serviços a outras Amazon VPCs usando endpoints da Amazon VPC. Para obter mais informações, consulte Endpoints da Amazon VPC.

Você deve configurar endpoints de AWS PrivateLink quando necessário. Se sua política de segurança impedir que você conecte um gateway da Internet (IGW) às suas Amazon VPCs, configure endpoints de AWS PrivateLink para o Amazon ECS e outros serviços, como Amazon ECR, AWS Secrets Manager e Amazon CloudWatch.

Uso de logs de fluxo da Amazon VPC para analisar o tráfego de e para tarefas de execução prolongada no Amazon ECS

Você deve usar o Amazon VPC Flow Logs para analisar o tráfego de e para tarefas de longa execução. As tarefas que usam o modo de rede awsvpc obtêm seu próprio ENI. Ao fazer isso, é possível monitorar o tráfego que entra e sai de tarefas individuais usando o Amazon VPC Flow Logs. Uma atualização recente do Amazon VPC Flow Logs (v3) enriquece os logs com metadados de tráfego, incluindo o ID da VPC, o ID da sub-rede e o ID da instância. Esses metadados podem ser usados para ajudar a restringir uma investigação. Para obter mais informações, consulte Amazon VPC Flow Logs.

nota

Devido à natureza temporária dos contêineres, os logs de fluxo nem sempre são uma forma eficaz de analisar padrões de tráfego entre diferentes contêineres ou contêineres e outros recursos de rede.