Kommunizieren Sie innerhalb derselben EC2-Sicherheitsgruppe

8

Ich habe mehrere Instanzen in derselben Sicherheitsgruppe (z. B. Gruppe A), die miteinander kommunizieren müssen, insbesondere Port 4369.

Jede Instanz hat eine andere elastische IP.

Die Sicherheitsgruppe ist so konfiguriert, dass eingehender Datenverkehr über TCP zugelassen wird: 4369 Soruce: sg-XXXXX (Gruppe A)

Instanzen können jedoch nur über die interne IP (10.xxx.xxx.xx) oder das öffentliche DNS von Amazon miteinander kommunizieren: ec2-ELASTIC-IP.compute-1.amazonaws.com (Anscheinend übersetzt Amazon dies in die interne IP) .

Wenn ich Elastic IP verwende, funktioniert es nicht. Wenn ich meinen eigenen vollqualifizierten Domänennamen verwende, der auf die elastische IP verweist, funktioniert dies nicht.

Wenn ich die Quelle in der Eingangsregel von sg-XXXXX (Gruppe A) auf 0.0.0.0 ändere, funktioniert dies mit meinem eigenen vollqualifizierten Domänennamen und der elastischen IP. Wir werden dies jedoch nicht aus Sicherheitsgründen verwenden. Wenn ich die eingehende Regel entferne, funktioniert nichts, selbst wenn Sie die interne IP verwenden.

Was soll ich also tun, wenn ich meinen eigenen vollqualifizierten Domänennamen verwenden möchte? (worker-1.company.com -> Elastic IP), das viel besser lesbar und einfacher zu verwalten ist.

Carl
quelle

Antworten:

7

Das von Ihnen beschriebene Verhalten ist normal, da bei der Kommunikation zwischen Instanzen über elastische IP die Identität des Computers innerhalb der Sicherheitsgruppe - für Sicherheitsgruppenkonfigurationen, die auf einer sg-xxxxxxxx-Quelle basieren - nicht wirklich vollständig festgestellt werden kann Vertrauen, da die Übersetzung der Adressen den Datenverkehr (vermutlich) über Zwischenhardware sendet und der Datenverkehr nicht mehr als direkt von der Instanz stammend angesehen wird.

Die Lösung besteht darin, Ihre Hosts in DNS mit CNAME-Einträgen zu benennen, die auf den öffentlichen DNS-Eintrag verweisen, anstatt mit A-Einträgen, die auf eine bestimmte IP-Adresse verweisen.

In der DNS-Zone von company.com:

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

Jetzt wird worker-1.company.com bei Abfrage von innen in die private IP und von außen in die öffentliche IP aufgelöst.

Michael - sqlbot
quelle
Wenn die Instanz mit --private-ip-address gestartet wird, bleibt die IP-Adresse gleich und wird für alle Instanzen in allen Zonen (und Regionen, wenn Sie dies einrichten) als solche angesehen
nandoP
0

Es ist nicht perfekt, aber Sie können den privaten IPs in der Hosts-Datei jeder Instanz explizite Zuordnungen von den FQDNs hinzufügen. Ihr Code verwendet also einen vollqualifizierten Domänennamen, während das Netzwerk tatsächlich private Kommunikation verwendet (was ohnehin sicherer ist).

Dies ist eine vernünftige Option, wenn Sie eine kleine, relativ feste Anzahl von Instanzen haben. Sie sollten diesen Prozess wahrscheinlich nach Möglichkeit automatisieren.

Sie können auch Route 53, das DNS von Amazon, als Dienst verwenden. Ordnen Sie Ihren vollqualifizierten Domänennamen dem öffentlichen DNS-Namen der Instanz zu. In EC2 wird dies der privaten IP zugeordnet. Sie müssen dies weiterhin mithilfe der Route 53-API automatisieren.

Barak
quelle
Ich glaube nicht, dass das OP versucht, öffentliche DNS-Namen auf IPs privater Instanzen zu fälschen, .... was ein guter Trick mit / etc / hosts ist, aber hier nicht relevant, denke ich
nandoP