Regra AWS VPC Endpoint SecurityGroupEgress

Regra AWS VPC Endpoint SecurityGroupEgress

Estou tentando usar um AWS VPC Endpoint para acessar um recurso S3 sem sorte. Você pode ajudar?

Detalhes:

Eu tenho uma instância EC2 dentro de um grupo de segurança. Isso está dentro de uma VPC e sub-rede com um endpoint de Internet e uma entrada de tabela de roteamento para 0.0.0.0/0. No entanto, não quero que esta instância específica do EC2 possa se comunicar com a Internet, mas quero que ela possa se comunicar com um bucket S3 localizado emhttps://s3-eu-west-1.amazonaws.com/XXXXX/YYYYYY.sh.

Em resposta, sobrecarreguei a regra padrão de permissão de saída no securityGroup para que as conexões de saída sejam negadas adicionando uma regra de saída à porta 22. A documentação da Amazon me diz que endereços locais (privados) da AWS ainda serão permitidos. Com isso em mente, adicionei um VPC endpoint ao meu VPC e atualizei minha tabela de roteamento com pl-6da54004 (com.amazonaws.eu-west-1.s3) :: vpce-9f47a1f6.

Feito isso, não consigo acessar meu recurso S3 de dentro da minha instância EC2. Eu tento e consigohttps://s3-eu-west-1.amazonaws.com/XXXXX/YYYYYY.shsem sorte.

Você tem alguma ideia do que está errado? Meus pensamentos são:

  • minha instância ec2 parece resolver o domínio S3 para 54.231.130.244, mas isso não é o mesmo para todas as instâncias. Preciso adicionar uma regra securityGroupEgress ou uma rota para um intervalo de IP S3? se sim, qual é o alcance?
  • Talvez eu devesse acessar meus recursos S3 por meio de um nome de domínio diferente que, em vez disso, resolvesse para um endereço IP interno?

Obrigado, Toby

Responder1

Primeiro, um pouco de contexto. O resolvedor DNS para instâncias VPC é um componente virtual integrado à infraestrutura. É imune às regras do grupo de segurança de saída... mas a resolução dos nomes de host para endpoints S3 não muda quando você provisiona um endpoint S3 para sua VPC.

O que um endpoint VPC para S3 faz são algumas coisas diferentes. Entender o que são essas coisas é a chave para entender se ele fará o que você precisa. dr: será, neste caso.

Primeiro, você percebe que eles estão configurados nas tabelas de rotas como "listas de prefixos". Um VPC endpoint pega um conjunto de prefixos de rede IPv4 predefinidos e sequestra as rotas para esses prefixos para cada tabela de rotas que inclui a respectiva lista de prefixos para que seu tráfego para qualquer uma dessas redes atravesse o VPC endpoint em vez do Internet Gateway e qualquer instância NAT intermediária.

Em essência, isso abre um novo caminho do seu VPC para os intervalos de endereços IP do serviço AWS... mas o local para onde esses endereços IP levam você não é, inicialmente, e ele seria o mesmo lugar que o levariam sem o endpoint do VPC instalado.

O primeiro lugar que você atingiuparece com o S3mas não é idêntico ao S3 voltado para a Internet, porque conhece as políticas do seu VPC endpoint, para que você possa controlar quais buckets e ações estão acessíveis. Estas não substituem as outras políticas, elas as ampliam.

Uma política de endpoint não substitui as políticas de usuário do IAM ou as políticas de bucket do S3. É uma política separada para controlar o acesso do terminal ao serviço especificado. No entanto, todos os tipos de políticas — políticas de usuário do IAM, políticas de endpoint, políticas do S3 e políticas de ACL do Amazon S3 (se houver) — devem conceder as permissões necessárias para que o acesso ao Amazon S3 seja bem-sucedido.

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html#vpc-endpoints-access

Observe que se você não restringir o acesso ao bucket com uma política apropriada e, em vez disso, habilitar o acesso total, as instâncias poderão acessar qualquer bucket na região S3 se as políticas do bucket permitirem, incluindo buckets públicos.

Agora, a parte complicada. Se o grupo de segurança da sua instância não permitir acesso de saída ao S3 porque a regra padrão "permitir" foi removida, você poderá permitir que a instância acesse o S3 por meio do VPC endpoint, com uma regra de grupo de segurança especialmente criada:

Adicione uma nova regra de saída ao grupo de segurança. Para o “tipo”, escolha HTTPS. Para o destino, escolha “IP personalizado”.

A documentação não é consistente com o que vejo no console:

A lista Destino exibe os IDs e nomes da lista de prefixos dos serviços AWS disponíveis.

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html#vpc-endpoints-security

Bem... não, não importa. Não para mim, pelo menos, não no momento em que escrevo.

A solução é escolher "IP personalizado" e, em vez de um bloco de endereço IP ou ID de grupo de segurança, digitar o ID da lista de prefixos para seu endpoint VPC, na forma de pl-xxxxxxxxna caixa do endereço IP. Você pode encontrar isso no console da VPC, observando os destinos em uma das sub-redes associadas ao endpoint da VPC.

informação relacionada