Erste Schritte mit AWS Edge Services

Praktische Tutorials und Inhalte zu den grundlegenden Konzepten.

AWS Edge Services

Eine AWS-Region ist ein physischer Standort, an dem AWS Rechenzentren clustert und regionale Dienste wie EC2 und S3 betreibt. Im speziellen Fall von Online-Anwendungen kann der User-Traffic mehrere öffentliche Netzwerke durchqueren, bis er eine regionale Infrastruktur erreicht. Um die Nachteile im Hinblick auf Leistung, Zuverlässigkeit und Sicherheit zu verhindern, die beim Durchqueren unkontrollierter Netzwerke bestehen, sollten Sie erwägen, Ihre Architektur um AWS Edge Services zu erweitern. AWS-Edge-Services wie Amazon CloudFront und AWS Global Accelerator werden über Hunderte von weltweit verteilten Points of Presence (PoPs) außerhalb von AWS-Regionen betrieben. Benutzer werden von diesen PoPs im Durchschnitt innerhalb von 20 bis 30 Millisekunden bedient, und bei Bedarf wird ihr Datenverkehr über das globale AWS-Netzwerk an Ihre regionale Infrastruktur zurückgeleitet, anstatt über das öffentliche Internet zu laufen. Die globale AWS-Infrastruktur ist eine speziell entwickelte, hochverfügbare private Infrastruktur mit geringer Latenz, die auf einem globalen, vollständig redundanten Metro-Glasfasernetz aufbaut, das über terrestrische und transozeanische Kabel auf der ganzen Welt miteinander verbunden ist.

Stellen Sie Inhalte sicher mit geringer Latenz und hohen Übertragungsgeschwindigkeiten bereit.

Schützen Sie Ihre Webanwendungen vor häufigen Exploits.

Maximieren Sie Verfügbarkeit und Reaktionsfähigkeit von Anwendungen dank DDoS-Schutz.

Verwalten und konfigurieren Sie Firewall-Regeln zentral für Ihre Konten.

Verbessern Sie die Verfügbarkeit, Leistung und Sicherheit von Anwendungen mithilfe des globalen AWS-Netzwerks.

Amazon CloudFront, das CDN von AWS

Amazon CloudFront ist ein Netzwerk zur Bereitstellung von Inhalten (Content Delivery Network, CDN). CloudFront wird genutzt, um HTTP(S)-basierte Webanwendungen zu beschleunigen und deren Verfügbarkeit und Sicherheit zu verbessern. CloudFront kann in Anwendungsfällen wie der vollständigen Bereitstellung von Websites, API-Schutz und -Beschleunigung, adaptivem Videostreaming und Software-Download verwendet werden. Um diesen Service zu nutzen, erstellen Sie eine CloudFront-Distribution, konfigurieren Ihren Ursprung (jeden Ursprung, der einen öffentlich zugänglichen Domainnamen hat), stellen mithilfe von Amazon Certificate Manager ein gültiges TLS-Zertifikat aus und hängen es an. Dann konfigurieren Sie Ihren autoritativen DNS-Server so, dass der Domainname Ihrer Webanwendung auf den generierten Domainnamen der Distribution verweist (xyz.cloudfront.net). Während der DNS-Auflösungsphase (wenn Benutzer zu Ihrer Webanwendung gehen) wird eine HTTP(S)-Anfrage dynamisch an den in Bezug auf Latenz und Verfügbarkeit besten CloudFront-PoP umgeleitet. Sobald der PoP ausgewählt ist, beendet der Benutzer die TCP-Verbindung (einschließlich des TLS-Handshakes) auf einem der PoP-Server und sendet dann die HTTP-Anfrage. Wenn der Inhalt in einer der Cache-Ebenen von CloudFront zwischengespeichert wird, wird die Anfrage lokal von CloudFront erfüllt. Andernfalls wird die Anfrage an den Ursprung weitergeleitet. CloudFront hat zwei Ebenen in seiner Infrastruktur. Die erste Ebene basiert auf Edge-Standorten, an denen die Verbindungen der Benutzer beendet und DDoS-Angriffe auf Ebene 3/4 abgewehrt werden. Sie bieten Caching-Funktionen und führen, falls konfiguriert, CloudFront-Funktionen aus und wenden WAF-Regeln an. Die zweite Ebene basiert auf regionalen Edge-Caches, die in AWS-Regionen gehostet werden. Sie bietet längere Cache-Aufbewahrungszeiten für bessere Cache-Trefferraten und führt Lambda@Edge -Funktionen aus, wenn sie konfiguriert sind. CloudFront sorgt für eine dynamische Optimierung dieser Ebenen für jedes HTTP je nach Art. Beispielsweise überspringen bestimmte HTTP-Anfragen Ebenen (z. B. Anfragen mit deaktiviertem Caching, POST/PUT/DELETE-Anfragen, Anfragen für Objekte, die mithilfe des Cache-Control-Antwortheaders als nicht zwischenspeicherbar gekennzeichnet sind usw.). So können sie von Edge-Standorten direkt an Ihren Ursprung gesendet werden.
Schließlich führt CloudFront Logik in einer bestimmten Reihenfolge aus. Zuerst führt CloudFront seine nativen Sicherheitskontrollen aus (z. B. TLS-Richtlinie, HTTP-to-HTTPS-Umleitung, Geoblocking, signierte URLs), anschließend die Regeln einer AWS WAF-WebACL, falls konfiguriert, und dann den Code einer Edge-Funktion, falls sie für ein Viewer-Anforderungsereignis konfiguriert ist. Dann überprüft es seinen Cache, um zu sehen, ob die Anfrage zwischengespeichert werden kann. Danach führt es den Code von Lambda@Edge aus, falls er beim Ursprungsanforderungsereignis konfiguriert ist, und leitet schließlich den Code von Lambda weiter Anfrage an den Ursprung (falls erforderlich). Um mehr über den Lebenszyklus einer HTTP-Anfrage innerhalb der Ebenen von CloudFront zu erfahren, schauen Sie sich den folgenden Vortrag von re:Invent an. Beachten Sie, dass die CloudFront-Funktionen zum Zeitpunkt der Aufzeichnung diese Vortrags noch nicht veröffentlicht war.

AWS WAF zum Schutz von Webanwendungen auf Ebene 7

AWS WAF ist eine Web Application Firewall, mit der Webanwendungen vor Bedrohungen auf Anwendungsebene geschützt werden können. Zu den Bedrohungen auf Anwendungsebene gehören:

  • DDoS-Angriffe (z. B. HTTP-Floods), die darauf abzielen, Ihre Anwendungsressourcen zu verbrauchen, um sie legitimen Benutzern unzugänglich zu machen. 
  • Angriffe, die versuchen, Sicherheitslücken auf Anwendungsebene auszunutzen und dann böswillige Aktivitäten ausführen, wie z. B. den Diebstahl von Daten oder die unbefugte Nutzung Ihrer Ressourcen wie etwa zum Bitcoin-Mining. 
  • Angriffe automatisierter Bots, die Ihrem Unternehmen auf unterschiedliche Weise schaden können, z. B. durch Kontoübernahme und Content-Scraping. 

Um AWS WAF zu verwenden, erstellen Sie Regeln in einer WebACL und hängen Sie sie dann an Ressourcen an, die geschützt werden müssen. Globale WebACL können an CloudFront-Distributionen angehängt werden, und regionale WebACLs können an Ressourcen innerhalb derselben Region wie ALBs und API-Gateways angehängt werden. Wenn eine WAF-WebACL an eine Ressource angehängt wird, übergibt der zugrunde liegende Service der Ressource (z. B. CloudFront oder ALB) eine Kopie der HTTP-Anfrage an den AWS WAF-Service, um die konfigurierten Regeln innerhalb eines einstelligen Millisekundenzeitraums auszuwerten. Basierend auf der Regelauswertung weist der AWS WAF-Service den zugrunde liegenden Service an, wie die Anfrage verarbeitet werden soll (z. B. blockieren, weiterleiten, eine Aufgabe stellen usw.). Beachten Sie, dass die AWS WAF-Logik ausschließlich auf HTTP-Anforderungsattributen (und nicht Antwortattributen) basiert.

Eine neu erstellte WAF-WebACL enthält nur eine Standardregel, die alle Anfragen zulässt, zu der Sie mehrere Regeln unterschiedlichen Typs hinzufügen können. Zunächst können Sie benutzerdefinierte Regeln erstellen, die auf den Attributen (z. B. IP, Header, Cookies, URL usw.) der geprüften HTTP-Anfrage basieren. Regeln können auch in Regelgruppen gruppiert werden, um ihre Verwaltung zu erleichtern. Zweitens können Sie verwaltete Regeln von AWS oder von Anbietern auf dem AWS Marketplace hinzufügen, die als konfigurierbare Regelgruppen zu Ihrer WebACL hinzugefügt werden. Sie können beispielsweise verwaltete AWS-Gruppen wie Core Rule Set oder eine Liste anonymer IP-Adressen hinzufügen. Erweiterte verwaltete Regeln wie Bot Control und Account Takeover Prevention erfordern eine clientseitige SDK-Integration. Regeln können beim Abgleich mit den folgenden Aktionen konfiguriert werden: Zulassen und Zählen (mit der Möglichkeit, Header in den Upstream zu senden), Blockieren (mit der Möglichkeit, mit einer benutzerdefinierten Antwort zu antworten), Ratenlimit und schließlich Aufgaben mit CAPTCHA oder stillen Aufgaben. Regeln wie etwa AWS Managed Rules geben Labels aus, die in der Logik nachfolgender Regeln verwendet werden könnten, wenn sie von der WAF-Auswertung erreicht werden. Sie können Ihre eigenen Regeln für die Ausgabe von Labels konfigurieren, die in WAF-Protokolldatensätzen verfügbar sind.

AWS Global Accelerator, eine Beschleunigung auf Netzwerkebene

AWS Global Accelerator ist ein Netzwerkservice, der die Leistung, Zuverlässigkeit und Sicherheit Ihrer Online-Anwendungen mithilfe von AWS Global Infrastructure verbessert. Da AWS Global Accelerator auf Ebene 4 des OSI-Modells arbeitet, kann es mit jeder TCP/UDP-Anwendung verwendet werden. Zu den beispielhaften Anwendungsfällen gehören: UDP/TCP-basiertes Multiplayer-Gaming, Voice- und Video-over-IP, IoT, Videoaufnahme und FTP-Uploads sowie andere Anwendungsfälle wie VPN, Git und AdTech-Gebote. 

AWS Global Accelerator kann vor Ihren Network Load Balancern, Application Load Balancern, AWS EC2-Instances und Elastic IPs bereitgestellt werden, die alle als regionale Endpunkte für Ihre Anwendung dienen können. Um diesen Dienst zu verwenden, erstellen Sie einen Accelerator, der zwei globale statische Anycast-IPv4-Adressen bereitstellt, die als fester Einstiegspunkt für Ihre Anwendung dienen. Mit Global Accelerator sind mehrere Anwendungsendpunkte in einer oder mehreren AWS-Regionen möglich, auf die jedoch alle über dieselbe Anycast-IP-Adresse zugegriffen werden kann. Anschließend konfigurieren Sie Ihren autoritativen DNS-Server so, dass der Domainname Ihrer Webanwendung auf die dedizierten statischen IPs des Accelerators verweist. Diese Anycast-IPs werden in allen Global Accelerator-PoPs angekündigt, um den User-Traffic an den nächstgelegenen PoP weiterzuleiten und ihn dann über das globale AWS-Netzwerk an den regionalen Endpunkt weiterzuleiten.

Schulungsressourcen für Entwickler

  • Priorität
1

War diese Seite hilfreich?