Leitfaden zum Erstellen eines sicheren AWS VPC von Grund auf
Amazon Web Services (AWS) Virtual Private Cloud (VPC) ist ein grundlegender Baustein für die Bereitstellung von Anwendungen und Ressourcen in der Cloud. Sie bietet einen logisch isolierten Bereich der AWS Cloud, in dem Sie AWS-Ressourcen in einem von Ihnen definierten virtuellen Netzwerk starten können. Der Aufbau einer sicheren VPC von Grund auf ist entscheidend für den Schutz Ihrer Daten und Anwendungen vor unbefugtem Zugriff. Dieser Leitfaden führt Sie durch die wesentlichen Schritte zur Planung und Konfiguration einer neuen VPC und behandelt wichtige Komponenten wie Subnetze, Routing-Tabellen und kritische Sicherheitsaspekte für optimale Netzwerksegmentierung und -isolierung.
Eine gut durchdachte VPC ist das Fundament einer sicheren Cloud-Infrastruktur. Sie ermöglicht es Ihnen, Ihre Netzwerkumgebung zu kontrollieren, Zugriffsregeln zu definieren und Ihre Ressourcen basierend auf ihrer Sensitivität und Funktion zu segmentieren. Durch sorgfältige Planung und Implementierung Ihrer VPC können Sie die Sicherheit Ihrer AWS-Bereitstellung erheblich verbessern, die Angriffsfläche reduzieren und unbeabsichtigte Datenexposition verhindern. Dieser Leitfaden vermittelt Ihnen das Wissen, um eine robuste und sichere VPC zu erstellen, die auf Ihre spezifischen Bedürfnisse zugeschnitten ist.
Grundlegende VPC-Konzepte verstehen
Bevor Sie mit den Konfigurationsschritten beginnen, ist es wichtig, die grundlegenden Konzepte von AWS VPC zu verstehen:
- VPC (Virtual Private Cloud): Ein virtuelles Netzwerk, das Ihrem AWS-Konto gewidmet ist. Es ist ein logisch isolierter Bereich der AWS Cloud, in dem Sie AWS-Ressourcen starten können.
- Subnetz (Subnet): Ein Bereich von IP-Adressen in Ihrer VPC. Sie können AWS-Ressourcen in von Ihnen erstellten Subnetzen starten. Subnetze werden durch ihren CIDR-Block definiert, der eine Teilmenge des CIDR-Blocks der VPC ist.
- Routing-Tabelle (Route Table): Eine Reihe von Regeln, sogenannte Routen, die verwendet werden, um zu bestimmen, wohin der Netzwerkverkehr von Ihrem Subnetz oder Gateway geleitet wird.
- Internet Gateway (IGW): Eine VPC-Komponente, die die Kommunikation zwischen Ihrer VPC und dem Internet ermöglicht. Sie ermöglicht es Instanzen in Ihrer VPC, eine Verbindung zum Internet herzustellen und umgekehrt.
- NAT Gateway (Network Address Translation): Ein hochverfügbarer und skalierbarer NAT-Dienst, der Internetzugriff für Instanzen in einem privaten Subnetz ermöglicht und gleichzeitig eingehende, vom Internet initiierte Verbindungen verhindert.
- Sicherheitsgruppe (Security Group): Fungiert als virtuelle Firewall für Ihre Instanzen zur Steuerung des ein- und ausgehenden Datenverkehrs. Sie arbeitet auf Instanzebene.
- Netzwerkzugriffssteuerungsliste (NACL): Eine optionale Sicherheitsebene für Ihre VPC, die als Firewall für die Steuerung des Datenverkehrs in und aus einem oder mehreren Subnetzen dient. Sie arbeitet auf Subnetzebene.
Schritt-für-Schritt VPC-Erstellung
Beginnen wir mit dem Aufbau Ihrer sicheren VPC.
1. Planen Sie Ihr IP-Adressschema
Der erste und wichtigste Schritt ist die Planung Ihres IP-Adressbereichs für die VPC und ihre Subnetze. Dies beinhaltet die Auswahl eines Classless Inter-Domain Routing (CIDR)-Blocks für Ihre VPC.
-
VPC CIDR-Block: Wählen Sie einen privaten IP-Adressbereich, der sich nicht mit Ihrem lokalen Netzwerk oder anderen AWS-VPCs überschneidet, mit denen Sie möglicherweise über VPN oder Direct Connect verbunden sind. AWS empfiehlt die Verwendung von RFC 1918 IP-Adressbereichen (10.0.0.0/8, 172.16.0.0/12 oder 192.168.0.0/16). Der CIDR-Block kann von /16 (65.536 IP-Adressen) bis /28 (16 IP-Adressen) reichen.
- Beispiel:
10.0.0.0/16bietet einen großen Adressraum für Ihre VPC.
- Beispiel:
-
Subnetz-CIDR-Blöcke: Teilen Sie den CIDR-Block Ihrer VPC in kleinere CIDR-Blöcke für Ihre Subnetze auf. Stellen Sie sicher, dass der CIDR-Block jedes Subnetzes eine Teilmenge des CIDR-Blocks der VPC ist und sich nicht mit anderen Subnetzen überschneidet.
- **Beispiel (wenn VPC
10.0.0.0/16ist):- Öffentliches Subnetz 1:
10.0.1.0/24 - Öffentliches Subnetz 2:
10.0.2.0/24 - Privates Subnetz 1:
10.0.10.0/24 - Privates Subnetz 2:
10.0.11.0/24
- Öffentliches Subnetz 1:
- **Beispiel (wenn VPC
2. Erstellen Sie Ihre VPC
Navigieren Sie zur VPC-Konsole in der AWS Management Console und erstellen Sie eine neue VPC.
- Gehen Sie zu VPC Dashboard > Ihre VPCs > VPC erstellen.
- Name-Tag: Geben Sie Ihrer VPC einen beschreibenden Namen (z. B.
MeineSichereVPC). - IPv4 CIDR-Block: Geben Sie den geplanten CIDR-Block ein (z. B.
10.0.0.0/16). - IPv6 CIDR-Block: Sie können bei Bedarf einen IPv6-CIDR-Block aktivieren.
- Tenancy: Für die meisten Anwendungsfälle ist Standard geeignet. Dediziert bietet Hardware-Isolation zu höheren Kosten.
- Klicken Sie auf VPC erstellen.
3. Subnetze erstellen
Erstellen Sie nun Ihre öffentlichen und privaten Subnetze innerhalb der VPC.
- Gehen Sie zu VPC Dashboard > Subnetze > Subnetz erstellen.
- VPC-ID: Wählen Sie die gerade erstellte VPC aus.
- Subnetzname: Geben Sie einen Namen an (z. B.
MeinÖffentlichesSubnetz-AZ1). - Availability Zone: Wählen Sie eine Availability Zone (AZ). Es ist bewährte Praxis, Ressourcen über mehrere AZs hinweg für hohe Verfügbarkeit bereitzustellen.
- IPv4 CIDR-Block: Geben Sie den CIDR-Block für dieses Subnetz ein (z. B.
10.0.1.0/24). - Klicken Sie auf Subnetz erstellen.
Wiederholen Sie diesen Vorgang, um alle Ihre geplanten öffentlichen und privaten Subnetze zu erstellen und stellen Sie sicher, dass sie sich für Ausfallsicherheit in verschiedenen Availability Zones befinden.
4. Erstellen Sie ein Internet Gateway (IGW)
Ein IGW wird für Ihre öffentlichen Subnetze benötigt, um auf das Internet zugreifen zu können.
- Gehen Sie zu VPC Dashboard > Internet Gateways > Internet Gateway erstellen.
- Name-Tag:
MeinVPCInternetGateway. - Klicken Sie auf Internet Gateway erstellen.
- Wählen Sie nach der Erstellung das IGW aus, klicken Sie auf Aktionen und wählen Sie An VPC anhängen. Wählen Sie Ihre VPC aus und klicken Sie auf Internet Gateway anhängen.
5. Routing-Tabellen erstellen
Routing-Tabellen leiten den Verkehr innerhalb Ihrer VPC. Sie benötigen in der Regel mindestens zwei: eine für öffentliche Subnetze und eine für private Subnetze.
a. Öffentliche Routing-Tabelle:
- Gehen Sie zu VPC Dashboard > Routing-Tabellen > Routing-Tabelle erstellen.
- Name-Tag:
MeineÖffentlicheRoutingTabelle. - VPC: Wählen Sie Ihre VPC aus.
- Klicken Sie auf Routing-Tabelle erstellen.
- Wählen Sie die neu erstellte
MeineÖffentlicheRoutingTabelleaus. - Klicken Sie unter dem Tab Routen auf Routen bearbeiten.
- Klicken Sie auf Route hinzufügen.
- Ziel:
0.0.0.0/0(aller IPv4-Verkehr). - Ziel (Target): Wählen Sie Internet Gateway und wählen Sie Ihr IGW aus.
- Klicken Sie auf Routen speichern.
- Subnetze zuordnen: Gehen Sie zum Tab Subnetz-Zuordnungen, klicken Sie auf Subnetz-Zuordnungen bearbeiten und ordnen Sie Ihre öffentlichen Subnetze dieser Routing-Tabelle zu.
b. Private Routing-Tabelle (mit NAT Gateway):
Damit Instanzen in privaten Subnetzen ausgehende Verbindungen zum Internet initiieren können (z. B. für Software-Updates), ohne direkt aus dem Internet erreichbar zu sein, verwenden Sie ein NAT Gateway.
-
NAT Gateway erstellen:
- Gehen Sie zu VPC Dashboard > NAT Gateways > NAT Gateway erstellen.
- Name:
MeinNATGateway. - Subnetz: Wählen Sie eines Ihrer öffentlichen Subnetze aus.
- Verbindungstyp:
Öffentlich. - Elastic IP-Zuweisungs-ID: Klicken Sie auf Elastic IP zuweisen, um eine neue Elastic IP-Adresse zu erstellen und zuzuweisen.
- Klicken Sie auf NAT Gateway erstellen.
- Hinweis: NAT Gateways verursachen Kosten. Für grundlegende ausgehende Konnektivität stellen Sie sicher, dass in Ihrem öffentlichen Subnetz genügend IP-Adressen für das NAT Gateway verfügbar sind.
-
Erstellen Sie die private Routing-Tabelle:
- Gehen Sie zu VPC Dashboard > Routing-Tabellen > Routing-Tabelle erstellen.
- Name-Tag:
MeinePrivateRoutingTabelle. - VPC: Wählen Sie Ihre VPC aus.
- Klicken Sie auf Routing-Tabelle erstellen.
- Wählen Sie die
MeinePrivateRoutingTabelleaus. - Klicken Sie unter dem Tab Routen auf Routen bearbeiten.
- Klicken Sie auf Route hinzufügen.
- Ziel:
0.0.0.0/0. - Ziel (Target): Wählen Sie NAT Gateway und wählen Sie Ihr NAT Gateway aus.
- Klicken Sie auf Routen speichern.
- Subnetze zuordnen: Gehen Sie zum Tab Subnetz-Zuordnungen, klicken Sie auf Subnetz-Zuordnungen bearbeiten und ordnen Sie Ihre privaten Subnetze dieser Routing-Tabelle zu.
6. Sicherheitsgruppen konfigurieren
Sicherheitsgruppen fungieren als zustandsbehaftete Firewalls auf Instanzebene. Sie erlauben oder verweigern den Datenverkehr basierend auf von Ihnen definierten Regeln.
- Bewährte Methode: Erstellen Sie spezifische Sicherheitsgruppen für verschiedene Arten von Ressourcen (z. B. Webserver, Datenbankserver, Anwendungsserver). Vermeiden Sie übermäßig permissive Regeln.
Beispiel: Sicherheitsgruppe für Webserver (WebServerSG)
- Gehen Sie zu VPC Dashboard > Sicherheitsgruppen > Sicherheitsgruppe erstellen.
- Name der Sicherheitsgruppe:
WebServerSG. - Beschreibung:
HTTP- und HTTPS-Zugriff erlauben. - VPC: Wählen Sie Ihre VPC aus.
- Eingehende Regeln:
- Typ:
HTTP, Protokoll:TCP, Portbereich:80, Quelle:0.0.0.0/0(oder ein spezifischerer vertrauenswürdiger IP-Bereich). - Typ:
HTTPS, Protokoll:TCP, Portbereich:443, Quelle:0.0.0.0/0(oder ein spezifischerer vertrauenswürdiger IP-Bereich). - (Optional) Typ:
SSH, Protokoll:TCP, Portbereich:22, Quelle:Ihre vertrauenswürdige IP-Adresse/Bereich(unerlässlich für die Verwaltung).
- Typ:
- Ausgehende Regeln: Erlauben Sie standardmäßig allen ausgehenden Datenverkehr (
0.0.0.0/0). Sie können dies bei Bedarf einschränken. - Klicken Sie auf Sicherheitsgruppe erstellen.
Beispiel: Sicherheitsgruppe für Datenbankserver (DatabaseSG)
- Erstellen Sie eine neue Sicherheitsgruppe namens
DatabaseSG. - Eingehende Regeln:
- Fügen Sie eine Regel hinzu, die den Verkehr auf dem Standardport Ihrer Datenbank (z. B.
3306für MySQL,5432für PostgreSQL) nur von der Sicherheitsgruppe Ihrer Anwendungsserver (z. B.WebServerSGoderAppServerSG) zulässt. - Quelle: Wählen Sie Benutzerdefiniert und geben Sie dann die ID Ihrer Anwendungsserver-Sicherheitsgruppe ein.
- Fügen Sie eine Regel hinzu, die den Verkehr auf dem Standardport Ihrer Datenbank (z. B.
- Ausgehende Regeln: Erlauben Sie normalerweise allen ausgehenden Datenverkehr.
7. Netzwerkzugriffssteuerungslisten (NACLs) konfigurieren
NACLs sind zustandslose Firewalls, die auf Subnetzebene arbeiten. Sie dienen als zusätzliche Verteidigungsschicht.
-
Zustandsbehaftet vs. Zustandslose: Sicherheitsgruppen sind zustandsbehaftet (wenn Sie eingehenden Verkehr zulassen, ist die ausgehende Antwort automatisch erlaubt). NACLs sind zustandlos (Sie müssen explizit Regeln für ein- und ausgehenden Verkehr definieren).
-
Bewährte Methode: NACLs werden oft mit Standardkonfigurationen belassen, es sei denn, eine spezifische Zugriffssteuerung auf Subnetzebene ist erforderlich. Sie können komplex zu verwalten sein.
Wenn Sie NACLs verwenden müssen:
- Gehen Sie zu VPC Dashboard > Netzwerk-ACLs > Netzwerk-ACL erstellen.
- Name-Tag:
MeineNacl. - VPC: Wählen Sie Ihre VPC aus.
- Klicken Sie auf Netzwerk-ACL erstellen.
- Wählen Sie die NACL aus und fügen Sie unter Eingehende Regeln Regeln hinzu.
- Regelnummern: NACLs werten Regeln in aufsteigender Reihenfolge aus, beginnend mit der Regel mit der niedrigsten Nummer. Verwenden Sie Zahlen wie
100,200,300usw., um zukünftige Regel-Einfügungen zu ermöglichen. - Zulassen/Verweigern: Geben Sie an, ob der Verkehr zugelassen oder verweigert werden soll.
- Protokoll, Portbereich, Quelle/Ziel: Definieren Sie die Verkehrsparameter.
- Denken Sie daran, entsprechende ausgehende Regeln zu konfigurieren.
- Ordnen Sie die NACL Ihren Subnetzen zu, indem Sie zum Tab Subnetz-Zuordnungen gehen.
Beispiel-Bereitstellungsszenario
Betrachten Sie eine typische Webanwendung:
- VPC:
10.0.0.0/16 - Öffentliches Subnetz 1 (
us-east-1a):10.0.1.0/24(Zuordnung zuMeineÖffentlicheRoutingTabelleund IGW) - Öffentliches Subnetz 2 (
us-east-1b):10.0.2.0/24(Zuordnung zuMeineÖffentlicheRoutingTabelleund IGW) - Privates Subnetz 1 (
us-east-1a):10.0.10.0/24(Zuordnung zuMeinePrivateRoutingTabelleund NAT Gateway) -
Privates Subnetz 2 (
us-east-1b):10.0.11.0/24(Zuordnung zuMeinePrivateRoutingTabelleund NAT Gateway) -
Internet Gateway: An die VPC angehängt.
- NAT Gateway: Bereitgestellt in
Öffentliches Subnetz 1mit einer Elastic IP. - Öffentliche Routing-Tabelle: Leitet
0.0.0.0/0an das IGW. Zugewiesen zu öffentlichen Subnetzen. -
Private Routing-Tabelle: Leitet
0.0.0.0/0an das NAT Gateway. Zugewiesen zu privaten Subnetzen. -
Sicherheitsgruppe für Load Balancer (in öffentlichen Subnetzen): Erlaubt HTTP/HTTPS von
0.0.0.0/0. - Sicherheitsgruppe für Webserver (in privaten Subnetzen): Erlaubt HTTP/HTTPS von der Load Balancer SG und SSH von Ihrer vertrauenswürdigen IP.
- Sicherheitsgruppe für Datenbanken (in privaten Subnetzen): Erlaubt MySQL/PostgreSQL von der Webserver SG.
Kritische Sicherheitsaspekte
- Prinzip der geringsten Rechtevergabe (Least Privilege): Gewähren Sie nur die notwendigen Berechtigungen für Ihre Sicherheitsgruppen und NACLs. Beschränken Sie Quell-IP-Adressen so weit wie möglich.
- Verwenden Sie mehrere Availability Zones: Verteilen Sie Ihre Subnetze und Ressourcen über mehrere AZs für hohe Verfügbarkeit und Disaster Recovery. Dies wird durch die Erstellung von Subnetzen in verschiedenen AZs und deren Zuordnung zu geeigneten Routing-Tabellen erreicht.
- Überprüfen Sie regelmäßig Sicherheitsgruppen und NACLs: Mit der Weiterentwicklung Ihrer Anwendung sollten sich auch Ihre Sicherheitsregeln weiterentwickeln. Überprüfen und aktualisieren Sie sie regelmäßig.
- Vermeiden Sie öffentliche Subnetze für sensible Ressourcen: Datenbanken, Anwendungsserver und andere sensible Ressourcen sollten sich in privaten Subnetzen befinden. Nur Ressourcen, die direkten Internetzugriff benötigen (wie Load Balancer oder Bastion Hosts), sollten sich in öffentlichen Subnetzen befinden.
- Erwägen Sie Bastion Hosts: Wenn Sie sich per SSH in Instanzen in privaten Subnetzen einloggen müssen, sollten Sie einen gehärteten Bastion Host in einem öffentlichen Subnetz in Betracht ziehen. Beschränken Sie den SSH-Zugriff auf den Bastion Host auf bekannte IP-Adressen.
- VPC Flow Logs: Aktivieren Sie VPC Flow Logs, um Informationen über den IP-Verkehr zu erfassen, der von und zu Netzwerkschnittstellen in Ihrer VPC fließt. Dies ist für die Sicherheitsüberwachung und Fehlerbehebung von unschätzbarem Wert.
- Netzwerksegmentierung: Verwenden Sie verschiedene VPCs und Subnetze, um Umgebungen (z. B. Entwicklung, Staging, Produktion) und verschiedene Ebenen Ihrer Anwendung zu segmentieren.
Fazit
Der Aufbau einer sicheren AWS VPC von Grund auf erfordert sorgfältige Planung und Konfiguration ihrer Kernkomponenten. Durch das Verständnis von CIDR-Blöcken, Subnetzen, Routing-Tabellen und die effektive Nutzung von Sicherheitsgruppen und NACLs können Sie eine robuste und isolierte Netzwerkumgebung für Ihre AWS-Ressourcen einrichten. Denken Sie daran, dass Sicherheit ein fortlaufender Prozess ist. Daher sind kontinuierliche Überwachung, Überprüfung und die Einhaltung von Best Practices unerlässlich, um eine sichere Cloud-Infrastruktur aufrechtzuerhalten.