Quick Answer
AWS IAM-tilgangskontroll: Policyer, roller og beste praksis AWS Identity and Access Management (IAM) er tjenesten som styrer autentisering og autorisasjon for...
Key Topics Covered
AWS IAM-tilgangskontroll: Policyer, roller og beste praksis
AWS Identity and Access Management (IAM) er tjenesten som styrer autentisering og autorisasjon for hvert API-kall som gjøres til ditt AWS-miljø. Den avgjør hvem som kan logge inn, hvilke handlinger de kan utføre, og på hvilke ressurser — på tvers av alle AWS-tjenester, i alle regioner, for alle kontoer. Å konfigurere IAM riktig er ikke valgfritt; ifølge AWS sine egne postmortem-analyser er feilkonfigurerte IAM-policyer involvert i flertallet av skysikkerhetsbrudd som når offentligheten. Denne artikkelen dekker IAMs arkitektur, logikken for policyevaluering, praktiske mønstre for skalering av tilgangskontroll og de operasjonelle feilene Opsios SOC gjentatte ganger oppdager på tvers av hundrevis av AWS-kontoer.
Hovedpunkter
- AWS IAM er den grunnleggende tjenesten for å kontrollere hvem som kan gjøre hva på tvers av alle AWS-ressurser, og feilkonfigurasjon er den vanligste rotårsaken til sikkerhetsbrudd i skyen.
- Effektiv IAM krever lagdeling av identity policies, resource policies, permission boundaries og Service Control Policies — ikke bare å knytte managed policies til brukere.
- Organisasjoner underlagt NIS2, GDPR eller DPDPA 2023 må behandle IAM-konfigurasjon som en compliance-kontroll, ikke bare en operasjonell bekvemmelighet.
- ABAC (attributtbasert tilgangskontroll) med tagger er nå det anbefalte skaleringsmønsteret for organisasjoner med mer enn en håndfull kontoer, men de fleste team bruker fortsatt RBAC som standard.
- De største IAM-feilene Opsios SOC etterforsker er ikke rettighetseskaleringer — det er foreldet legitimasjon og overtillatede tjenesterroller som ingen gjennomgår.
Slik fungerer AWS IAM: Kjernemodellen
IAM opererer etter en standard-nekt-modell. Hvert AWS API-kall evalueres mot et sett med policyer, og med mindre evalueringen produserer en eksplisitt Allow — uten at en Deny overstyrer den — avvises forespørselen. Å forstå denne evalueringskjeden er det viktigste enkeltkonseptet i AWS tilgangskontroll.
Prinsipaler, handlinger, ressurser og betingelser
Hver IAM-policyerklæring har fire komponenter:
- Prinsipal — entiteten som gjør forespørselen (IAM-bruker, IAM-rolle, føderert identitet, AWS-tjeneste)
- Handling — den spesifikke API-operasjonen (
s3:GetObject,ec2:RunInstances,iam:CreateUser) - Ressurs — ARN-ene handlingen gjelder for
- Betingelse — valgfrie begrensninger (kilde-IP, MFA-status, klokkeslett, ressurs-tagger)
En policy er et JSON-dokument som inneholder én eller flere erklæringer, hver med en Effect av Allow eller Deny. Kraften — og kompleksiteten — ligger i hvordan flere policyer samhandler under evaluering.
Policyevalueringskjeden
Når en prinsipal sender en forespørsel innenfor en AWS Organization, følger evalueringen denne rekkefølgen:
1. Service Control Policies (SCP-er) — organisasjonsnivå-sikringsmekanismer som setter maksimale tillatelser for medlemskontoer
2. Resource-based policies — knyttet til selve ressursen (f.eks. S3 bucket policies, KMS key policies)
3. IAM permission boundaries — de maksimale tillatelsene en IAM-entitet kan ha, uavhengig av identity policies
4. Session policies — sendt ved rollepåtakelse, som ytterligere begrenser sesjonen
5. Identity-based policies — policyene knyttet til IAM-brukeren, gruppen eller rollen
En eksplisitt Deny på et hvilket som helst nivå overstyrer alle Allow-erklæringer. Denne lagdelte modellen betyr at du kan håndheve organisasjonsdekkende sikringsmekanismer (via SCP-er) selv om individuelle kontoadministratorer prøver å gi bredere tilgang.
Å forstå denne kjeden er ikke bare teori — Opsios NOC sporer regelmessig access-denied-feil tilbake til SCP-restriksjoner som kontonivåadministratorer ikke visste om. Hvis du feilsøker en 403 på et API-kall der identity policy tydelig sier Allow, sjekk SCP-ene først.
Trenger dere hjelp med cloud?
Book et gratis 30-minutters møte med en av våre spesialister innen cloud. Vi analyserer behovet ditt og gir konkrete anbefalinger — helt uten forpliktelse.
IAM-byggesteiner i praksis
IAM-brukere vs. IAM-roller vs. fødererte identiteter
IAM-brukere er langvarige identiteter med permanente legitimasjoner. De finnes fortsatt og fungerer, men for menneskelige operatører bør de anses som foreldet. AWS sin nåværende veiledning — og Opsios operasjonelle holdning — er å føderere menneskelig tilgang gjennom IAM Identity Center (tidligere AWS SSO), som utsteder midlertidige legitimasjoner via SAML 2.0 eller OIDC.
IAM-roller er arbeidshestene i moderne AWS IAM. En rolle har ingen permanente legitimasjoner; i stedet påtar prinsipaler seg rollen og mottar midlertidige sikkerhetstokener (via AWS STS). Roller brukes for:
- Krysskonttilgang (Konto As arbeidslast påtar seg en rolle i Konto B)
- Tjeneste-til-tjeneste-tilgang (en EC2-instansprofil, en Lambda-kjøringsrolle)
- Menneskelig tilgang via føderasjon (påta seg en rolle etter autentisering gjennom din IdP)
Fødererte identiteter autentiserer mot en ekstern identitetsleverandør (Okta, Azure AD / Entra ID, Google Workspace) og påtar seg IAM-roller. Dette er mønsteret alle organisasjoner med mer enn ti utviklere bør bruke for konsoll- og CLI-tilgang.
| Tilnærming | Legitimasjon | Best egnet for | Risikoprofil |
|---|---|---|---|
| IAM-brukere | Langvarige tilgangsnøkler | Eldre systemer, tjenestekontoer uten alternativ | Høy — nøkler lekker, roteres dårlig |
| IAM-roller (antatt) | Midlertidige STS-tokener | Krysskonttilgang, EC2/Lambda, CI/CD | Lav — utløper automatisk, ingen nøkler å lekke |
| IAM Identity Center | SAML/OIDC + midlertidige tokener | Menneskelig tilgang på tvers av alle kontoer | Lav — sentralisert, SSO-støttet |
| Resource-based policies | N/A (gir tilgang til eksterne prinsipaler) | Krysskonto S3, KMS, SQS | Middels — må avgrenses nøye |
IAM-policyer: Managed, inline og egendefinerte
AWS managed policies (f.eks. ReadOnlyAccess, PowerUserAccess) vedlikeholdes av AWS og dekker vanlige mønstre. De er praktiske, men ofte for brede for produksjonsbruk. AdministratorAccess er den mest brukte managed policyen Opsios SOC finner i revisjonsfunn — og den er nesten aldri berettiget for daglig drift.
Customer managed policies er det riktige utgangspunktet. Skriv dem selv, avgrens dem til dine faktiske arbeidsbelastninger, versjonskontroller dem i Git, og distribuer dem via Infrastructure as Code (Terraform, CloudFormation eller CDK).
Inline policies er innebygd direkte i en bruker, gruppe eller rolle. De har et strengt 1:1-forhold. Bruk dem bare når en policy ikke må kunne knyttes til en annen entitet ved et uhell — noe som er sjeldent.
Service Control Policies (SCP-er)
SCP-er er det kraftigste — og mest misforståtte — laget i IAM-stakken. De gir ikke tillatelser; de definerer den maksimale grensen for hva en prinsipal i en medlemskonto kan gjøre. En SCP som nekter s3:DeleteBucket betyr at ingen i den kontoen kan slette en bøtte, selv om de har AdministratorAccess.
Praktiske SCP-mønstre Opsio rullet ut for kunder:
- Regionrestriksjon — nekt alle handlinger utenfor
eu-north-1(Stockholm),eu-west-1(Irland) ogap-south-1(Mumbai) (håndhever datasuverenitet for GDPR og DPDPA) - Sikrings-SCP-er — hindre deaktivering av CloudTrail, sletting av VPC flow logs eller endring av audit-IAM-rollen
- Tjeneste-nektliste — blokker tjenester organisasjonen ikke bruker (f.eks. Lightsail, GameLift) for å redusere angrepsflaten
RBAC vs. ABAC: Velge riktig modell
RBAC (rollebasert tilgangskontroll)
RBAC i AWS innebærer å opprette distinkte IAM-roller for hver jobbfunksjon — DevOps-Engineer, Data-Analyst, Security-Auditor — og knytte policyer til disse rollene. Det er intuitivt og fungerer godt når:
- Du har færre enn ~20 distinkte roller
- Team er tydelig separert
- Kontospredningen er begrenset
Ulempen er kombinatorisk eksplosjon. Hvis du har 5 jobbfunksjoner, 4 miljøer (dev/staging/prod/sandbox) og 3 prosjekter, kan du trenge 60 rolledefinisjoner — hver med separate policyer.
ABAC (attributtbasert tilgangskontroll)
ABAC bruker tagger på både prinsipaler og ressurser for å ta autorisasjonsbeslutninger. I stedet for 60 roller skriver du et mindre sett med policyer med betingelser som:
```json
"Condition": {
"StringEquals": {
"aws:ResourceTag/Project": "${aws:PrincipalTag/Project}",
"aws:ResourceTag/Environment": "${aws:PrincipalTag/Environment}"
}
}
```
Dette lar en utvikler tagget med Project=payments, Environment=dev kun få tilgang til ressursene som er tagget på samme måte — uten å opprette prosjektspesifikke eller miljøspesifikke roller.
AWS sin IAM-dokumentasjon anbefaler eksplisitt ABAC som den foretrukne modellen for skalering. I praksis bruker de fleste organisasjoner Opsio forvalter en hybrid: RBAC for bred jobbfunksjonsseparering, ABAC for finkornet ressursavgrensning innenfor disse rollene.
Den operasjonelle haken: ABAC fungerer bare hvis taggingen din er disiplinert. Hvis team ikke konsekvent tagger ressurser, feiler betingelsene enten for åpent eller for lukket på uforutsigbare måter. Håndhev tagging med SCP-er og AWS Config-regler før du satser på ABAC.
IAM beste praksis: Hva som faktisk betyr noe
AWS Well-Architected Frameworks sikkerhetspillar definerer IAM beste praksis på tvers av fem områder. Her er hva vi ser betyr mest i produksjon — ikke teori:
1. Eliminer langvarige tilgangsnøkler
Hver tilgangsnøkkel er en legitimasjon som kan eksfiltreres. Opsios SOC har etterforsket hendelser der tilgangsnøkler commitet til offentlige GitHub-repoer ble utnyttet innen minutter av automatiserte skannere. Løsningen:
- Bruk IAM-roller med midlertidige legitimasjoner for alle arbeidsbelastninger (EC2 instance profiles, ECS task roles, Lambda execution roles)
- Føderer menneskelig tilgang via IAM Identity Center
- For de sjeldne tilfellene der tilgangsnøkler er uunngåelige (eldre integrasjoner), håndhev rotasjon via AWS Config-regelen
access-keys-rotatedmed en maksimal alder på 90 dager
2. Håndhev MFA — overalt det betyr noe
MFA på rotkontoen er grunnleggende. Men håndhev også MFA for:
- Alle menneskelige IAM-brukere (hvis du fortsatt har dem)
- Rollepåtakelse for sensitive roller (
iam:AssumeRolemedCondition: { "Bool": { "aws:MultiFactorAuthPresent": "true" }}) - IAM Identity Center-autentiseringsflyten (push-varslings-MFA, ikke SMS)
3. Bruk minste privilegium iterativt
Ingen får minste privilegium riktig på første forsøk. Den praktiske tilnærmingen:
1. Start med AWS managed policies som er litt bredere enn nødvendig
2. Aktiver IAM Access Analyzer for å overvåke hvilke tillatelser som faktisk brukes
3. Etter 30–90 dager, generer en minste-privilegium-policy basert på CloudTrail-tilgangsaktivitet
4. Erstatt den brede policyen med den genererte
5. Gjenta kvartalsvis
IAM Access Analyzers policygenerering er genuint nyttig og underutnyttet. Den leser CloudTrail-logger og produserer en avgrenset policy som kun matcher handlingene og ressursene som faktisk ble brukt.
4. Bruk permission boundaries for delegert administrasjon
Hvis du lar utviklere eller teamledere opprette IAM-roller (f.eks. for Lambda-funksjoner), sett en permission boundary som begrenser hva disse opprettede rollene kan gjøre. Uten dette kan en utvikler opprette en rolle med AdministratorAccess — som er en rettighetseskaleringssti.
5. Revider kontinuerlig, ikke årlig
En årlig IAM-gjennomgang er en avkrysningsøvelse. Gjør i stedet dette:
- Kjør IAM Access Analyzer kontinuerlig for å oppdage ekstern og ubrukt tilgang
- Overvåk for anomale IAM API-kall via CloudTrail + Amazon GuardDuty
- Bruk AWS Config-regler for å flagge ikke-konforme IAM-konfigurasjoner automatisk
- Send funn videre til en sentralisert SIEM eller SOC-ets varslingspipeline
IAM i en flerkontobasert AWS Organization
Enkeltkontobaserte AWS-miljøer er stadig sjeldnere i produksjon. AWS Organizations, kombinert med IAM Identity Center, er standardmønsteret for å håndtere tilgang på tvers av titalls eller hundrevis av kontoer.
IAM Identity Center (tidligere AWS SSO)
IAM Identity Center gir ett enkelt sted for å administrere menneskelig tilgang på tvers av alle kontoer i organisasjonen din. Brukere autentiserer seg én gang (gjennom din bedrifts-IdP eller den innebygde katalogen) og mottar midlertidige legitimasjoner for den kontoen og det tilgangsettet de velger.
Permission sets i IAM Identity Center er abstraksjoner som oppretter IAM-roller i hver målkonto. Du definerer dem sentralt én gang og tilordner dem til brukere eller grupper per konto. Dette er drastisk enklere enn å administrere IAM-roller uavhengig i hver konto.
Krysskonto-rollepåtakelse
For tjeneste-til-tjeneste-tilgang på tvers av kontoer (f.eks. en CI/CD-pipeline i verktøykontoen som deployer til produksjon), er mønsteret:
1. Opprett en rolle i målkontoen med en trust policy som tillater kildekontoens rolle
2. Kildearbeidsbyrden kaller sts:AssumeRole for å få midlertidige legitimasjoner
3. Bruk external IDs for å forhindre confused-deputy-angrep når tredjeparter er involvert
Opsio konfigurerer krysskonttilgang med en nav-og-eike-modell: en sentral sikkerhetskonto holder revisjonsroller som kan lese (men ikke skrive) inn i alle medlemskontoer. Denne designen støtter både SOC-operasjoner og innsamling av compliance-dokumentasjon.
Compliance-dimensjoner: NIS2, GDPR og DPDPA 2023
IAM-konfigurasjon er direkte referert i alle store compliance-rammeverk Opsio møter:
NIS2-direktivet (EU/EØS) — Artikkel 21 krever «policyer for tilgangskontroll» inkludert håndtering av privilegert tilgang. Organisasjoner klassifisert som vesentlige eller viktige enheter — noe som gjelder mange norske virksomheter underlagt Datatilsynets og Digitaliseringsdirektoratets veiledning — må demonstrere at IAM-kontroller står i forhold til risiko, at privilegert tilgang overvåkes, og at tilgangsgjennomganger gjennomføres regelmessig. For AWS tilsvarer dette SCP-er, CloudTrail, IAM Access Analyzer og dokumenterte prosedyrer for tilgangsgjennomgang.
GDPR (via EØS-avtalen) — Artikkel 32 krever «evnen til å sikre vedvarende konfidensialitet, integritet, tilgjengelighet og robusthet i behandlingssystemer og -tjenester», som Datatilsynet tolker til å inkludere identitets- og tilgangsstyring. Behandlingsansvarlige må vise at tilgang til personopplysninger er begrenset til personell som trenger det — noe som betyr IAM-policyer avgrenset til spesifikke DynamoDB-tabeller, S3-prefikser eller RDS-instanser som inneholder personopplysninger.
DPDPA 2023 (India) — Seksjon 8-forpliktelser for data fiduciaries inkluderer implementering av «rimelige sikkerhetstiltak». For indiske virksomheter som kjører arbeidsbelastninger i ap-south-1 (Mumbai) eller ap-south-2 (Hyderabad) betyr dette dokumenterte IAM-kontroller, revisjonsspor og bevis for periodisk gjennomgang — tilsvarende GDPR artikkel 32-kravene i ånden.
Fellesnevneren: alle tre rammeverkene krever ikke bare at kontroller eksisterer, men at de er overvåket og gjennomgått. IAM-konfigurasjon uten CloudTrail-logging og periodisk tilgangsgjennomgang tilfredsstiller ingen av dem.
Vanlige IAM-feil Opsios SOC oppdager
Basert på faktiske hendelser og revisjonsfunn på tvers av våre forvaltede kontoer:
1. Wildcard-ressurs-ARN-er i produksjonspolicyer — "Resource": "*" er akseptabelt under prototyping. I produksjon betyr det at en kompromittert prinsipal kan få tilgang til alle ressurser av den typen i kontoen.
2. Tjenesterroller med AdministratorAccess — Lambda-funksjoner og ECS-oppgaver bør ha smalt avgrensede kjøringsroller. Å knytte admin-tilgang «fordi det er enklere» gjør at enhver applikasjonssårbarhet blir et fullstendig kontokompromiss.
3. Ingen SCP-sikringsmekanismer på medlemskontoer — Uten SCP-er kan enhver kontoadministrator gi seg selv hva som helst. SCP-er er den eneste mekanismen som begrenser selv kontorootbrukeren (i medlemskontoer).
4. Foreldet IAM-brukere og tilgangsnøkler — Vi finner rutinemessig IAM-brukere for ansatte som forlot organisasjonen for måneder eller år siden. Bruk AWS Configs iam-user-unused-credentials-check-regel og sett den til å flagge legitimasjon som ikke er brukt på 45 dager.
5. Ignorering av resource-based policies — S3 bucket policies, KMS key policies og SQS queue policies kan gi tilgang uavhengig av identity policies. En S3-bøtte med "Principal": "*" i sin bucket policy er offentlig tilgjengelig, uavhengig av hvor stramme IAM-rollene dine er.
Kom i gang: En praktisk rekkefølge
For organisasjoner som ikke har formalisert IAM-styring, er dette rekkefølgen som gir resultater raskest:
1. Aktiver CloudTrail i alle kontoer, alle regioner, med logging til en sentralisert S3-bøtte i en loggarkivkonto
2. Aktiver IAM Access Analyzer i hver konto (den er gratis)
3. Migrer menneskelig tilgang fra IAM-brukere til IAM Identity Center med MFA
4. Distribuer grunnleggende SCP-er — nekt ubrukte regioner, beskytt revisjonsinfrastruktur, krev kryptering
5. Revider eksisterende IAM-roller og -policyer — bruk Access Analyzers funn for å identifisere ubrukte roller og overtillatede policyer
6. Implementer Infrastructure as Code for alle IAM-ressurser — slutt med ClickOps i IAM-konsollen
Denne rekkefølgen fungerer enten du har 2 kontoer eller 200. Forskjellen er hvor lang tid steg 5 tar.
Ofte stilte spørsmål
Hva er IAM-tilgangskontroller?
IAM-tilgangskontroller er policyene, rollene og mekanismene i AWS Identity and Access Management som avgjør hvilke prinsipaler (brukere, roller, tjenester) som kan utføre hvilke handlinger på hvilke ressurser. De opererer etter en standard-nekt-modell: med mindre en policy eksplisitt tillater en handling, blir den nektet. Kontrollene inkluderer identity-based policies, resource-based policies, permission boundaries, session policies og Service Control Policies på organisasjonsnivå.
Er IAM RBAC eller ABAC?
AWS IAM støtter begge deler. Rollebasert tilgangskontroll (RBAC) oppnås ved å opprette IAM-roller med spesifikke rettighetssett og tildele dem til brukere eller grupper. Attributtbasert tilgangskontroll (ABAC) bruker tagger på prinsipaler og ressurser for å ta dynamiske autorisasjonsbeslutninger. AWS anbefaler ABAC for skalering på tvers av mange kontoer fordi det reduserer antallet distinkte policyer å administrere. De fleste produksjonsmiljøer bruker en hybrid av begge.
Hva er IAM-tilgang i AWS?
IAM-tilgang i AWS refererer til den autentiserte og autoriserte evnen for en prinsipal — en IAM-bruker, føderert identitet eller IAM-rolle — til å samhandle med AWS-tjenester og -ressurser. Hvert API-kall til AWS evalueres mot IAM-policyer. Tilgang gis kun når gjeldende policyer produserer en eksplisitt Allow og ingen gjeldende policy produserer en eksplisitt Deny.
Hva er de 4 pilarene i IAM?
De fire pilarene som vanligvis refereres til innen identitetshåndtering er: autentisering (bevise hvem du er), autorisasjon (hva du har lov til å gjøre), administrasjon (håndtering av identiteter og policyer i stor skala) og revisjon (logging og gjennomgang av tilgangsaktivitet). I AWS-termer tilsvarer disse IAM-autentiseringsmekanismer, IAM-policyer, AWS Organizations/IAM Identity Center og AWS CloudTrail.
Hvordan forholder AWS IAM seg til NIS2-etterlevelse?
NIS2 krever at vesentlige og viktige enheter implementerer tilgangskontrollpolicyer som står i forhold til risiko, opprettholder hendelsesresponsevner og demonstrerer ansvarlighet for privilegert tilgang. AWS IAM leverer de tekniske kontrollene — MFA, minste-privilegium-policyer, SCP-er, CloudTrail-logging — men etterlevelse krever dokumenterte prosesser, periodiske tilgangsgjennomganger og bevis for at disse kontrollene aktivt overvåkes. Et managed SOC kan bygge broen mellom å ha kontrollene og å bevise at de fungerer.
Written By

Country Manager, Sweden at Opsio
Johan leads Opsio's Sweden operations, driving AI adoption, DevOps transformation, security strategy, and cloud solutioning for Nordic enterprises. With 12+ years in enterprise cloud infrastructure, he has delivered 200+ projects across AWS, Azure, and GCP — specialising in Well-Architected reviews, landing zone design, and multi-cloud strategy.
Editorial standards: Denne artikkelen er skrevet av skypraktikere og fagfellevurdert av vårt ingeniørteam. Vi oppdaterer innhold kvartalsvis. Opsio opprettholder redaksjonell uavhengighet.