regra do SecurityGroupEgress do endpoint VPC VPC

3

Estou tentando usar um ponto de extremidade do VPC da AWS para acessar um recurso do S3 sem sorte. Você poderia ajudar?

Detalhes:

Eu tenho uma instância do EC2 dentro de um grupo de segurança. Isso está dentro de um VPC e sub-rede com um endpoint da Internet e uma entrada da tabela de roteamento para ele para 0.0.0.0/0. No entanto, eu não quero que esta instância específica do EC2 possa falar com a internet, mas eu quero que ela seja capaz de falar com um S3 Bucket localizado em link .

Em resposta, sobrecarreguei a regra de permissão padrão de Egress 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 informa que os endereços AWS locais (privados) ainda serão permitidos. Com isso em mente, adicionei um endpoint VPC em meu VPC e atualizei minha tabela de roteamento com pl-6da54004 (com.amazonaws.eu-west-1.s3) :: vpce-9f47a1f6.

Com isso, não consigo acessar meu recurso S3 de dentro da minha instância do EC2. Eu tento e obtenho link sem sorte.

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 do S3? se sim, qual é o alcance?
  • Talvez eu devesse acessar meus recursos do S3 por meio de um nome de domínio diferente que, em vez disso, resolvesse um endereço IP interno?

Obrigado Toby

    
por Toby Wilkins 02.10.2015 / 12:40

1 resposta

4

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

O que um endpoint VPC para o S3 faz é um par de coisas diferentes. Entender o que essas coisas são é fundamental para entender se isso vai fazer o que você precisa. tl; dr: será, neste caso.

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

Essencialmente, isso abre um novo caminho do seu VPC para os intervalos de endereços IP do serviço da AWS ... mas onde esses endereços IP levam você não é, inicialmente, o mesmo local que eles levariam sem o ponto de extremidade VPC no lugar.

O primeiro lugar que você bate parece S3 , mas não é idêntico ao S3 voltado para a Internet, porque ele conhece as políticas do endpoint VPC, para que você possa controlar quais buckets e ações estão acessíveis. Estes não substituem as outras políticas, eles aumentam.

An endpoint policy does not override or replace IAM user policies or S3 bucket policies. It is a separate policy for controlling access from the endpoint to the specified service. However, all types of policies — IAM user policies, endpoint policies, S3 policies, and Amazon S3 ACL policies (if any) — must grant the necessary permissions for access to Amazon S3 to succeed.

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

Se você não restringir o acesso ao bucket com uma política apropriada e, em vez disso, ativar o acesso total, as instâncias poderão acessar qualquer depósito na região do S3 se as políticas do bucket permitirem isso, incluindo os baldes públicos.

Agora, a parte complicada. Se o grupo de segurança da sua instância não permitir o acesso de saída para o S3 porque a regra padrão "permitir" foi removida, você poderá permitir que a instância acesse o S3 por meio do ponto de extremidade VPC, 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 eu vejo no console:

The Destination list displays the prefix list IDs and names for the available AWS services.

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

Bem ... não, isso não acontece. Não para mim, pelo menos, não como desta escrita.

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

    
por 03.10.2015 / 02:07