Práticas recomendadas de segurança para o Amazon EMR no EKS - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Práticas recomendadas de segurança para o Amazon EMR no EKS

O Amazon EMR no EKS disponibiliza diversos recursos de segurança a serem considerados no desenvolvimento e na implementação das suas próprias políticas de segurança. As práticas recomendadas a seguir são diretrizes gerais e não representam uma solução completa de segurança. Como essas práticas recomendadas podem não ser adequadas ou suficientes no seu ambiente, trate-as como considerações úteis em vez de requisitos.

nota

Para obter mais práticas recomendadas de segurança, consulte Práticas recomendadas de segurança para o Amazon EMR no EKS.

Aplicação do princípio de privilégio mínimo

O Amazon EMR no EKS fornece uma política de acesso granular para aplicações que usam perfis do IAM, como perfis de execução. Esses perfis de execução são mapeados para as contas de serviço do Kubernetes por meio da política de confiança do perfil do IAM. O Amazon EMR no EKS cria pods em um namespace registrado do Amazon EKS que executa o código da aplicação fornecido pelo usuário. Os pods de trabalho que executam o código da aplicação assumem o perfil de execução ao se conectarem a outros serviços da AWS. Recomendamos que os perfis de execução recebam somente o conjunto de privilégios mínimos obrigatórios para o trabalho, como a cobertura da aplicação e o acesso ao destino do log. Também recomendamos auditar regularmente as permissões dos trabalhos e após qualquer alteração no código da aplicação.

Listagem de controle de acesso para endpoints

Os endpoints gerenciados podem ser criados somente para clusters do EKS que foram configurados para usar, no mínimo, uma sub-rede privada em sua VPC. Essa configuração restringe o acesso aos balanceadores de carga criados por endpoints gerenciados para que eles possam ser acessados ​​somente usando a VPC. Para aumentar ainda mais a segurança, recomendamos configurar grupos de segurança com esses balanceadores de carga para que eles possam restringir o tráfego de entrada a um conjunto selecionado de endereços IP.

Obtenção das atualizações de segurança mais recentes para as imagens personalizadas

Para usar imagens personalizadas com o Amazon EMR no EKS, você pode instalar quaisquer binários e bibliotecas na imagem. Você é responsável pela aplicação de patches de segurança aos binários adicionados à imagem. As imagens do Amazon EMR no EKS têm aplicações regulares dos patches de segurança mais recentes. Para obter a imagem mais recente, você deve criar novamente as imagens personalizadas sempre que houver uma nova versão da imagem base da versão do Amazon EMR. Para obter mais informações, consulte Versões do Amazon EMR no EKS e Como selecionar um URI de imagem base.

Limitação do acesso à credencial do pod

O Kubernetes oferece suporte a diversos métodos de atribuição de credenciais para um pod. O provisionamento de múltiplos provedores de credenciais pode aumentar a complexidade do seu modelo de segurança. O Amazon EMR no EKS adotou o uso de perfis do IAM para contas de serviços (IRSA) como um provedor de credencial padrão em um namespace do EKS registrado. Outros métodos não têm suporte, incluindo kube2iam, kiam e o uso de um perfil de instância do EC2 da instância em execução no cluster.

Isolamento de código de uma aplicação não confiável

O Amazon EMR no EKS não inspeciona a integridade do código de uma aplicação enviada pelos usuários do sistema. Se você estiver executando um cluster virtual multilocatário configurado usando diversos perfis de execução, que podem ser usados para enviar trabalhos por locatários não confiáveis ​​que executam códigos arbitrários, há o risco de uma aplicação mal-intencionada escalar os privilégios. Nesta situação, considere isolar perfis de execução com privilégios semelhantes em um cluster virtual diferente.

Permissões de controle de acesso por perfil (RBAC)

Os administradores devem controlar rigorosamente as permissões de controle de acesso por perfil (RBAC) para o Amazon EMR em namespaces gerenciados pelo EKS. No mínimo, as permissões apresentadas a seguir não devem ser concedidas aos emissores de trabalhos no Amazon EMR em namespaces gerenciados pelo EKS.

  • Permissões de RBAC do Kubernetes para modificar o configmap: porque o Amazon EMR no EKS usa os configmaps do Kubernetes para gerar modelos de pod gerenciados que têm o nome da conta de serviço gerenciada. Este atributo não deve sofrer mutação.

  • Permissões de RBAC do Kubernetes para executar em pods do Amazon EMR no EKS: para evitar conceder acesso a modelos de pod gerenciados que têm o nome da conta de serviço gerenciada. Este atributo não deve sofrer mutação. Essa permissão também pode conceder acesso ao token JWT montado no pod, que pode ser usado para recuperar as credenciais do perfil de execução.

  • Permissões de RBAC do Kubernetes para criar pods: para evitar que os usuários criem pods usando uma ServiceAccount do Kubernetes que pode ser mapeada para um perfil do IAM com mais privilégios da AWS do que o usuário.

  • Permissões de RBAC do Kubernetes para implantar webhooks mutantes: para evitar que os usuários usem o webhook mutante para alterar o nome da ServiceAccount do Kubernetes para pods criados pelo Amazon EMR no EKS.

  • Permissões de RBAC do Kubernetes para ler segredos do Kubernetes: para evitar que os usuários façam a leitura de dados confidenciais armazenados nesses segredos.

Restrição do acesso às credenciais do perfil do IAM ou do perfil de instância do grupo de nós

  • Recomendamos que você atribua permissões mínimas da AWS aos perfis do IAM do grupo de nós. Isso ajuda a evitar a escalação de privilégios por código que pode ser executado usando credenciais do perfil de instância de nós de processamento do EKS.

  • Para bloquear completamente o acesso às credenciais do perfil de instância para todos os pods executados no Amazon EMR em namespaces gerenciados pelo EKS, recomendamos que você execute comandos iptables em nós do EKS. Para obter mais informações, consulte Restricting access to Amazon EC2 instance profile credentials. No entanto, é importante definir o escopo adequado para os perfis do IAM da sua conta de serviço para que os pods tenham todas as permissões necessárias. Por exemplo, o perfil do IAM do nó recebe permissões para extrair imagens de contêiner do Amazon ECR. Se essas permissões não forem atribuídas a um pod, o pod não poderá extrair imagens de contêiner do Amazon ECR. O plug-in CNI da VPC também precisa ser atualizado. Para obter mais informações, consulte Walkthrough: Updating the VPC CNI plugin to use IAM roles for service accounts.