Comunique-se no mesmo grupo de segurança do EC2

6

Eu tenho várias instâncias em execução no mesmo grupo de segurança (digamos: Group-A) que precisa falar umas com as outras, em particular, com a porta 4369.

Cada instância tem um Elastic IP diferente.

O Grupo de segurança está configurado para permitir tráfego de entrada via TCP: 4369 Soruce: sg-XXXXX (Grupo-A)

No entanto, as instâncias só podem se comunicar por meio do IP interno (10.xxx.xxx.xx) ou do DNS público da Amazon: ec2-ELASTIC-IP.compute-1.amazonaws.com (Aparentemente, a Amazon traduzirá isso para o IP interno).

Se eu usar o Elastic IP, não funcionará. Se eu usar meu próprio FQDN que apontasse para o Elastic IP, não funcionará.

Se eu alterar a origem na regra de entrada de sg-XXXXX (Grupo-A) para 0.0.0.0, ele funcionará com meu próprio FQDN e o Elastic IP. Mas não vamos usar isso por questões de segurança. Se eu remover a regra de entrada, nada funciona, até uso o IP interno.

Então, o que devo fazer se quiser usar meu próprio FQDN? (worker-1.company.com - > Elastic IP), que é muito mais legível e mais fácil de gerenciar.

    
por Carl 19.12.2013 / 00:45

2 respostas

6

O comportamento que você descreve é normal, pois ao comunicar-se entre instâncias via IP elástico, a identidade da máquina dentro do grupo de segurança - para fins de configurações de grupos de segurança que dependem de uma origem sg-xxxxxxxx - não pode ser realmente estabelecido com total confiança, porque a tradução dos endereços envia o tráfego (presumivelmente) através de hardware intermediário e o tráfego não é mais visto como originado diretamente da instância.

A solução é nomear seus hosts no DNS com registros CNAME apontando para o registro DNS público, em vez de registros A apontando para um endereço IP específico.

Na zona DNS da empresa:

worker-1   IN  CNAME  xx-xx-xx-xx.compute-1.amazonaws.com.

Agora, worker-1.company.com resolverá o IP privado, se consultado de dentro, e o IP público de fora.

    
por 19.12.2013 / 13:56
0

Não é perfeito, mas você pode adicionar mapeamentos explícitos dos FQDNs aos IPs privados no arquivo hosts de cada uma das instâncias. Portanto, seu código usará um FQDN, mas a rede usará comunicações privadas (o que é mais seguro de qualquer maneira).

Esta é uma opção razoável se você tiver um conjunto de instâncias pequeno e relativamente fixo. Você provavelmente deve automatizar esse processo, se possível.

Você também pode usar o Route 53, o DNS da Amazon como um serviço. Mapeie seu FQDN para o nome DNS público da instância. Dentro do EC2, isso mapeará para o IP privado. Você ainda precisará automatizar isso usando a API da rota 53.

    
por 19.12.2013 / 08:42