Tierney - stock.adobe.com
Die AWS-Sicherheit mit Security Groups optimieren
Innerhalb von AWS gibt es mehrere Möglichkeiten, um Firewalls einzurichten. Neben ACLs bietet AWS auch Security Groups an. Sie sind für den Schutz der Instanzen sehr wichtig.
Die Buchung von Cloud-Diensten entbindet Admins nicht von der Aufgabe, sich um die Sicherheit ihrer angemieteten Infrastruktur zu kümmern. Auch Nutzer der von AWS (Amazon Web Services) angebotenen Cloud-Services müssen im Bereich Netzwerksicherheit stets gut informiert sein. Besonders wichtig sind Firewalls. Sie stellen auch in der AWS-Cloud eine essentielle Sicherheitsmaßnahme dar. Manche der verfügbaren virtuellen Firewall-Angebote sind besonders leicht aufzusetzen und zu verwalten.
So sind die AWS Security Groups virtuelle Firewalls auf der Ebene der Instanzen. Ein Cloud-Admin kann sie mit einigen wenigen einfachen Schritten, wie sie in diesem Beitrag beschrieben werden, konfigurieren, hinzufügen und wieder entfernen. Um aber einen optimalen Schutz für Ihre Daten im Netzwerk zu erreichen, beschreiben wir zunächst erst, was Security Groups im Kontext von AWS sind und wie sie sich von anderen Firewall-Arten innerhalb des Cloud-Dienstes unterscheiden. Außerdem erfahren Sie, wie sich Security Groups am besten einsetzen lassen.
Die Grundlagen der AWS Security Groups
Eine Security Group kann sowohl Instanzen in der Amazon Elastic Compute Cloud (EC2) als auch im Amazon Relational Database Service (RDS) schützen. Die Security Groups funktionieren dabei ähnlich wie klassische Firewalls. Das heißt, dass sie Regeln aufnehmen können, die für eingehende sowie für ausgehende Daten gelten. Die Regeln enthalten zum Beispiel Vorgaben zu IP-Adressen, Ports und Protokollen. So kann genau festgelegt werden, welcher Traffic durchgelassen und welcher blockiert werden soll.
Wenn eine bestimmte Verbindung nicht explizit erlaubt ist, wird sie automatisch durch die Security Groups abgelehnt. Standardmäßig wird jedoch der gesamte ausgehende Traffic erlaubt, für eingehende Verbindungen muss der AWS-Nutzer eigene Regeln aufstellen. Security Groups verwenden dabei Stateful Inspection. Das bedeutet, dass wenn eine Instanz ein Datenpaket an eine bestimmte IP-Adresse oder einen bestimmten Port schickt, die Antwort auch dann durchgelassen wird, wenn es keine Regel gibt, die diesen Traffic erlaubt.
Anwender können Security Groups direkt beim Erstellen einer neuen Instanz hinzufügen. Es geht aber auch nachträglich bei einer bereits früher eingerichteten Instanz. Jeder Instanz können bis zu fünf unterschiedliche Security Groups zugeordnet werden. Einzelne Security Groups lassen sich zudem auch durch den Admin mehreren unterschiedlichen Instanzen zuordnen. Durch diesen flexiblen Aufbau können vorhandenen die Ressourcen leichter geordnet und verwaltet werden. So kann etwa ein SSH-Zugang (Secure Socket Shell) via VPN (Virtual Private Network) zu mehreren Instanzen mit Hilfe einer dedizierten Security Group eingerichtet werden. Das erspart dem Admin die separate Konfiguration dieses Zugangs in jeder einzelnen gewünschten Instanz.
Beim Einrichten einer Virtual Private Cloud (VPC) wird automatisch eine Default Security Group erstellt. AWS fügt diese Security Group dann zu jeder Instanz hinzu, die innerhalb der VPC angelegt wird. Admins haben aber auch die Möglichkeit, eine andere Security Group auszuwählen, wenn sie dies wünschen.
Security Groups versus Network Access Control Lists
Es gibt noch eine weitere Möglichkeit, in AWS eine Firewall einzurichten, die wir erwähnen müssen: Network Access Control Lists (Network ACLs). Sie sind ein wichtiger Teil der Sicherheitsstrategie im Shared Responsibility Security Model, das von AWS verwendet wird. Gelegentlich werden sie jedoch mit den Security Groups verwechselt. Sie sind aber nicht identisch.
Network ACLs arbeiten auf dem Subnetz-Level, also unterhalb der Security Groups, die auf dem Level der Instanzen eingesetzt werden. Diese verschiedenen Layer sind ein besonders wichtiger Punkt, um die Wirksamkeit der Security Groups von AWS verstehen zu können: Eingehende Daten treffen zuerst auf die Network ACLs. Erst danach, wenn die Daten weiter zu den Instanzen geleitet werden, kommen sie in Kontakt mit den für jede Instanz geltenden Security Groups.
Ein weiterer Unterschied ist, dass für Network ACLs keine vordefinierten Standardregeln gelten. Für sie muss der AWS-Admin also jede auszuführende Regel selbst erstellen. Wenn es aber erst einmal eine bestimmte Blockieren- oder Erlauben-Regel gibt, dann wird sie auch strikt durchgesetzt. Network ACLs sind allerdings Stateless. Die Admins müssen sich deswegen selbst um die Regeln kümmern, die sowohl für ausgehenden als auch für eingehenden Traffic gelten sollen. Jede Network ACL wird die in ihr angelegten Regeln aber immer genauestens durchführen.
Direkt nach der Aktivierung wird eine Network ACL wegen den genannten Punkten zunächst einmal den gesamten Traffic durchlassen. Das ändert sich erst, nachdem der Admin eigene Regeln erstellt und hinzugefügt hat. Dieses offene Modell macht die Security Groups mit ihren standardmäßig bereits vordefinierten Regeln auf dem Instanz-Level zur weit wichtigeren Sicherheitsmaßnahme innerhalb der von AWS angebotenen Firewall-Optionen.
Wie sich Security Groups in AWS einrichten lassen
Für das Setup einer beispielhaften Security Group verwenden wir die AWS Management Konsole. Das Tab mit den Security Groups finden Sie entweder im EC2-Dashboard oder im Bereich VPC.
Vergeben Sie dann als Erstes einen Namen für Ihre neue Security Group. Es ist empfehlenswert, eine möglichst genaue Beschreibung der Funktion der Security Group zu hinterlegen.
Das gilt insbesondere dann, wenn Sie in einem Team arbeiten, so dass möglicherweise auch Ihre Kollegen auf diese Security Group zugreifen werden.
Security Groups gehören zu VPCs. Wählen Sie deswegen die gewünschte aus und beginnen Sie damit, Regeln für eingehende Verbindungen zu erstellen.
Wie weiter oben bereits erwähnt, existieren in jeder Security Group schon Regeln, die ausgehenden Daten nicht einschränken. Sie können diese Regeln aber auch entfernen und stattdessen Ihre eigenen anlegen.
Auch mit dem Kommandozeilen-Interface von AWS, einem AWS-SDK (Software Development Kit) und sogar mit Infrastructure-as-a-Code-Tools wie AWS CloudFormation oder Terraform von HashiCorp ist es möglich, Security Groups anzulegen und zu bearbeiten.
Die grafische Oberfläche (GUI) der Managementkonsole ist für den Anfang jedoch meist der bessere Weg, um sich mit den Security Groups zu beschäftigen. Wenn Sie eine Security Group löschen wollen, wählen Sie sie zuerst aus und klicken dann auf Action sowie Delete.
Im Grunde ist es recht einfach, die nötigen Regeln hinzuzufügen und den Traffic zu Ihren Instanzen damit zu kontrollieren. Einige Punkte sollten Sie aber immer beachten: Erlauben Sie nur, was wirklich benötigt wird. Geben Sie außerdem niemals Ihre Instanzen für einen unbeschränkten öffentlichen Zugang frei, außer dies wird für einen bestimmten Zweck explizit benötigt.