CloudFront med WAF og Lambda@Edge
Tilknyt AWS WAF for at blokere almindelige webangreb, og udfør lette transformationer af forespørgsler og svar ved kanten med Lambda@Edge.
CloudFront med WAF og Lambda@Edge er en gratis Cloud & IT Cert Prep-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cloud & IT Cert Prep, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
Beskyttelse af CloudFront med AWS WAF
AWS WAF (Web Application Firewall) filtrerer og overvåger HTTP/HTTPS-anmodninger, der når din CloudFront-distribution. Ved at knytte en WAF-Web ACL til din distribution kan du blokere almindelige webudnyttelser – SQL-injektion, cross-site scripting (XSS), skadelige bots og OWASP Top 10-angreb – før de når din oprindelse.
WAF fungerer ved CloudFronts edge-lokation, hvilket betyder, at skadelige anmodninger afvises ved den nærmeste edge-lokation i stedet for at nå din ALB eller applikationsserver. Det reducerer belastningen på din backend og stopper angreb tættere på angriberen.
# 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/EDFDVBD6EXAMPLEWAF-regler og regelgrupper
En WAF Web ACL indeholder ordnede regler og regelgrupper, som hver matcher anmodningsattributter og udfører en handling (Allow, Block, Count, CAPTCHA). Reglerne evalueres i prioritetsrækkefølge, og handlingen for den første matchende regel anvendes.
AWS stiller administrerede regelgrupper til rådighed – forudbyggede regelsæt, der vedligeholdes af AWS og sælgere på AWS Marketplace. AWS Managed Rules - Core Rule Set dækker OWASP Top 10 uden konfiguration. AWS opdaterer administrerede regelgrupper, når nye trusler opstår, hvilket reducerer din driftsbyrde.
# 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-1WAF-hastighedsbegrænsning og botkontrol
Hastighedsbaserede regler i WAF tæller anmodninger fra hver kilde-IP-adresse over et vindue på 5 minutter. Hvis en IP-adresse overskrider tærsklen (f.eks. 2.000 anmodninger pr. 5 minutter), blokerer WAF yderligere anmodninger fra den pågældende IP-adresse, indtil hastigheden falder. Hastighedsbaserede regler beskytter mod brute force, credential stuffing og simple DDoS-scrapingangreb.
AWS WAF Bot Control er en administreret regelgruppe, der klassificerer trafik i kategorier: bekræftede bots (Googlebot, Bingbot), scrapingværktøjer, overvågningsværktøjer og menneskelig trafik. Du kan konfigurere forskellige handlinger pr. kategori – tillade søgemaskiners bots, udfordre ukendte bots med CAPTCHA og blokere skadelige scrapingværktøjer.
WAF-omfang: CLOUDFRONT i forhold til REGIONAL
WAF Web ACL'er har enten omfanget CLOUDFRONT (globalt, til brug med CloudFront) eller REGIONAL (til brug med ALB, API Gateway, AppSync eller Cognito User Pools i en bestemt Region). CloudFront-omfattede WAF-ACL'er skal oprettes i us-east-1 Region, uanset hvor trafikken kommer fra, fordi CloudFront administreres fra denne Region.
Dette er en vigtig eksamensfælde: Hvis du opretter en WAF Web ACL i eu-west-1 og forsøger at knytte den til CloudFront, mislykkes tilknytningen. Opret altid CloudFront-WAF-ACL'er i us-east-1.
Introduktion til Lambda@Edge
Lambda@Edge giver dig mulighed for at køre Lambda-funktioner i Node.js eller Python ved CloudFronts edge-lokationer som reaktion på CloudFront-hændelser. Funktionerne kører inden for millisekunder efter brugerens anmodning uden at dirigere trafikken tilbage til en central Region til behandling.
Lambda@Edge-funktioner implementeres i us-east-1 Region, men replikeres automatisk til alle CloudFronts edge-lokationer globalt. Det betyder, at din kode udføres så tæt på brugeren som muligt, hvilket muliggør personalisering, godkendelse og A/B-test ved edge-lokationen med minimal ekstra latenstid.
Udløsende punkter for Lambda@Edge
Lambda@Edge-funktioner kan opfange CloudFront-anmodninger og -svar på fire punkter i livscyklussen:
- Viewer Request: efter CloudFront modtager anmodningen fra seeren og før cachekontrol – bruges til godkendelse, omdirigeringer og ændring af headere
- Origin Request: efter et cache-miss og før videresendelse til oprindelsen – bruges til omskrivning af URL'er og brugerdefinerede headere til oprindelsen
- Origin Response: efter modtagelse af svaret fra oprindelsen og før det caches – bruges til at tilføje sikkerhedsheadere og ændre svaret
- Viewer Response: før CloudFront sender svaret til seeren – bruges til at tilføje eller ændre svarheadere
Lambda@Edge i forhold til CloudFront Functions
AWS tilbyder to muligheder for edge-beregning med forskellige afvejninger:
- CloudFront Functions: udførelse på under et millisekund, kun JavaScript, ekstremt lave omkostninger (~1/6 af prisen), kører kun ved hændelserne Viewer Request og Viewer Response, grænse på 1 ms beregningstid og ingen VPC-/netværksadgang
- Lambda@Edge: op til 30 sekunders (Viewer) / 30 sekunders (Origin) udførelsestid, Node.js eller Python, alle fire udløsende punkter, kan foretage netværksanmodninger og har adgang til anmodnings- og svarlegemer
Brug CloudFront Functions til enkel ændring af headere, normalisering af URL'er og beregning af cache-nøgler. Brug Lambda@Edge til kompleks logik, der kræver netværkskald, længere beregning eller behandling på oprindelsessiden.
Anvendelser af Lambda@Edge
Almindelige Lambda@Edge-mønstre på SAA-C03-eksamen:
- Validering af JWT ved edge-lokationen: Viewer Request-funktionen validerer en Authorization-header; uautoriserede anmodninger returnerer 401 uden at ramme oprindelsen
- A/B-test: Viewer Request tildeler brugere til gruppe A eller B (via en cookie) og ændrer anmodningen, så den henter
/a/page.htmleller/b/page.html - Omskrivning af URL'er: Origin Request omskriver læsevenlige URL'er til de faktiske filstier i S3
- Dynamisk ændring af billedstørrelse: Origin Request konstruerer en anmodning til en Lambda til billedbehandling; Origin Response cacher billedet i den ændrede størrelse
- HTTP-sikkerhedsheadere: Viewer Response indsætter CSP-, HSTS- og X-Frame-Options-headere
Begrænsninger ved Lambda@Edge
Lambda@Edge har flere begrænsninger sammenlignet med standard-Lambda:
- Funktioner skal være i regionen us-east-1
- Ingen understøttelse af VPC (kan ikke få adgang til ressourcer i en VPC)
- Ingen miljøvariabler (indlejr konfigurationen i funktionskoden, eller hent den fra Parameter Store ved kold opstart)
- Kan ikke bruge Lambda Layers
- Timeout for viewer-hændelser: 5 sekunder; timeout for origin-hændelser: 30 sekunder
- Grænse for størrelsen på implementeringspakken: 1 MB (viewer-hændelser) / 50 MB (origin-hændelser)
Disse begrænsninger gør Lambda@Edge uegnet til langvarige beregninger, operationer der afhænger af en VPC, eller funktioner der kræver dynamisk konfiguration for hver implementering.
WAF + Lambda@Edge: Lagdelt sikkerhed
WAF og Lambda@Edge har forskellige sikkerhedsroller og supplerer hinanden:
- WAF: signaturbaseret blokering af angreb (SQL-injektion, XSS, kendte angribere, hastighedsbegrænsning)—administrerede regler håndterer almindelige angreb automatisk
- Lambda@Edge: sikkerhed baseret på tilpasset forretningslogik (JWT-validering, sessionskontrol, kontrol af adgangstokens)—fleksibelt, men kræver udviklingsarbejde
En arkitektur med forsvar i dybden: WAF blokerer først kendte angrebsmønstre; Lambda@Edge validerer godkendelse på forretningsniveau; signerede CloudFront-URL'er/-cookies begrænser adgangen til indhold; OAC holder S3 privat. Hvert lag forhindrer uafhængigt en forskellig type angreb.
Overvågning af WAF og Lambda@Edge
Overvåg dit sikkerhedslag ved kanten med disse værktøjer:
- WAF-logge: aktivér fuld logning af forespørgsler til S3, CloudWatch Logs eller Kinesis Firehose for at se, hvilke regler der matches, og hvilken trafik der blokeres
- WAF-metrikker:
BlockedRequests,AllowedRequests,CountedRequestspr. regel i CloudWatch - Lambda@Edge-logge: CloudWatch Logs-grupper oprettes i hver region, hvor funktionen udføres; brug CloudWatch Insights til at forespørge på tværs af regioner
- CloudFront Real-Time Logs: stream adgangslogge til Kinesis for øjeblikkelig analyse (i modsætning til standardadgangslogge, som samles hvert par minutter)
Hurtigt tjek
Test din forståelse af AWS Solutions Architect-koncepterne (SAA-C03) fra denne lektion.
Opsummering af lektionen
I denne lektion lærte du, at AWS WAF blokerer almindelige webangreb ved CloudFront-kanten ved hjælp af administrerede og tilpassede regelsæt, at Lambda@Edge kører tilpasset kode ved fire CloudFront-udløsningspunkter globalt, og at CloudFront Functions tilbyder udførelse på under et millisekund til enkel logik på viewer-siden. WAF-ACL'er til CloudFront skal oprettes i us-east-1. Næste gang undersøger vi Application-, Network- og Gateway Load Balancers.
Lær Cloud & IT Cert Prep med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 150
- Lektioner
- 600
Ofte stillede spørgsmål
Er lektionen “CloudFront med WAF og Lambda@Edge” gratis?
Ja — hele teksten til “CloudFront med WAF og Lambda@Edge” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cloud & IT Cert Prep-kurset, skal du opgradere til CoddyKit PRO. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “CloudFront med WAF og Lambda@Edge”?
Tilknyt AWS WAF for at blokere almindelige webangreb, og udfør lette transformationer af forespørgsler og svar ved kanten med Lambda@Edge. Du øver dig i Cloud & IT Cert Prep med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Cloud & IT Cert Prep?
Der kræves ingen tidligere erfaring. Cloud & IT Cert Prep på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “CloudFront med WAF og Lambda@Edge”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Cloud & IT Cert Prep-lektion?
Ja. Alle Cloud & IT Cert Prep-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- CloudFront-distributioner og origins
- Cacheadfærd og TTL-indstillinger
- Signerede URL'er, signerede cookies og geobegrænsning
- CloudFront med WAF og Lambda@Edge