Ich habe eine Reihe ähnlicher Fragen wie this one gesehen, aber keine gibt eine allgemeine Antwort. Ich bin neu in AWS. Ich habe gerade zwei Instanzen in meiner VPC ausgeführt. Ich habe ein ELB-Setup vor ihnen, das funktioniert gut in Routing-Verkehr zu beiden. Problem ist, dass beide Instanzen derzeit auch mit HTTP aus dem gesamten Web angefahren werden können. Ich möchte Dinge ändern, so dass meine Instanzen nur auf HTTP über meine ELB getroffen werden können. Wie kann ich das machen?Erlaube HTTP-Zugriff auf AWS-Instanzen nur über ELB
Antwort
Ich habe gefunden wonach ich gesucht habe. In Sicherheitsgruppen können Sie eine weitere Sicherheitsgruppe als Quelle unter benutzerdefinierter IP-Adresse hinzufügen. Es wäre großartig gewesen, wenn Amazon es deutlicher gemacht hätte, dass dies erlaubt war, da eine Sicherheitsgruppe keine benutzerdefinierte IP ist. Wie auch immer, dies ist, wie Sie es tun:
Sie können Ihre EC2-Instances auch in ein privates Subnetz stellen, dh es gibt keine Möglichkeit, über das Internet darauf zuzugreifen. Außerdem müssen sie keine öffentlichen IP-Adressen haben, da der ELB eine interne IP-Adresse für den Zugriff verwendet. –
@Eli - Wo wird diese Sicherheitsgruppe angewendet? Die ELB oder die EC2-Instanz selbst? – hybrid9
@ hybrid9 Sie bearbeiten die Regeln für die Sicherheitsgruppe der EC2-Instanzen, um den HTTP/HTTPS-Zugriff von der Sicherheitsgruppe des ELB zu ermöglichen. – Eli
Ich werde den folgenden zusätzlichen Ansatz vorschlagen, der kommt, lange nachdem die ursprüngliche Lösung akzeptiert wurde. Die ursprüngliche Lösung ist vielleicht am besten, aber der folgende Ansatz ist einfach und wenn nichts anderes bei der Fehlersuche helfen könnte.
Zuerst trennen Sie von den Instanzen alle Regeln oder Sicherheitsgruppen, die HTTP aus dem gesamten Web zulassen. Seien Sie besonders misstrauisch gegenüber 0.0.0.0/0, was bedeutet alle IP-Adressen. Weisen Sie dann in der Sicherheitsgruppe, die auf die Instanz angewendet wurde, Port 80/http vom privaten Adressraum der VPC zu. Wenn der private Adressraum Ihrer VPC beispielsweise 172.31.0.0/16 lautet, dann erlauben Sie diesem Bereich den Zugriff auf Ihre Instanz über eine Sicherheitsgruppe, die direkt auf die Instanz angewendet wird. Zu diesem Zeitpunkt meldet sich der httpd-Server an, dass die Instanz Zugriffsversuche von den spezifischen privaten Adressen des Load Balancers anzeigen soll. Unter der Annahme, dass die Zieldatei des Gesundheitschecks existiert und ordnungsgemäß von httpd bedient wird, sollte sich der Status der Statusprüfung der Zielgruppe von "Ungesund" auf "Gesund" ändern. Beachten Sie, dass sich der Load Balancer Health Checker in den httpd-Protokollen eindeutig als ELB-HealthChecker ausweist.
172.31.3.56 - - [24/Oct/2017:17:02:36 +0000] "GET /index.html HTTP/1.1" 200 265 "-" "ELB-HealthChecker/2.0"
172.31.20.249 - - [24/Oct/2017:17:02:36 +0000] "GET /index.html HTTP/1.1" 200 265 "-" "ELB-HealthChecker/2.0"
172.31.3.56 - - [24/Oct/2017:17:03:06 +0000] "GET /index.html HTTP/1.1" 200 265 "-" "ELB-HealthChecker/2.0"
172.31.20.249 - - [24/Oct/2017:17:03:06 +0000] "GET /index.html HTTP/1.1" 200 265 "-" "ELB-HealthChecker/2.0"
An dieser Stelle können Sie die IP-Adressen, die von der Sicherheitsgruppe nur dann zulässig, einschränken könnten auf die in den httpd-Protokollen zeigen, aber ich würde vorsichtig sein, denn wenn der ELB neu gestartet wird oder wenn die Konfiguration geändert wird oder Nachgeladen, bezweifle ich, dass es garantiert die gleichen privaten Adressen wiederbekommt wie zuvor.
Jetzt, wo der Load Balancer seine Ziele als gesund erkennt, werden sie als einsatzbereit betrachtet und beginnen, den Datenverkehr an sie weiterzuleiten. Und nach den Zielen des Original-Posters ("Problem ist, dass beide Instanzen derzeit auch mit HTTP aus dem gesamten Web erreicht werden können") erlaubt dieser Ansatz keinen Zugriff auf die Instanzen aus dem gesamten Web.
Die meisten Leser werden mit der privaten Adressierung vertraut sein. Für jeden, der nicht the Wikipedia article ist, ist eine so gute Referenz wie jeder.
- 1. Erlaube nur eine Anwendungsinstanz
- 2. Swift - Erlaube Rotation auf dem iPad Nur
- 3. Erlaube nur bestimmte Unterverzeichnisse auf .gitignore
- 4. ElasticSearch: Erlaube nur lokale Anfragen
- 5. ACM auf ELB für IIS
- 6. Erlaube nur iframe Inhalt zu laden
- 7. Erlaube implizite alle nur für Definitionsdateien
- 8. Erlaube nur 1 Wert pro Tastendruck
- 9. Erlaube Rest-API, nur auf einen bestimmten Server zu antworten
- 10. Erlaube nur römische Zeichen in Textfeldern
- 11. Erlaube nur ein Häkchen in checkboxGroupInput
- 12. Sitzung Klebrigkeit für ejabberd TCP-Sitzungen über ELB und HAProxy
- 13. Amazon ELB Session Stickiness über TCP 443 Verbindung?
- 14. Erlaube Gzip auf existierende Dateien
- 15. Hosting von statischen Websites über EC2 ELB und Cloudfront
- 16. Proxy-Protokoll-Header auf ELB wiederverwenden
- 17. AWS/ELB-Verbindungsabfluss Probleme
- 18. Zuul hinter einem AWS ELB über HTTPS/SSL
- 19. Erlaube Cloudfront global auf NoScript
- 20. AWS ELB -> Backend-Server über HTTPS mit selbstsigniertem Zertifikat
- 21. ELB-Verbindung, die Konfiguration entleert
- 22. Erlaube nur numerische Eingaben in einer Texteingabe und erlaube einen Bindestrich als optionales erstes Zeichen
- 23. Erlaube Zugriff auf bestimmte Datei in PHP
- 24. Azure und Endpunkt - Erlaube nur einer IP-Verbindung
- 25. Erlaube Punkt und Komma in Zahlen, nicht nur für dezimal
- 26. .htaccess Erlaube POST-Methode für NUR cetain IP-Bereiche
- 27. django-allauth: Erlaube nur Nutzern einer bestimmten Google Apps-Domain
- 28. Erlaube Google-Dienstkonto YouTube Upload-Zugriff über API v3
- 29. ELB, Proxy-Protokoll und iptables
- 30. Erlaube in Python mit argparse nur positive ganze Zahlen
Kennen Sie Sicherheitsgruppen in AWS? – helloV