Cloud & IT Cert Prep · Lektion

Signerade URL:er, signerade cookies och geografisk begränsning

Begränsa åtkomsten till premiuminnehåll med signerade URL:er och cookies och blockera användare från specifika länder med geografisk begränsning.

Lektion 3 av 413 steg

Signerade URL:er, signerade cookies och geografisk begränsning är en gratis lektion i Cloud & IT Cert Prep på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Cloud & IT Cert Prep, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cloud & IT Cert Prep innehåller totalt 4 lektioner.

Begränsa åtkomst till CloudFront-innehåll

Som standard levererar CloudFront innehåll till alla användare som känner till URL:en. För premiuminnehåll eller privat innehåll – videokurser, betalda programvarunedladdningar och resurser för medlemmar – måste du begränsa åtkomsten så att endast behöriga användare kan hämta det.

CloudFront tillhandahåller två mekanismer för behörighetsstyrd åtkomst: Signed URLs (en URL ger åtkomst till ett specifikt objekt) och Signed Cookies (en uppsättning cookies ger åtkomst till flera objekt som matchar ett sökvägsmönster). Båda använder kryptografiska signaturer som genereras med ett RSA-nyckelpar.

Signerade URL:er för CloudFront

En signerad URL är en CloudFront-URL som innehåller en kryptografisk signatur med en angiven giltighetstid och eventuellt en begränsning till en IP-adress. URL:en är endast giltig fram till att giltighetstiden löper ut och endast från den tillåtna IP-adressen, om en sådan har angetts. Efter att giltighetstiden har löpt ut returnerar CloudFront 403 Forbidden.

Signerade URL:er passar bäst för att ge en enskild användare åtkomst till en specifik fil (till exempel en genererad PDF-rapport), tidsbegränsade nedladdningslänkar eller situationer där klienten inte kan ange cookies (till exempel mobilappar eller RTMP-strömning).

# Generate a signed URL using AWS CLI (requires a CloudFront key pair)
aws cloudfront sign \
  --url https://d1234abcdef.cloudfront.net/premium/video.mp4 \
  --key-pair-id APKA1234567890 \
  --private-key file://private-key.pem \
  --date-less-than 2026-06-21T00:00:00Z

Signerade cookies för CloudFront

Signerade cookies fungerar på liknande sätt som signerade URL:er, men ger åtkomst till flera filer utan att varje URL behöver ändras. Efter lyckad autentisering genererar servern tre cookies (CloudFront-Policy, CloudFront-Signature, CloudFront-Key-Pair-Id) och skickar dem i svaret till webbläsaren. Efterföljande CloudFront-begäranden från den webbläsaren innehåller cookiesen, vilket ger åtkomst till allt innehåll som matchar.

Signerade cookies passar bäst för att ge inloggade användare åtkomst till en hel premiumsektion (till exempel alla videor i /members/*) eller när ni inte kan styra URL-formatet för varje enskild resurs.

Betrodda nyckelgrupper

För att generera CloudFront-signaturer behöver ni ett CloudFront-nyckelpar. Det moderna tillvägagångssättet använder Trusted Key Groups: skapa ett RSA-nyckelpar, ladda upp den publika nyckeln till CloudFront, lägg till den i en nyckelgrupp och koppla sedan nyckelgruppen till det cachebeteende som kräver signerad åtkomst.

Den privata nyckeln lagras säkert (till exempel i Secrets Manager) på er signeringsserver. När en användare autentiserar sig använder servern den privata nyckeln för att signera en URL eller cookie-policy. CloudFront validerar signaturerna med motsvarande publika nyckel i den betrodda nyckelgruppen.

# Upload a public key to CloudFront
aws cloudfront create-public-key \
  --public-key-config '{
    "Name": "MySigningKey",
    "EncodedKey": "-----BEGIN PUBLIC KEY-----\n...<key>...\n-----END PUBLIC KEY-----",
    "CallerReference": "2026-06-20-key"
  }'

Signerade URL-policyer: fördefinierade eller anpassade

Signerade URL:er kan använda en av två policytyper:

  • Fördefinierad policy: den enklaste formen – anger endast en resurs-URL och en giltighetstid. Signaturen är kompakt och enkel att generera.
  • Anpassad policy: mer flexibel – anger en resurs-URL med valfria jokertecken (https://d123.cloudfront.net/videos/*), en valfri starttid (not-before) och eventuellt en begränsning till en IP-adress. Policy-JSON kodas med Base64 i URL:en.

Använd fördefinierade policyer för enkla länkar till enskilda filer och anpassade policyer när ni behöver matchning av resurser med jokertecken eller IP-baserade begränsningar.

Geografisk begränsning i CloudFront

Geografisk begränsning (även kallat geografiska begränsningar) blockerar eller tillåter att CloudFront levererar innehåll baserat på tittarens land. CloudFront fastställer tittarens land utifrån IP-adressen med hjälp av en geolokaliseringsdatabas från en tredjepart.

Ni konfigurerar geografisk begränsning per distribution som antingen en tillåtelselista (endast angivna länder får åtkomst till innehållet) eller en blockeringslista (angivna länder blockeras). Användare i begränsade länder får ett HTTP 403-svar. Geografisk begränsning är ett trubbigt verktyg – den gäller för hela distributionen, inte för enskilda sökvägar.

# Enable geo-restriction: block two countries
aws cloudfront update-distribution \
  --id EDFDVBD6EXAMPLE \
  --distribution-config '{
    ...existing config...
    "Restrictions": {
      "GeoRestriction": {
        "RestrictionType": "blacklist",
        "Quantity": 2,
        "Items": ["CN", "RU"]
      }
    }
  }' \
  --if-match ETVPDKIKX0DER

Geografisk begränsning jämfört med geolokalisering i Route 53

Geografisk begränsning i CloudFront och geolokaliseringsbaserad routning i Route 53 använder båda geografisk information, men har olika syften:

  • Geografisk begränsning i CloudFront: blockerar eller tillåter leverans från edge av innehåll på CDN-nivå – returnerar 403 till blockerade länder och gäller per distribution
  • Geolokalisering i Route 53: dirigerar DNS-frågor till olika slutpunkter (olika servrar eller sidor) baserat på geografisk plats – blockerar inte åtkomst utan dirigerar till annat innehåll eller annan infrastruktur

Använd geografisk begränsning i CloudFront för åtkomstkontroll (för att blockera hela länder). Använd geolokalisering i Route 53 för att dirigera användare till regionalt anpassat innehåll eller regionalt anpassad infrastruktur.

Kombinera signerade URL:er med S3 och OAC

En komplett arkitektur för privat innehållsleverans:

  1. S3-bucketen är privat (ingen offentlig åtkomst)
  2. CloudFront använder OAC så att endast distributionen kan läsa från S3
  3. Cachebeteendet för privat innehåll kräver signerade URL:er eller cookies (en Trusted Key Group är kopplad)
  4. Er applikationsserver autentiserar användare och utfärdar signerade URL:er eller cookies
  5. Användare får endast åtkomst till innehållet via tidsbegränsade signerade CloudFront-URL:er

Även om en användare gissar eller delar S3-URL:en blockeras åtkomsten. Även om CloudFront-URL:en delas löper den ut efter den konfigurerade tiden. Detta lager-på-lager-skydd ger defense in depth för digitalt innehåll.

Kryptering på fältnivå

Kryptering på fältnivå är en avancerad CloudFront-funktion som gör det möjligt att kryptera känsliga datafält i HTTP POST-begäranden vid edge innan de vidarebefordras till ursprunget. Även om ursprungsservern komprometteras förblir de krypterade fälten (till exempel kreditkortsnummer och SSN) oläsliga utan motsvarande privata nyckel.

CloudFront krypterar angivna fält med en publik nyckel vid edge. Endast den avsedda backendtjänsten med den matchande privata nyckeln kan dekryptera uppgifterna. Kryptering på fältnivå lägger till ett skyddslager i en pipeline som redan är säkrad med TLS.

Mönster för tokenbaserad åtkomstkontroll

För dynamiska applikationer som behöver detaljerad åtkomstkontroll utöver blockering på landsnivå är ett vanligt mönster tokenbaserad åtkomst med Lambda@Edge:

  1. Användaren autentiserar sig med Cognito eller er autentiseringstjänst och får en JWT
  2. Användaren inkluderar JWT:n som en frågeparameter eller cookie i CloudFront-begäranden
  3. Funktionen Viewer-Request i Lambda@Edge validerar JWT-signaturen och anspråken
  4. Om uppgifterna är giltiga vidarebefordrar Lambda@Edge begäran till ursprunget; annars returneras 401

Detta ger detaljerad åtkomstkontroll per användare och resurs direkt vid CloudFront-edge, utan att ogiltiga begäranden når ursprunget.

Sammanfattning av verkliga användningsfall

Mönster för provfrågor om signerade URL:er/cookies och geografisk begränsning:

  • ”Tidsbegränsad nedladdningslänk till en köpt fil” → signerad URL med giltighetstid
  • ”Inloggade premiumanvändare får åtkomst till alla videor i /premium/*” → signerade cookies med jokerteckenpolicy
  • ”Blockera åtkomst för användare i specifika länder på grund av licensvillkor” → blockeringslista för geografisk begränsning i CloudFront
  • ”Leverera olika innehåll till olika länder” → geolokalisering i Route 53 + flera distributioner eller ursprung
  • ”Skydda kreditkortsfält även mot administratörer av ursprunget” → kryptering på fältnivå

Snabbkontroll

Testa er förståelse av 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 signerade URL:er begränsar åtkomsten till enskilda filer med en giltighetstid och en valfri IP-begränsning, att signerade cookies ger åtkomst till flera filer som matchar ett sökvägsmönster under en och samma autentiserade session, samt att geografisk begränsning blockerar eller tillåter hela länder på CloudFront-distributionsnivå. Nästa steg är att utforska CloudFront med WAF och Lambda@Edge.

Gratis att börja

Lär dig Cloud & IT Cert Prep 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
150
Lektioner
600

Vanliga frågor

Är lektionen ”Signerade URL:er, signerade cookies och geografisk begränsning” gratis?

Ja – hela texten till ”Signerade URL:er, signerade cookies och geografisk begränsning” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Cloud & IT Cert Prep, kan Ni uppgradera till CoddyKit PRO. Kursen i Cloud & IT Cert Prep innehåller totalt 4 lektioner.

Vad lär jag mig i ”Signerade URL:er, signerade cookies och geografisk begränsning”?

Begränsa åtkomsten till premiuminnehåll med signerade URL:er och cookies och blockera användare från specifika länder med geografisk begränsning. Ni övar på Cloud & IT Cert Prep 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 Cloud & IT Cert Prep?

Du behöver inga förkunskaper. Utbildningen i Cloud & IT Cert Prep 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 3 av 4.

Hur lång tid tar lektionen ”Signerade URL:er, signerade cookies och geografisk begränsning”?

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 Cloud & IT Cert Prep-lektionen?

Ja. Varje Cloud & IT Cert Prep-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 Cloud & IT Cert Prep