Signerede URL'er, signerede cookies og geobegrænsning
Begræns adgangen til premiumindhold med signerede URL'er og cookies, og bloker brugere fra bestemte lande med geobegrænsning.
Signerede URL'er, signerede cookies og geobegrænsning er en gratis AWS Solutions Architect-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i AWS Solutions Architect, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. AWS Solutions Architect-kurset indeholder 4 lektioner i alt.
Begrænsning af adgang til CloudFront-indhold
Som standard leverer CloudFront indhold til enhver seer, der kender URL'en. For premiumindhold eller privat indhold—videokurser, betalte softwaredownloads og ressourcer kun for medlemmer—skal du begrænse adgangen, så kun godkendte brugere kan hente det.
CloudFront tilbyder to mekanismer til godkendt adgang: Signerede URL'er (én URL giver adgang til ét bestemt objekt) og Signerede cookies (et sæt cookies giver adgang til flere objekter, der matcher et stimønster). Begge bruger kryptografiske signaturer, der genereres med et RSA-nøglepar.
CloudFront-signerede URL'er
En signeret URL er en CloudFront-URL, der indeholder en kryptografisk signatur, som angiver en udløbstid og eventuelt en begrænsning til en IP-adresse. URL'en er kun gyldig indtil udløbstidspunktet og kun fra den tilladte IP-adresse, hvis en sådan er angivet. Efter udløbstidspunktet returnerer CloudFront 403 Forbidden.
Signerede URL'er er bedst egnede til: at give en enkelt bruger adgang til én bestemt fil (f.eks. en genereret PDF-rapport), downloadlinks med tidsbegrænsning eller situationer, hvor klienten ikke kan angive cookies (f.eks. mobilapps eller RTMP-streaming).
# 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:00ZCloudFront-signerede cookies
Signerede cookies fungerer på samme måde som signerede URL'er, men giver adgang til flere filer uden at ændre hver enkelt URL. Efter vellykket godkendelse genererer din server tre cookies (CloudFront-Policy, CloudFront-Signature, CloudFront-Key-Pair-Id) og angiver dem i browsersvaret. Efterfølgende CloudFront-anmodninger fra denne browser indeholder cookies, som giver adgang til alt matchende indhold.
Signerede cookies er bedst egnede til: at give brugere, der er logget ind, adgang til en hel premiumsektion (f.eks. alle videoer i /members/*) eller situationer, hvor du ikke kan styre URL-formatet for den enkelte ressource.
Betroede nøglegrupper
Hvis du vil generere CloudFront-signaturer, skal du bruge et CloudFront-nøglepar. Den moderne metode bruger Trusted Key Groups: Opret et RSA-nøglepar, upload den offentlige nøgle til CloudFront, føj den til en nøglegruppe, og knyt derefter nøglegruppen til den cacheadfærd, der kræver signeret adgang.
Den private nøgle opbevares sikkert (f.eks. i Secrets Manager) på din signeringsserver. Når en bruger godkendes, bruger serveren den private nøgle til at signere en URL eller en cookiepolitik. CloudFront validerer signaturer ved hjælp af den tilsvarende offentlige nøgle i den betroede nøglegruppe.
# 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"
}'Politikker for standardiserede og brugerdefinerede signerede URL'er
Signerede URL'er kan bruge én af to politiktyper:
- Standardpolitik: den enkleste form – angiver kun en ressource-URL og en udløbstid. Signaturen er kompakt og nem at generere.
- Brugerdefineret politik: mere fleksibel – angiver en ressource-URL med valgfri jokertegn (
https://d123.cloudfront.net/videos/*), et valgfrit starttidspunkt (not-before) og eventuelt en begrænsning til en IP-adresse. Politik-JSON'en er Base64-kodet i URL'en.
Brug standardpolitikker til enkle links til enkeltfiler, og brug brugerdefinerede politikker, når du har brug for matchning af ressourcer med jokertegn eller IP-baserede begrænsninger.
Geografisk begrænsning i CloudFront
Geografisk begrænsning (også kaldet geografiske begrænsninger) blokerer eller tillader, at CloudFront leverer indhold baseret på seerens land. CloudFront bestemmer seerens land ud fra vedkommendes IP-adresse ved hjælp af en geolokaliseringsdatabase fra en tredjepart.
Du konfigurerer geografisk begrænsning pr. distribution som enten en tilladelsesliste (kun de angivne lande kan få adgang til indholdet) eller en blokeringsliste (de angivne lande blokeres). Brugere i begrænsede lande modtager et HTTP 403-svar. Geografisk begrænsning er et grovkornet værktøj – den gælder for hele distributionen og ikke for individuelle stier.
# 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 ETVPDKIKX0DERGeografisk begrænsning i forhold til geolokalisering i Route 53
Geografisk begrænsning i CloudFront og geolokaliseringsbaseret routing i Route 53 bruger begge geografi, men tjener forskellige formål:
- Geografisk begrænsning i CloudFront: blokerer eller tillader levering fra edge af indhold på CDN-laget – returnerer 403 til blokerede lande og gælder pr. distribution
- Geolokalisering i Route 53: dirigerer DNS-forespørgsler til forskellige slutpunkter (forskellige servere eller sider) baseret på geografi – blokerer ikke adgang, men viderestiller til andet indhold eller anden infrastruktur
Brug geografisk begrænsning i CloudFront til adgangskontrol (blokering af hele lande). Brug geolokalisering i Route 53 til at dirigere brugere til regionalt passende indhold eller infrastruktur.
Kombination af signerede URL'er med S3 og OAC
En komplet arkitektur til levering af privat indhold:
- S3-bucketen er privat (ingen offentlig adgang)
- CloudFront bruger OAC, så kun distributionen kan læse fra S3
- Cacheadfærden for privat indhold kræver signerede URL'er eller cookies (en Trusted Key Group er knyttet til den)
- Din applikationsserver godkender brugere og udsteder signerede URL'er/cookies
- Brugere får kun adgang til indhold via tidsbegrænsede, signerede CloudFront-URL'er
Selv hvis en bruger gætter eller deler S3-URL'en, blokeres adgangen. Selv hvis brugeren deler CloudFront-URL'en, udløber den efter det konfigurerede tidsrum. Denne lagdelte metode giver forsvar i dybden for digitalt indhold.
Kryptering på feltniveau
Kryptering på feltniveau er en avanceret CloudFront-funktion, der gør det muligt at kryptere følsomme datafelter i HTTP POST-anmodninger ved edge-lokationen, før de videresendes til oprindelsen. Selv hvis oprindelsesserveren kompromitteres, forbliver de krypterede felter (f.eks. kreditkortnumre og SSN'er) ulæselige uden den tilsvarende private nøgle.
CloudFront krypterer de angivne felter ved hjælp af en offentlig nøgle ved edge-lokationen. Kun den tilsigtede backendtjeneste med den matchende private nøgle kan dekryptere dataene. Kryptering på feltniveau tilføjer et beskyttelseslag i en allerede TLS-sikret pipeline.
Mønster for tokenbaseret adgangskontrol
Til dynamiske applikationer, der har brug for finkornet adgangskontrol ud over blokering på landeniveau, er et almindeligt mønster tokenbaseret adgang ved hjælp af Lambda@Edge:
- Brugeren godkender sig med Cognito eller din godkendelsestjeneste og modtager en JWT
- Brugeren inkluderer JWT'en som en forespørgselsparameter eller cookie i CloudFront-anmodninger
- Lambda@Edge Viewer-Request-funktionen validerer JWT-signaturen og claims
- Hvis den er gyldig, videresender Lambda@Edge anmodningen til oprindelsen; hvis den er ugyldig, returnerer den 401
Det giver finkornet adgangskontrol pr. bruger og pr. ressource direkte ved CloudFronts edge-lokation uden at kontakte oprindelsen for uautoriserede anmodninger.
Oversigt over anvendelser fra virkeligheden
Mønstre fra eksamensscenarier for signerede URL'er/cookies og geografisk begrænsning:
- 'Downloadlink med tidsbegrænsning til en købt fil' → Signeret URL med udløbstid
- 'Brugere, der er logget ind, får adgang til alle videoer i /premium/*' → Signerede cookies med jokertegnspolitik
- 'Bloker adgang for brugere i bestemte lande på grund af licensforhold' → Blokeringsliste for geografisk begrænsning i CloudFront
- 'Lever forskelligt indhold til forskellige lande' → Geolokalisering i Route 53 + flere distributioner eller oprindelser
- 'Beskyt kreditkortfelter, selv mod administratorer af oprindelsen' → Kryptering på feltniveau
Hurtigt tjek
Test din forståelse af AWS Solutions Architect (SAA-C03)-begreberne fra denne lektion.
Opsummering af lektionen
I denne lektion har du lært: Signerede URL'er begrænser adgangen til individuelle filer med en udløbstid og en valgfri IP-begrænsning, Signerede cookies giver adgang til flere filer, der matcher et stimønster i en enkelt godkendt session, og geografisk begrænsning blokerer eller tillader hele lande på CloudFront-distributionens niveau. Næste emne er CloudFront sammen med WAF og Lambda@Edge.
Lær AWS Solutions Architect 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
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “Signerede URL'er, signerede cookies og geobegrænsning” gratis?
Ja — alle 3 lektioner i læringssporet AWS Solutions Architect, inklusive “Signerede URL'er, signerede cookies og geobegrænsning”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. AWS Solutions Architect-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Signerede URL'er, signerede cookies og geobegrænsning”?
Begræns adgangen til premiumindhold med signerede URL'er og cookies, og bloker brugere fra bestemte lande med geobegrænsning. Du øver dig i AWS Solutions Architect 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å AWS Solutions Architect?
Der kræves ingen tidligere erfaring. AWS Solutions Architect 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 3 af 4.
Hvor lang tid tager lektionen “Signerede URL'er, signerede cookies og geobegrænsning”?
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 AWS Solutions Architect-lektion?
Ja. Alle AWS Solutions Architect-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