2

Ich habe eine harte Zeit herauszufinden, wie die richtigen SecurityGroup Regeln für meine LoadBalancer. Ich habe ein Diagramm gemacht, um zu versuchen und dieses Problem zu veranschaulichen, bitte unten einen Blick auf das Bild nehmen:So konfigurieren Sie AWS Internet mit LB SecurityGroup für interne und externe Anfragen

Our ECS setup

Ich habe eine Internet mit Blick auf LoadBalancer („Service A LoadBalancer“ im Diagramm), das angefordert wird "Inhouse" und von einem unserer ECS-Services ("Task B" im Diagramm). Für die Inhouse-Anfragen kann ich eine SecurityGroup-Regel für "Service A LoadBalancer" konfigurieren, die eine eingehende Anfrage an den LoadBalancer auf Port 80 von der CIDR für unsere internen IPs erlaubt. Kein Problem dort. Aber für den anderen ECS-Dienst, Aufgabe B, wie würde ich eine Regel hinzufügen (für "Service A SecurityGroup" im Diagramm), die nur Anfragen von Task B erlaubt? (oder nur von Aufgaben im ECS-Cluster). Da es sich um einen Internet Loadbalancer handelt, werden Anfragen von der öffentlichen IP der Maschine EC2 gestellt, nicht von der privaten (soweit ich das beurteilen kann?).

Ich kann natürlich eine Regel machen, die Anfragen auf Port 80 von 0.0.0.0/0 erlauben, und das würde funktionieren, aber das ist bei weitem nicht restriktiv genug. Und da es sich bei LoadBalancer um ein Internet handelt, wird das Hinzufügen einer Regel, die Anfragen von der "Cluster SecurityGroup" (im Diagramm) erlaubt, nicht abgeschnitten. Ich gehe davon aus, dass die LB nicht darauf schließen kann, von welcher SecurityGroup die Anfrage stammt, da sie auf das Internet ausgerichtet ist - und dass dies funktionieren würde, wenn es sich um einen internen LoadBalancer handeln würde. Aber ich kann keinen internen LoadBalancer verwenden, da dieser auch von außerhalb von AWS (Inhouse) angefordert wird.

Jede Hilfe würde geschätzt werden.

Dank Frederik

Antwort

1

Wir lösen diese durch separate Internet ausgerichtet und interne Load Balancer ausgeführt wird. Sie können mehrere ELBs oder ALBs (ELBv2) für denselben Cluster haben. Wenn Ihre ECS-Cluster in einem IP-Bereich wie 10.X.X.X ausgeführt werden, können Sie 10.X.0.0/16 für internen Zugriff auf das interne ELB öffnen. Stellen Sie nur sicher, dass der ECS-Cluster SG auch für den ELB offen ist. Task B kann Task A über die interne ELB-Adresse erreichen, wenn Sie bei der Anforderung das DNS der internen ELB-Adresse verwenden. Wenn Sie die IP eines öffentlichen DNS treffen, wird dies immer eine öffentliche Anfrage sein.

Sie können jedoch langfristig denken, ob Sie wirklich eine öffentliche ELB überhaupt brauchen. Anstelle von IP-Einschränkungen besteht der nächste Schritt normalerweise darin, ein VPN wie openVPN auszuführen, sodass Sie eine Verbindung mit der VPC herstellen und auf alles im privaten Netzwerk zugreifen können. In der Regel führen wir Internet-Facing-ELBs nur dann, wenn wir wirklich etwas im Internet haben wollen, etwa für externe Kunden.

+0

Danke für Ihre Antwort. Ich habe auch über beide Arten von LB nachgedacht (wir benutzen ALB), aber ich glaube, dass es nicht möglich ist, mehrere TargetGroups für den spezifischen ECS Service einzurichten. Da ECS dem Container die Zielgruppe zuweist (wir verwenden dynamische Port-Mapping, also ephemere Ports), müsste ich ihn im Wesentlichen zwei Zielgruppen zuweisen (eine für die interne LB und eine für die Internet-Ausrichtung). aber ECS erlaubt nur eine TG für den Service zu setzen, ODER, weisen Sie die Zielgruppe zwei LBs zu. Ich glaube, dass keine dieser Möglichkeiten möglich ist, wie haben Sie das gemacht? –

+0

Zumindest haben wir andere Szenarien, in denen ein Service (Task) sowohl von einem anderen Service (der wiederum eine interne LB erfordert) als auch von einer Website, ClientSide, aufgerufen wird. In diesen Situationen wird die VPN-Lösung es nicht schneiden. –

+1

Wir verwenden in diesem Beispiel auch ALB. Es ist zwar richtig, dass ein ECS-Service nur einer Zielgruppe zugeordnet werden kann, aber Sie können derselben Zielgruppe mehrere ALB-Listener-Regeln zuordnen. So machen wir das. Wir haben zwei Dienste, die auf internen und externen ALBs stehen. Dieselbe Zielgruppe wird nur mit Listener-Regeln für jeden internen und externen ALB verknüpft. Ich konnte bestätigen, dass wir heute Morgen so vorgehen.Sie können auch ein Limit erreichen, dass der ALB nur 10 Regeln unterstützt (gerade jetzt). Aus diesem Grund führen wir auch mehrere ALBs pro Cluster aus. – aaa572

Verwandte Themen