AWS Solutions Architect · Les

CloudFront met WAF en Lambda@Edge

Koppel AWS WAF om veelvoorkomende webaanvallen te blokkeren en voer lichte transformaties van requests en responses uit aan de edge met Lambda@Edge.

Les 4 van 413 stappen

CloudFront met WAF en Lambda@Edge is een gratis AWS Solutions Architect-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject AWS Solutions Architect. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus AWS Solutions Architect bevat in totaal 4 lessen.

CloudFront beschermen met AWS WAF

AWS WAF (Web Application Firewall) filtert en controleert HTTP/HTTPS-verzoeken die je CloudFront-distributie bereiken. Door een WAF-Web ACL aan je distributie te koppelen, kun je veelvoorkomende webaanvallen blokkeren, zoals SQL-injectie, cross-site scripting (XSS), schadelijke bots en aanvallen uit de OWASP Top 10, voordat ze je originserver bereiken.

WAF werkt aan de CloudFront-edge. Dat betekent dat schadelijke verzoeken op de dichtstbijzijnde edge-locatie worden geweigerd in plaats van je ALB of applicatieserver te bereiken. Hierdoor wordt je backend minder belast en worden aanvallen dichter bij de aanvaller gestopt.

# Associate a WAF Web ACL with a CloudFront distribution
aws wafv2 associate-web-acl \
  --web-acl-arn arn:aws:wafv2:us-east-1:123456789:global/webacl/MyACL/12345 \
  --resource-arn arn:aws:cloudfront::123456789:distribution/EDFDVBD6EXAMPLE

WAF-regels en regelgroepen

Een WAF-Web ACL bevat geordende regels en regelgroepen die elk kenmerken van verzoeken vergelijken en een actie uitvoeren (Allow, Block, Count, CAPTCHA). Regels worden geëvalueerd op prioriteitsvolgorde; de actie van de eerste overeenkomende regel wordt toegepast.

AWS biedt beheerde regelgroepen: vooraf gebouwde regelsets die worden onderhouden door AWS en verkopers op AWS Marketplace. De AWS Managed Rules - Core Rule Set dekt de OWASP Top 10 zonder configuratie. AWS werkt beheerde regelgroepen bij wanneer nieuwe bedreigingen ontstaan, waardoor je operationele belasting afneemt.

# Create a Web ACL with AWS Managed Core Rule Set
aws wafv2 create-web-acl \
  --name MyCloudFrontACL \
  --scope CLOUDFRONT \
  --default-action Allow={} \
  --rules '[{
    "Name": "CoreRuleSet",
    "Priority": 1,
    "Statement": {
      "ManagedRuleGroupStatement": {
        "VendorName": "AWS",
        "Name": "AWSManagedRulesCommonRuleSet"
      }
    },
    "OverrideAction": {"None": {}},
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "CoreRuleSet"
    }
  }]' \
  --visibility-config SampledRequestsEnabled=true,CloudWatchMetricsEnabled=true,MetricName=MyACL \
  --region us-east-1

WAF: snelheidsbeperking en botbeheer

Regels op basis van snelheid tellen gedurende een periode van 5 minuten de verzoeken vanaf elk bron-IP-adres. Als een IP-adres de drempel overschrijdt, bijvoorbeeld 2.000 verzoeken per 5 minuten, blokkeert WAF verdere verzoeken vanaf dat IP-adres totdat de snelheid daalt. Regels op basis van snelheid beschermen tegen brute-forceaanvallen, het invullen van gestolen inloggegevens en eenvoudige DDoS-scrapingaanvallen.

AWS WAF Bot Control is een beheerde regelgroep die verkeer indeelt in categorieën: geverifieerde bots (Googlebot, Bingbot), scrapers, controlegereedschappen en menselijk verkeer. Je kunt per categorie verschillende acties configureren: zoekmachinebots toestaan, onbekende bots met CAPTCHA uitdagen en schadelijke scrapers blokkeren.

WAF-bereik: CLOUDFRONT versus REGIONAL

WAF-Web ACL's hebben het bereik CLOUDFRONT, wereldwijd en voor gebruik met CloudFront, of REGIONAL, voor gebruik met ALB, API Gateway, AppSync of Cognito User Pools in een specifieke regio. WAF-ACL's met CloudFront-bereik moeten worden aangemaakt in de us-east-1-regio, ongeacht waar het verkeer vandaan komt, omdat CloudFront vanuit die regio wordt beheerd.

Dit is een belangrijke valkuil voor examens: als je een WAF-Web ACL aanmaakt in eu-west-1 en deze aan CloudFront probeert te koppelen, mislukt de koppeling. Maak WAF-ACL's voor CloudFront altijd aan in us-east-1.

Inleiding tot Lambda@Edge

Met Lambda@Edge kun je Node.js- of Python-Lambda-functies uitvoeren op CloudFront-edge-locaties als reactie op CloudFront-gebeurtenissen. Functies worden binnen milliseconden na het verzoek van de gebruiker uitgevoerd, zonder het verkeer voor verwerking terug te sturen naar een centrale regio.

Lambda@Edge-functies worden geïmplementeerd in de regio us-east-1, maar automatisch wereldwijd naar alle CloudFront-edge-locaties gerepliceerd. Hierdoor wordt je code zo dicht mogelijk bij de gebruiker uitgevoerd, zodat personalisatie, authenticatie en A/B-testen aan de edge mogelijk zijn met minimale extra latentie.

Triggerpunten van Lambda@Edge

Lambda@Edge-functies kunnen CloudFront-verzoeken en -antwoorden op vier punten in de levenscyclus onderscheppen:

  • Viewer Request: nadat CloudFront het verzoek van de kijker heeft ontvangen en voordat de cache wordt gecontroleerd; gebruik dit voor authenticatie, omleidingen en het aanpassen van headers
  • Origin Request: na een cachemisser en voordat het verzoek naar de originserver wordt doorgestuurd; gebruik dit voor het herschrijven van URL's en aangepaste headers naar de originserver
  • Origin Response: na ontvangst van het antwoord van de originserver en voordat dit wordt opgeslagen in de cache; gebruik dit voor het toevoegen van beveiligingsheaders en het aanpassen van het antwoord
  • Viewer Response: voordat CloudFront het antwoord naar de kijker verstuurt; gebruik dit voor het toevoegen of aanpassen van antwoordheaders

Lambda@Edge versus CloudFront Functions

AWS biedt twee opties voor edge computing met verschillende afwegingen:

  • CloudFront Functions: uitvoering in minder dan een milliseconde, alleen JavaScript, extreem lage kosten (ongeveer 1/6 van de prijs), werkt alleen bij Viewer Request- en Viewer Response-gebeurtenissen, maximale rekentijd van 1 ms en geen toegang tot VPC of netwerk
  • Lambda@Edge: uitvoering tot 30 seconden (Viewer) / 30 seconden (Origin), Node.js of Python, alle vier triggerpunten, kan netwerkverzoeken uitvoeren en heeft toegang tot de inhoud van verzoeken en antwoorden

Gebruik CloudFront Functions voor eenvoudige aanpassingen van headers, het normaliseren van URL's en het berekenen van cachesleutels. Gebruik Lambda@Edge voor complexe logica waarvoor netwerkoproepen, langere berekeningen of verwerking aan de originserver nodig zijn.

Toepassingen van Lambda@Edge

Veelvoorkomende Lambda@Edge-patronen op het SAA-C03-examen:

  • JWT-validatie aan de edge: een Viewer Request-functie valideert een Authorization-header; niet-geautoriseerde verzoeken retourneren 401 zonder de originserver te bereiken
  • A/B-testen: Viewer Request wijst gebruikers toe aan groep A of B via een cookie en past het verzoek aan om /a/page.html of /b/page.html op te halen
  • URL's herschrijven: Origin Request herschrijft nette URL's naar de werkelijke bestandspaden in S3
  • Dynamisch afbeeldingen schalen: Origin Request stelt een verzoek samen naar een Lambda-functie voor beeldverwerking; Origin Response slaat de geschaalde afbeelding op in de cache
  • HTTP-beveiligingsheaders: Viewer Response voegt CSP-, HSTS- en X-Frame-Options-headers toe

Beperkingen van Lambda@Edge

Lambda@Edge heeft verschillende beperkingen ten opzichte van standaard Lambda:

  • Functies moeten zich in de regio us-east-1 bevinden
  • Geen ondersteuning voor VPC's (toegang tot resources in een VPC is niet mogelijk)
  • Geen omgevingsvariabelen (neem configuratie op in de functiecode of haal deze op uit Parameter Store bij een koude start)
  • Lambda Layers kunnen niet worden gebruikt
  • Time-out voor viewer-gebeurtenissen: 5 seconden; time-out voor origin-gebeurtenissen: 30 seconden
  • Limiet voor de grootte van het implementatiepakket: 1 MB (viewer-gebeurtenissen) / 50 MB (origin-gebeurtenissen)

Door deze beperkingen is Lambda@Edge niet geschikt voor langlopende berekeningen, bewerkingen die afhankelijk zijn van een VPC of functies die per implementatie dynamische configuratie nodig hebben.

WAF + Lambda@Edge: gelaagde beveiliging

WAF en Lambda@Edge hebben verschillende beveiligingsrollen en vullen elkaar aan:

  • WAF: blokkeert aanvallen op basis van handtekeningen (SQL-injectie, XSS, bekende kwaadwillende partijen, snelheidsbeperking)—beheerde regels handelen veelvoorkomende aanvallen automatisch af
  • Lambda@Edge: aangepaste beveiligingslogica voor bedrijfsregels (JWT-validatie, sessiecontroles, verificatie van toegangstokens)—flexibel, maar vereist ontwikkelingswerk

Een architectuur met meerdere verdedigingslagen: WAF blokkeert bekende aanvalspatronen eerst; Lambda@Edge valideert authenticatie op bedrijfsniveau; door CloudFront ondertekende URL's en cookies beperken de toegang tot inhoud; OAC houdt S3 privé. Elke laag voorkomt onafhankelijk een andere aanvalsklasse.

WAF en Lambda@Edge monitoren

Monitor je beveiligingslaag aan de edge met deze hulpmiddelen:

  • WAF-logboeken: schakel volledige aanvraagregistratie in naar S3, CloudWatch Logs of Kinesis Firehose om te zien welke regels overeenkomen en welk verkeer wordt geblokkeerd
  • WAF-statistieken: BlockedRequests, AllowedRequests, CountedRequests per regel in CloudWatch
  • Lambda@Edge-logboeken: CloudWatch Logs-groepen worden gemaakt in elke regio waarin de functie wordt uitgevoerd; gebruik CloudWatch Insights om query's uit te voeren in meerdere regio's
  • CloudFront Real-Time Logs: stream toegangslogboeken naar Kinesis voor directe analyse (in tegenstelling tot standaardtoegangslogboeken, die elke paar minuten in batches worden verwerkt)

Korte controle

Toets je begrip van de AWS Solutions Architect-concepten (SAA-C03) uit deze les.

Samenvatting van de les

In deze les heb je geleerd dat AWS WAF veelvoorkomende webaanvallen aan de CloudFront-edge blokkeert met beheerde en aangepaste regelgroepen, dat Lambda@Edge wereldwijd aangepaste code uitvoert op vier CloudFront-triggerpunten en dat CloudFront Functions uitvoering in minder dan een milliseconde bieden voor eenvoudige logica aan de viewerzijde. WAF-ACL's voor CloudFront moeten worden gemaakt in us-east-1. Hierna behandelen we Application, Network en Gateway Load Balancers.

Gratis beginnen

Leer AWS Solutions Architect met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “CloudFront met WAF en Lambda@Edge” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad AWS Solutions Architect, waaronder “CloudFront met WAF en Lambda@Edge”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus AWS Solutions Architect bevat in totaal 4 lessen.

Wat leer ik in “CloudFront met WAF en Lambda@Edge”?

Koppel AWS WAF om veelvoorkomende webaanvallen te blokkeren en voer lichte transformaties van requests en responses uit aan de edge met Lambda@Edge. Je oefent met AWS Solutions Architect door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met AWS Solutions Architect te beginnen?

Ervaring vooraf is niet nodig. AWS Solutions Architect op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “CloudFront met WAF en Lambda@Edge”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over AWS Solutions Architect?

Ja. Elke les over AWS Solutions Architect bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. CloudFront-distributies en origins
  2. Cache behaviors en TTL-instellingen
  3. Ondertekende URL's, ondertekende cookies en geobeperking
  4. CloudFront met WAF en Lambda@Edge
← Terug naar AWS Solutions Architect