CloudFront med WAF og Lambda@Edge
Knytt AWS WAF til CloudFront for å blokkere vanlige nettangrep, og utfør lette transformasjoner av forespørsler og svar i kanten med Lambda@Edge.
CloudFront med WAF og Lambda@Edge er en gratis leksjon i AWS Solutions Architect på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AWS Solutions Architect, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AWS Solutions Architect inneholder totalt 4 leksjoner.
Beskytte CloudFront med AWS WAF
AWS WAF (Web Application Firewall) filtrerer og overvåker HTTP-/HTTPS-forespørsler som når CloudFront-distribusjonen Deres. Ved å knytte en WAF-Web ACL til distribusjonen kan De blokkere vanlige webangrep – SQL-injeksjon, cross-site scripting (XSS), skadelige boter og OWASP Top 10-angrep – før de når opprinnelsen.
WAF fungerer ved CloudFront-edge-laget. Det betyr at skadelige forespørsler avvises ved den nærmeste edge-lokasjonen i stedet for å nå ALB-en eller applikasjonsserveren Deres. Dette reduserer belastningen på backend-systemet og stopper angrep nærmere angriperen.
# 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 inneholder ordnede regler og regelgrupper som hver samsvarer med forespørselsattributter og utfører en handling (Allow, Block, Count, CAPTCHA). Reglene evalueres etter prioritetsrekkefølge, og handlingen til den første regelen som samsvarer, brukes.
AWS tilbyr administrerte regelgrupper – forhåndsbygde regelsett som vedlikeholdes av AWS og selgere på AWS Marketplace. AWS Managed Rules - Core Rule Set dekker OWASP Top 10 uten konfigurasjon. AWS oppdaterer de administrerte regelgruppene når nye trusler oppstår, noe som reduserer driftsarbeidet Deres.
# 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-hastighetsbegrensning og botkontroll
Hastighetsbaserte regler i WAF teller forespørsler fra hver kilde-IP i løpet av et tidsvindu på 5 minutter. Hvis en IP-adresse overskrider terskelen (for eksempel 2 000 forespørsler per 5 minutter), blokkerer WAF flere forespørsler fra denne IP-adressen frem til hastigheten synker. Hastighetsbaserte regler beskytter mot brute force, credential stuffing og enkle DDoS-baserte scraping-angrep.
AWS WAF Bot Control er en administrert regelgruppe som kategoriserer trafikk i verifiserte boter (Googlebot, Bingbot), scrapers, overvåkingsverktøy og menneskelig trafikk. De kan konfigurere ulike handlinger per kategori – tillate søkemotorboter, utfordre ukjente boter med CAPTCHA og blokkere skadelige scrapers.
WAF-omfang: CLOUDFRONT kontra REGIONAL
WAF Web ACL-er har enten omfanget CLOUDFRONT (globalt, for bruk med CloudFront) eller REGIONAL (for bruk med ALB, API Gateway, AppSync eller Cognito User Pools i en bestemt Region). CloudFront-omfattede WAF ACL-er må opprettes i us-east-1 Region, uavhengig av hvor trafikken kommer fra, fordi CloudFront administreres fra denne regionen.
Dette er en viktig eksamensfelle: Hvis De oppretter en WAF Web ACL i eu-west-1 og prøver å knytte den til CloudFront, mislykkes tilknytningen. Opprett alltid CloudFront WAF ACL-er i us-east-1.
Introduksjon til Lambda@Edge
Lambda@Edge lar Dem kjøre Node.js- eller Python-Lambda-funksjoner ved CloudFronts edge-lokasjoner som svar på CloudFront-hendelser. Funksjonene kjører i løpet av millisekunder etter brukerens forespørsel, uten at trafikken må rutes tilbake til en sentral Region for behandling.
Lambda@Edge-funksjoner distribueres til us-east-1 Region, men replikeres automatisk til alle CloudFront-edge-lokasjoner globalt. Dermed kjører koden så nær brukeren som mulig, noe som muliggjør personalisering, autentisering og A/B-testing ved edge-laget med minimalt ekstra latensbidrag.
Utløsningspunkter for Lambda@Edge
Lambda@Edge-funksjoner kan fange opp CloudFront-forespørsler og -svar på fire punkter i livssyklusen:
- Viewer Request: etter at CloudFront mottar forespørselen fra brukeren, før cachen kontrolleres – brukes til autentisering, omdirigeringer og manipulering av headere
- Origin Request: etter en cache-miss, før videresending til opprinnelsen – brukes til omskriving av URL-er og egendefinerte headere til opprinnelsen
- Origin Response: etter at svaret fra opprinnelsen er mottatt, før det caches – brukes til å legge til sikkerhetsheadere og endre svaret
- Viewer Response: før CloudFront sender svaret til brukeren – brukes til å legge til eller endre responsheadere
Lambda@Edge kontra CloudFront Functions
AWS tilbyr to alternativer for databehandling ved edge-laget, med ulike avveininger:
- CloudFront Functions: kjøring på under ett millisekund, bare JavaScript, svært lav kostnad (~1/6 av prisen), kjører bare ved Viewer Request- og Viewer Response-hendelser, grense på 1 ms beregningstid og ingen VPC-/nettverkstilgang
- Lambda@Edge: opptil 30 sekunders (Viewer) / 30 sekunders (Origin) kjøringstid, Node.js eller Python, alle fire utløsningspunkter, kan utføre nettverksforespørsler og har tilgang til forespørsels- og responsbrødtekster
Bruk CloudFront Functions til enkel manipulering av headere, normalisering av URL-er og beregning av cache-nøkler. Bruk Lambda@Edge til kompleks logikk som krever nettverkskall, lengre beregning eller behandling på opprinnelsessiden.
Bruksområder for Lambda@Edge
Vanlige Lambda@Edge-mønstre på SAA-C03-eksamen:
- JWT-validering ved edge-laget: En Viewer Request-funksjon validerer en Authorization-header. Uautoriserte forespørsler returnerer 401 uten å nå opprinnelsen.
- A/B-testing: Viewer Request plasserer brukere i gruppe A eller B (via en informasjonskapsel) og endrer forespørselen slik at den henter
/a/page.htmleller/b/page.html - Omskriving av URL-er: Origin Request skriver om ryddige URL-er til de faktiske filbanene i S3
- Dynamisk endring av bildestørrelse: Origin Request oppretter en forespørsel til en Lambda-funksjon for bildebehandling, mens Origin Response cacher bildet med den nye størrelsen
- HTTP-sikkerhetsheadere: Viewer Response legger inn CSP-, HSTS- og X-Frame-Options-headere
Begrensninger for Lambda@Edge
Lambda@Edge har flere begrensninger sammenlignet med standard Lambda:
- Funksjoner må være i regionen us-east-1
- Ingen støtte for VPC (kan ikke få tilgang til ressurser i en VPC)
- Ingen miljøvariabler (bygg konfigurasjonen inn i funksjonskoden, eller hent den fra Parameter Store ved kald oppstart)
- Kan ikke bruke Lambda Layers
- Tidsavbrudd for Viewer-hendelser: 5 sekunder; tidsavbrudd for Origin-hendelser: 30 sekunder
- Grense for størrelsen på distribusjonspakken: 1 MB (Viewer-hendelser) / 50 MB (Origin-hendelser)
Disse begrensningene gjør Lambda@Edge uegnet for langvarige beregninger, operasjoner som er avhengige av en VPC, eller funksjoner som trenger dynamisk konfigurasjon for hver distribusjon.
WAF + Lambda@Edge: Lagdelt sikkerhet
WAF og Lambda@Edge har ulike sikkerhetsroller og utfyller hverandre:
- WAF: signaturbasert blokkering av angrep (SQL-injection, XSS, kjente angripere og hastighetsbegrensning)—administrerte regler håndterer vanlige angrep automatisk
- Lambda@Edge: sikkerhet gjennom tilpasset forretningslogikk (JWT-validering, sesjonskontroller og verifisering av tilgangstokener)—fleksibelt, men krever utviklingsarbeid
En defense-in-depth-arkitektur: WAF blokkerer kjente angrepsmønstre først; Lambda@Edge validerer autentisering på forretningsnivå; signerte CloudFront-URL-er/-informasjonskapsler begrenser tilgang til innhold; OAC holder S3 privat. Hvert lag forhindrer uavhengig av de andre en egen type angrep.
Overvåking av WAF og Lambda@Edge
Overvåk sikkerhetslaget ved kanten med disse verktøyene:
- WAF-logger: aktiver full logging av forespørsler til S3, CloudWatch Logs eller Kinesis Firehose for å se hvilke regler som samsvarer, og hvilken trafikk som blokkeres
- WAF-metrikker:
BlockedRequests,AllowedRequestsogCountedRequestsper regel i CloudWatch - Lambda@Edge-logger: CloudWatch Logs-grupper opprettes i hver region der funksjonen kjøres; bruk CloudWatch Insights til å søke på tvers av regioner
- CloudFront Real-Time Logs: strøm tilgangslogger til Kinesis for umiddelbar analyse (i motsetning til standard tilgangslogger, som samles i puljer med noen minutters mellomrom)
Rask kontroll
Test forståelsen Deres av AWS Solutions Architect-konsepter (SAA-C03) fra denne leksjonen.
Oppsummering av leksjonen
I denne leksjonen lærte De at AWS WAF blokkerer vanlige webangrep ved CloudFront-kanten ved hjelp av administrerte og egendefinerte regelgrupper, at Lambda@Edge kjører egendefinert kode ved fire globale CloudFront-utløserpunkter, og at CloudFront Functions tilbyr kjøring på under ett millisekund for enkel logikk på klientsiden. WAF-ACL-er for CloudFront må opprettes i us-east-1. Neste tema er Application-, Network- og Gateway Load Balancer.
Lær deg AWS Solutions Architect med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «CloudFront med WAF og Lambda@Edge» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien AWS Solutions Architect, inkludert «CloudFront med WAF og Lambda@Edge», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i AWS Solutions Architect inneholder totalt 4 leksjoner.
Hva lærer jeg i «CloudFront med WAF og Lambda@Edge»?
Knytt AWS WAF til CloudFront for å blokkere vanlige nettangrep, og utfør lette transformasjoner av forespørsler og svar i kanten med Lambda@Edge. Du øver på AWS Solutions Architect med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med AWS Solutions Architect?
Ingen tidligere erfaring er nødvendig. AWS Solutions Architect på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «CloudFront med WAF og Lambda@Edge»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne AWS Solutions Architect-leksjonen?
Ja. Alle AWS Solutions Architect-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- CloudFront-distribusjoner og origins
- Cache-atferd og TTL-innstillinger
- Signerte URL-er, signerte informasjonskapsler og geografisk begrensning
- CloudFront med WAF og Lambda@Edge