Verhindern / Firewall-Aufrufe an die AWS EC2-Instanz-Metadaten-API


14

Die AWS EC2-Instanz-Metadaten-API bietet viele nützliche Funktionen. Jeder Benutzer der aktuellen EC2-Instanz kann http://169.254.169.254/Metadaten für die Instanz aufrufen und anzeigen, von der aus der Aufruf erfolgte. Die Sicherheit der API ist so, dass nur überprüft wird, ob der Aufruf von der Instanz stammt. Wenn ich also zulasse, dass jemand Code auf meiner Instanz ausführt, möchte ich wissen, wie ich den Zugriff auf diese bestimmte URL am besten blockiere, während ich den Zugriff selbst behalte.

Als Highlight war ich überrascht festzustellen, dass die Metadaten-API auch über http://instance-data/(die ich zufällig irgendwo gefunden habe) aufgerufen werden kann .

Ich kann die URLs überprüfen, die von dem gesamten Code aufgerufen werden, der in dieser Instanz ausgeführt wird, aber ich gehe davon aus, dass dies bei IPv6-Adressen (möglicherweise) oder einigen seltsamen URI-Codierungen, die sich in die Metadaten-IP (169.254) auflösen lassen, kein guter Ansatz ist .169.254) oder einige undokumentierte (es scheint) URLs wie http://instance-data/.

Antworten:


25

Firewall aus.

iptables -A OUTPUT -m owner ! --uid-owner root -d 169.254.169.254 -j DROP

Diese Regel verhindert, dass ein anderer Benutzer als der Root-Benutzer Verbindungen zu 169.254.169.254 herstellt.


Beeinträchtigt dies nicht die "normale" Nutzung dieses Dienstes. Normalerweise wird der Dienst von / obo dem EC2-Benutzer aufgerufen, der fast nie der Root ist.
Sam-T

@ Sam-T Wenn Sie den ec2-Benutzer benötigen, um darauf zuzugreifen, können Sie auch eine Regel schreiben, die dies zulässt.
Michael Hampton

Wenn Sie auf Firewall-Ebene verhindern, dass nur Root-Benutzer zugelassen werden, wissen Sie nicht, wie Sie es für den EC2-Benutzer aktivieren sollen (ich weiß es nur nicht). Mit EC2-Benutzer - ich meine, wer auch immer die Instanz gestartet hat - mein Verständnis ist, dass auf Metadaten von diesem (und jedem anderen) EC2-Benutzer in der Instanz zugegriffen wird. Können Sie uns ein Beispiel geben
Sam-T
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.