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.