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

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

Tenho várias instâncias em execução no mesmo grupo de segurança (digamos: Grupo-A) que precisam se comunicar entre si, em particular, na porta 4369.

Cada instância possui um IP elástico 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 entre si via IP interno (10.xxx.xxx.xx) ou 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 aponta para o Elastic IP, ele não funcionará.

Se eu alterar a origem na regra de entrada de sg-XXXXX (Grupo-A) para 0.0.0.0, ela funcionará com meu próprio FQDN e o Elastic IP. Mas não usaremos 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 fácil de gerenciar.

Responder1

O comportamento que você descreve é ​​normal, pois ao se comunicar 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 fonte sg-xxxxxxxx - não pode realmente ser estabelecida 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 originadodiretamenteda 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.com:

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

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

Responder2

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 (que são mais seguras de qualquer maneira).

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

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

informação relacionada