AWS Solutions Architect · Lektion

CloudFront med WAF och Lambda@Edge

Koppla AWS WAF för att blockera vanliga webbattacker och kör lätta transformationssteg för förfrågningar och svar vid kanten med Lambda@Edge.

Lektion 4 av 413 steg

CloudFront med WAF och Lambda@Edge är en gratis lektion i AWS Solutions Architect på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för AWS Solutions Architect, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i AWS Solutions Architect innehåller totalt 4 lektioner.

Skydda CloudFront med AWS WAF

AWS WAF (Web Application Firewall) filtrerar och övervakar HTTP/HTTPS-begäranden som når er CloudFront-distribution. Genom att koppla en WAF-Web ACL till distributionen kan ni blockera vanliga webbattacker – SQL-injektion, cross-site scripting (XSS), skadliga botar och attacker från OWASP Top 10 – innan de når ursprunget.

WAF körs vid CloudFront-edge, vilket innebär att skadliga begäranden avvisas vid närmaste edge-plats i stället för att nå er ALB eller applikationsserver. Det minskar belastningen på backend och stoppar attacker närmare angriparen.

# 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-regler och regelgrupper

En WAF Web ACL innehåller ordnade regler och regelgrupper som var och en matchar attribut i begäranden och utför en åtgärd (Allow, Block, Count, CAPTCHA). Reglerna utvärderas i prioritetsordning och åtgärden för den första matchande regeln tillämpas.

AWS tillhandahåller hanterade regelgrupper – färdiga regeluppsättningar som underhålls av AWS och säljare på AWS Marketplace. AWS Managed Rules - Core Rule Set täcker OWASP Top 10 utan någon konfiguration. AWS uppdaterar de hanterade regelgrupperna när nya hot uppstår, vilket minskar den operativa arbetsbördan.

# 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: hastighetsbegränsning och botkontroll

Hastighetsbaserade regler i WAF räknar begäranden från varje käll-IP under ett femminutersintervall. Om en IP-adress överskrider tröskelvärdet (till exempel 2 000 begäranden på 5 minuter) blockerar WAF ytterligare begäranden från den IP-adressen tills hastigheten sjunker. Hastighetsbaserade regler skyddar mot brute force, credential stuffing och enklare DDoS-baserade skrapningsattacker.

AWS WAF Bot Control är en hanterad regelgrupp som klassificerar trafik i kategorier: verifierade botar (Googlebot, Bingbot), skrapverktyg, övervakningsverktyg och mänsklig trafik. Ni kan konfigurera olika åtgärder per kategori – tillåta sökmotorbotar, utmana okända botar med CAPTCHA och blockera skadliga skrapverktyg.

WAF-omfattning: CLOUDFRONT jämfört med REGIONAL

WAF Web ACL:er har antingen omfattningen CLOUDFRONT (global, för användning med CloudFront) eller REGIONAL (för användning med ALB, API Gateway, AppSync eller Cognito User Pools i en specifik Region). CloudFront-omfattade WAF ACL:er måste skapas i us-east-1 Region, oavsett var trafiken kommer från, eftersom CloudFront hanteras från den regionen.

Detta är en viktig fallgrop på provet: om ni skapar en WAF Web ACL i eu-west-1 och försöker koppla den till CloudFront misslyckas kopplingen. Skapa alltid WAF ACL:er för CloudFront i us-east-1.

Introduktion till Lambda@Edge

Lambda@Edge gör det möjligt att köra Lambda-funktioner i Node.js eller Python på CloudFronts edge-platser som svar på CloudFront-händelser. Funktionerna körs inom millisekunder från användarens begäran, utan att trafiken behöver dirigeras tillbaka till en central Region för bearbetning.

Lambda@Edge-funktioner distribueras till regionen us-east-1 men replikeras automatiskt till alla CloudFront-edge-platser globalt. Det innebär att koden körs så nära användaren som möjligt, vilket möjliggör personalisering, autentisering och A/B-testning vid edge med minimal extra fördröjning.

Utlösningspunkter för Lambda@Edge

Lambda@Edge-funktioner kan fånga upp CloudFront-begäranden och svar vid fyra punkter i livscykeln:

  • Viewer Request: efter att CloudFront har tagit emot begäran från användaren, innan cachen kontrolleras – används för autentisering, omdirigeringar och manipulation av headers
  • Origin Request: efter en cachemiss, innan begäran vidarebefordras till ursprunget – används för URL-omskrivning och anpassade headers till ursprunget
  • Origin Response: efter att svaret har tagits emot från ursprunget, innan det cachas – används för att lägga till säkerhetsheaders och ändra svaret
  • Viewer Response: innan CloudFront skickar svaret till användaren – används för att lägga till eller ändra svarsheaders

Lambda@Edge jämfört med CloudFront Functions

AWS erbjuder två alternativ för beräkning vid edge, med olika avvägningar:

  • CloudFront Functions: körning på under en millisekund, endast JavaScript, mycket låg kostnad (cirka 1/6 av priset), körs endast vid händelserna Viewer Request och Viewer Response, gräns på 1 ms beräkningstid och ingen åtkomst till VPC eller nätverk
  • Lambda@Edge: upp till 30 sekunders körningstid (Viewer) / 30 sekunder (Origin), Node.js eller Python, alla fyra utlösningspunkter, kan göra nätverksbegäranden och har åtkomst till begärande- och svarskroppar

Använd CloudFront Functions för enkel header-manipulation, normalisering av URL:er och beräkning av cache-nycklar. Använd Lambda@Edge för komplex logik som kräver nätverksanrop, längre beräkningar eller bearbetning på ursprungssidan.

Användningsfall för Lambda@Edge

Vanliga Lambda@Edge-mönster på SAA-C03-provet:

  • JWT-validering vid edge: en Viewer Request-funktion validerar en Authorization-header; obehöriga begäranden returnerar 401 utan att nå ursprunget
  • A/B-testning: Viewer Request tilldelar användare grupp A eller B (via en cookie) och ändrar begäran så att /a/page.html eller /b/page.html hämtas
  • URL-omskrivning: Origin Request skriver om rena URL:er till de faktiska filsökvägarna i S3
  • Dynamisk bildstorleksändring: Origin Request skapar en begäran till en bildbearbetande Lambda; Origin Response cachar den storleksändrade bilden
  • HTTP-säkerhetsheaders: Viewer Response lägger in CSP-, HSTS- och X-Frame-Options-headers

Begränsningar för Lambda@Edge

Lambda@Edge har flera begränsningar jämfört med standard-Lambda:

  • Funktioner måste finnas i regionen us-east-1
  • Inget stöd för VPC (kan inte komma åt resurser i en VPC)
  • Inga miljövariabler (bädda in konfigurationen i funktionskoden eller hämta den från Parameter Store vid kallstart)
  • Kan inte använda Lambda Layers
  • Tidsgräns för viewer-händelser: 5 sekunder; tidsgräns för origin-händelser: 30 sekunder
  • Storleksgräns för distributionspaket: 1 MB (viewer-händelser) / 50 MB (origin-händelser)

På grund av dessa begränsningar lämpar sig Lambda@Edge inte för långvariga beräkningar, åtgärder som är beroende av VPC eller funktioner som behöver dynamisk konfiguration vid varje distribution.

WAF + Lambda@Edge: lagerbaserad säkerhet

WAF och Lambda@Edge har olika säkerhetsroller och kompletterar varandra:

  • WAF: signaturbaserad blockering av attacker (SQL-injektion, XSS, kända angripare, hastighetsbegränsning) – hanterade regler hanterar vanliga attacker automatiskt
  • Lambda@Edge: anpassad säkerhetslogik för verksamheten (validering av JWT, sessionskontroller, verifiering av åtkomsttoken) – flexibelt men kräver utvecklingsarbete

En defense-in-depth-arkitektur: WAF blockerar först kända attackmönster; Lambda@Edge validerar autentisering på verksamhetsnivå; signerade URL:er och cookies i CloudFront begränsar åtkomsten till innehåll; OAC håller S3 privat. Varje lager förhindrar självständigt en annan typ av attack.

Övervakning av WAF och Lambda@Edge

Övervaka säkerhetslagret i edge-miljön med dessa verktyg:

  • WAF-loggar: aktivera fullständig loggning av begäranden till S3, CloudWatch Logs eller Kinesis Firehose för att se vilka regler som matchar och vilken trafik som blockeras
  • WAF-mätvärden: BlockedRequests, AllowedRequests, CountedRequests per regel i CloudWatch
  • Lambda@Edge-loggar: CloudWatch Logs-logggrupper skapas i varje region där funktionen körs; använd CloudWatch Insights för att söka i flera regioner
  • CloudFront Real-Time Logs: strömma åtkomstloggar till Kinesis för omedelbar analys (i stället för standardåtkomstloggar som samlas i batchar med några minuters mellanrum)

Snabbtest

Testa Era kunskaper om AWS Solutions Architect-koncepten (SAA-C03) från den här lektionen.

Sammanfattning av lektionen

I den här lektionen har Ni lärt Er att AWS WAF blockerar vanliga webbattacker vid CloudFronts edge med hjälp av hanterade och anpassade regelgrupper, att Lambda@Edge kör anpassad kod vid fyra utlösarpunkter i CloudFront globalt och att CloudFront Functions erbjuder körning på under en millisekund för enkel logik på viewer-sidan. WAF-ACL:er för CloudFront måste skapas i us-east-1. Härnäst går vi igenom Application Load Balancer, Network Load Balancer och Gateway Load Balancer.

Gratis att börja

Lär dig AWS Solutions Architect med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”CloudFront med WAF och Lambda@Edge” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen AWS Solutions Architect, inklusive ”CloudFront med WAF och Lambda@Edge”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i AWS Solutions Architect innehåller totalt 4 lektioner.

Vad lär jag mig i ”CloudFront med WAF och Lambda@Edge”?

Koppla AWS WAF för att blockera vanliga webbattacker och kör lätta transformationssteg för förfrågningar och svar vid kanten med Lambda@Edge. Ni övar på AWS Solutions Architect med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig AWS Solutions Architect?

Du behöver inga förkunskaper. Utbildningen i AWS Solutions Architect på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”CloudFront med WAF och Lambda@Edge”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här AWS Solutions Architect-lektionen?

Ja. Varje AWS Solutions Architect-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. CloudFront-distributioner och ursprung
  2. Cachebeteenden och TTL-inställningar
  3. Signerade URL:er, signerade cookies och geografisk begränsning
  4. CloudFront med WAF och Lambda@Edge
← Tillbaka till AWS Solutions Architect