So starten Sie eine EC2-Instanz sicher innerhalb einer benutzerdefinierten VPC

Erfahren Sie, wie Sie von der standardmäßigen AWS-Netzwerkkonfiguration zu einer sicheren, benutzerdefinierten Virtual Private Cloud (VPC)-Einrichtung wechseln. Diese Anleitung beschreibt die Erstellung von VPCs, die Definition von öffentlichen/privaten Subnetzen, die Konfiguration von Routing-Tabellen für kontrollierten Internetzugang (über IGW oder NAT) und die Anwendung strenger Security-Group-Regeln, um EC2-Instanzen sicher zu starten und zu verwalten.

38 Aufrufe

Sicheres Starten einer EC2-Instanz in einer benutzerdefinierten VPC

Das direkte Starten einer Amazon EC2-Instanz im Standard-AWS-Netzwerk ist zwar schnell, birgt aber für jede Produktions-, Staging- oder sensible Umgebung ein unnötiges Risiko. Die Sicherung Ihrer Compute-Ressourcen erfordert deren Isolierung innerhalb einer Virtual Private Cloud (VPC) – Ihrem eigenen, logisch isolierten Bereich der AWS Cloud. Diese Anleitung führt Sie durch die wesentlichen Schritte zur Konfiguration einer benutzerdefinierten VPC, zur Definition notwendiger Netzwerkkomponenten wie Subnetze und Routing-Tabellen sowie zum sicheren Starten einer EC2-Instanz, die durch strenge Security-Group-Regeln geschützt ist.

Die Beherrschung der VPC-Konfiguration ist grundlegend für den Aufbau einer robusten, skalierbaren und sicheren AWS-Infrastruktur. Durch die manuelle Definition Ihrer Netzwerk-Grenzen erhalten Sie eine detaillierte Kontrolle über den Datenverkehrsfluss, die IP-Adressierung und die externe Konnektivität, wodurch Ihre Anwendungsumgebung erheblich gegen unbefugten Zugriff gehärtet wird.

Verstehen der Kernkomponenten einer sicheren VPC

Eine Virtual Private Cloud (VPC) ist das Fundament, auf dem das gesamte sichere AWS-Networking aufgebaut ist. Bevor Sie eine Instanz starten, müssen Sie sicherstellen, dass die folgenden Komponenten korrekt konfiguriert sind:

  1. VPC: Der Hauptcontainer für Ihr Netzwerk, der einen privaten IP-Adressbereich (CIDR-Block) definiert.
  2. Subnetze: Unterteilungen innerhalb der VPC, die als öffentlich (mit direktem Internetzugang) oder privat (isoliert) kategorisiert sind.
  3. Internet Gateway (IGW): Erforderlich, damit Ressourcen in öffentlichen Subnetzen mit dem Internet kommunizieren können.
  4. Routing-Tabellen: Regeln, die festlegen, wohin der Netzwerkverkehr von den Subnetzen geleitet wird.
  5. Security Groups (SGs): Stateful Firewalls, die den eingehenden und ausgehenden Datenverkehr auf Instanzebene steuern.

Schritt 1: Erstellen der benutzerdefinierten VPC und Subnetze

Wir beginnen mit der Erstellung der Netzwerkhülle und ihrer Segmentierung in funktionale Bereiche. Für eine Standardeinrichtung empfehlen wir mindestens ein öffentliches und ein privates Subnetz.

1.1 Erstellen der VPC

Wählen Sie bei der Erstellung Ihrer VPC einen privaten CIDR-Block, der nicht mit lokalen Netzwerken kollidiert, mit denen Sie sich später möglicherweise verbinden (z. B. über AWS VPN oder Direct Connect).

Beispiel VPC CIDR: 10.0.0.0/16

1.2 Erstellen von Subnetzen

Subnetze müssen für hohe Verfügbarkeit innerhalb einer bestimmten Availability Zone (AZ) liegen. Für dieses Beispiel erstellen wir ein öffentliches und ein privates Subnetz in us-east-1a.

  • Öffentliches Subnetz: 10.0.1.0/24 (Verwendet für Bastion-Hosts oder Load Balancer)
  • Privates Subnetz: 10.0.2.0/24 (Verwendet für Anwendungsserver und Datenbanken)

Schritt 2: Konfigurieren der Internetkonnektivität und des Routings

Ressourcen in privaten Subnetzen sollten keinen direkten Internetzugang haben. Ressourcen im öffentlichen Subnetz müssen korrekt geroutet werden, um über ein Internet Gateway (IGW) das Internet zu erreichen.

2.1 Anfügen eines Internet Gateways (IGW)

  1. Erstellen Sie eine IGW-Ressource in der AWS-Konsole.
  2. Hängen Sie dieses IGW an Ihre neu erstellte VPC an.

2.2 Konfigurieren von Routing-Tabellen

Routing-Tabellen definieren Datenverkehrswege. Sie benötigen mindestens zwei: eine für das öffentliche Subnetz und eine für das private Subnetz.

Öffentliche Routing-Tabelle

Diese Tabelle leitet allen nicht-lokalen Datenverkehr (0.0.0.0/0) an das angefügte Internet Gateway weiter.

Ziel Ziel
10.0.0.0/16 (VPC CIDR) local
0.0.0.0/0 igw-xxxxxxxx (Ihre IGW-ID)

Ordnen Sie diese Routing-Tabelle Ihrem öffentlichen Subnetz (10.0.1.0/24) zu.

Private Routing-Tabelle

Diese Tabelle erlaubt nur die interne Kommunikation. Entscheidend ist, dass sie keine Route zum IGW haben sollte.

Ziel Ziel
10.0.0.0/16 (VPC CIDR) local

Ordnen Sie diese Routing-Tabelle Ihrem privaten Subnetz (10.0.2.0/24) zu.

Best Practice: Wenn Ressourcen im privaten Subnetz Patches oder Updates herunterladen müssen, sollten Sie ein NAT Gateway verwenden, das im öffentlichen Subnetz platziert ist. Die private Routing-Tabelle würde dann den 0.0.0.0/0-Datenverkehr an das NAT Gateway anstelle des IGW leiten.

Schritt 3: Definieren strenger Security-Group-Regeln

Security Groups (SGs) fungieren als virtuelle Firewalls für Ihre EC2-Instanzen. Sie arbeiten auf Instanzebene und sind stateful (Rückverkehr ist automatisch erlaubt).

Für eine sichere Einrichtung sollten Sie das Prinzip der geringsten Rechte befolgen und nur notwendigen eingehenden Datenverkehr explizit zulassen.

Beispiel Security Group für einen Webserver (privates Subnetz)

Wenn diese EC2-Instanz ein Anwendungsserver ist, der nur von einem Application Load Balancer (ALB) im öffentlichen Subnetz erreichbar ist, sollten die Regeln sehr restriktiv sein:

Eingehende Regeln

Typ Protokoll Portbereich Quelle
HTTP TCP 80 SG-ID des ALB
HTTPS TCP 443 SG-ID des ALB
SSH TCP 22 IP-Bereich Ihres Unternehmensnetzwerks oder SG-ID des Bastion-Hosts

Ausgehende Regeln

Standardmäßig ist der ausgehende Datenverkehr normalerweise zu allen Zielen (0.0.0.0/0) erlaubt. Sie können dies bei Bedarf weiter einschränken (z. B. nur Verbindungen zu einer RDS-Instanz-SG erlauben).

Sicherheitstipp: Weisen Sie niemals 0.0.0.0/0 für Port 22 (SSH) oder Port 3389 (RDP) auf einer öffentlich zugänglichen Security Group zu. Beschränken Sie den Verwaltungszugriff immer auf bekannte, interne IP-Bereiche.

Schritt 4: Sicheres Starten der EC2-Instanz

Stellen Sie beim Starten Ihrer Instanz sicher, dass Sie sie den oben definierten Netzwerkkomponenten zuordnen.

  1. AMI und Instanztyp auswählen: Wählen Sie Ihr gewünschtes Amazon Machine Image (AMI) und die Hardware-Spezifikationen.
  2. Netzwerkeinstellungen: Im Schritt „Instanzdetails konfigurieren“:
    • Netzwerk: Wählen Sie Ihre benutzerdefinierte VPC aus.
    • Subnetz: Wählen Sie das private Subnetz (10.0.2.0/24), wenn Sie einen Anwendungsserver starten, der nicht direkt dem Internet ausgesetzt sein soll.
    • Öffentliche IP-Adresse automatisch zuweisen: Stellen Sie sicher, dass diese Option deaktiviert ist, wenn Sie in ein privates Subnetz starten. (Wenn Sie ein öffentliches Subnetz auswählen, können Sie diese Option für eine Instanz aktivieren, die direkten öffentlichen Zugriff benötigt, z. B. einen Bastion-Host).
    • Security Groups: Wählen Sie die in Schritt 3 konfigurierte Security Group aus.
  3. Speicher und Schlüsselpaar: Konfigurieren Sie den Speicher und ordnen Sie ein Schlüsselpaar für den sicheren SSH-Zugriff zu.

Zugriff auf Instanzen in einem privaten Subnetz

Da die Instanz im privaten Subnetz keine öffentliche IP-Adresse hat, können Sie sich nicht direkt aus dem öffentlichen Internet per SSH verbinden. Sie müssen eine der beiden sicheren Methoden verwenden:

  1. Bastion Host (Jump Box): Starten Sie eine kleine, gehärtete EC2-Instanz im öffentlichen Subnetz. Sie verbinden sich zuerst per SSH mit dem Bastion-Host und dann vom Bastion-Host aus per SSH mit der privaten Instanz unter Verwendung ihrer privaten IP-Adresse.
  2. AWS Systems Manager (SSM) Session Manager: Dies ist die bevorzugte moderne Methode. Wenn die Instanz über das SSM-Agenten installiert und eine entsprechende IAM-Rolle für die SSM-Konnektivität verfügt, können Sie eine sichere Shell-Sitzung direkt von der AWS-Konsole aus initiieren, ohne eingehende SSH-Regeln oder Bastion-Hosts zu benötigen.

Zusammenfassung und nächste Schritte

Die Sicherung einer EC2-Instanz innerhalb einer benutzerdefinierten VPC beinhaltet die Schichtung der Netzwerksicherheit von der Makroebene (VPC, Subnetze, Routing-Tabellen) bis zur Mikroebene (Security Groups). Durch sorgfältige Kontrolle der IP-Adressierung und des Datenverkehrsflusses:

  • Stellen Sie sicher, dass Anwendungsserver in isolierten privaten Subnetzen untergebracht sind.
  • Verwenden Sie das IGW oder NAT Gateway nur, wo es notwendig ist.
  • Wenden Sie das Prinzip der geringsten Rechte über die Ingress-Regeln der Security Group an.

Nachdem Ihre Instanz gestartet wurde, denken Sie daran, ihre Aktivität mithilfe von AWS CloudTrail und VPC Flow Logs zu überwachen, um eine kontinuierliche Sichtbarkeit Ihres privaten Netzwerkverkehrs zu gewährleisten.