Considerações de segurança do Fargate para o Amazon ECS
Cada tarefa tem uma capacidade de infraestrutura dedicada porque o Fargate executa cada workload em um ambiente virtual isolado. As workloads executadas no Fargate não compartilham interfaces de rede, armazenamento temporário, CPU ou memória com outras tarefas. É possível executar vários contêineres em uma tarefa, incluindo contêineres de aplicações e contêineres auxiliares, ou simplesmente arquivos associados. Um arquivo associado é um contêiner que é executado junto com um contêiner de aplicação em uma tarefa do Amazon ECS. Enquanto o contêiner da aplicação executa o código principal da aplicação, os processos executados em arquivos associados podem aumentar a aplicação. Os arquivos associados ajudam você a separar as funções da aplicação em contêineres dedicados, facilitando a atualização de partes da sua aplicação.
Os contêineres que fazem parte da mesma tarefa compartilham recursos para o tipo de inicialização do Fargate, pois esses contêineres sempre serão executados no mesmo host e compartilharão recursos de computação. Esses contêineres também compartilham o armazenamento temporário fornecido pela Fargate. Os contêineres de Linux em uma tarefa compartilham namespaces de rede, incluindo o endereço IP e as portas de rede. Dentro de uma tarefa, os contêineres que pertencem à tarefa podem se intercomunicar por meio do host local.
O ambiente de runtime no Fargate impede que você use determinados recursos do controlador com suporte nas instâncias do EC2. Considere o seguinte ao arquitetar workloads para execução no Fargate:
-
Sem contêineres ou acesso privilegiados: recursos como contêineres ou acesso privilegiados estão atualmente indisponíveis no Fargate. Isso afetará casos de uso, como executar o Docker no Docker.
-
Acesso limitado aos recursos do Linux: o ambiente no qual os contêineres são executados no Fargate está bloqueado. Recursos adicionais do Linux, como CAP_SYS_ADMIN e CAP_NET_ADMIN, são restringidos para evitar um aumento de privilégios. O Fargate oferece suporte à adição do recurso CAP_SYS_PTRACE do Linux às tarefas para permitir que as ferramentas de observabilidade e segurança implantadas na tarefa monitorem a aplicação em contêineres.
-
Sem acesso ao host subjacente: nem os clientes, nem os operadores da AWS podem se conectar a um host que execute workloads do cliente. É possível usar o ECS Exec para executar comandos em ou obter um shell para um contêiner em execução no Fargate. É possível usar o ECS exec para ajudar a coletar informações de diagnóstico para depuração. O Fargate também impede que os contêineres acessem os recursos do host subjacente, como o sistema de arquivos, dispositivos, a rede e o runtime do contêiner.
-
Rede: é possível usar grupos de segurança e ACLs de rede para controlar o tráfego de entrada e saída. As tarefas do Fargate recebem um endereço IP da sub-rede configurada em sua VPC.