Mange organisasjoner opplever at skymiljøet deres blir mer og mer uoversiktlig etter hvert som flere team får tilgang til å opprette og konfigurere ressurser. Uten tydelige retningslinjer og automatisert håndhevelse av standarder kan dette føre til sikkerhetsrisikoer, uforutsigbare kostnader og operasjonelle utfordringer.
I denne artikkelen skal vi se på Azure Policy – et innebygd styringsverktøy som kan hjelpe deg med å få overordnet kontroll. Målet er å gi deg en praktisk innføring i hva Azure Policy er, hvordan det fungerer, og ikke minst – om det er det rette verktøyet for din organisasjon.
Vi går gjennom de viktigste konseptene, fordeler og ulemper, samt konkrete eksempler på hvordan policies påvirker både nye og eksisterende ressurser.
Etter å ha lest artikkelen skal du kunne vurdere om Azure Policy kan løse dine styringsutfordringer, og ha en god forståelse av hva implementering innebærer.
Azure Policy er et kraftig styringsverktøy som er innebygd i alle Azure Tenants.
Med Azure Policy kan du sikre at alle ressurser i skyen din følger virksomhetens krav til konfigurasjon, sikkerhet og samsvar.
Azure Policy er essensielt hvis du:
Eksempler:
Fordeler:
Tilgjengelig ut av boksen:
Innebygd i alle Azure tenant--ingen ekstra installasjon nødvendig.
Skalerer utrolig godt:
Håndhev krav på tvers av hele organisasjonen, uansett antall ressurser eller team.
Gratis å bruke:
Ingen ekstra lisenspris for policy-motoren.
Fungerer uansett hvordan man deployer og konfigurerer ressurser:
Gjelder uansett om ressurser deployes og konfigureres med ARM, Bicep, Terraform, Azure Portal eller CLI.
Gir et fugleperspektiv:
Se samsvar på tvers av alle ressurser i din tenant.
Detaljert innsikt:
Drill ned til landing zone, resource group eller individuell ressurs for detaljert kontroll.
Revidering, håndhevelse og automatisering:
Bruk policy til å revidere, håndheve eller til og med automatisk utbedre problemer.
Muliggjør massive utbedringer på tvers av hele tenant:
Korriger storskala avvik i ett trinn, uten å endre alle pipelines eller maler.
Ulemper:
Uansett hvordan du oppretter eller endrer ressurser i Azure -- om det er via portalen, Azure CLI, PowerShell, Terraform, Bicep eller andre verktøy - alt ender opp som en forespørsel til Azure Resource Manager (ARM) API.
Det er dette API-et som "styrer" alt av ressurser i Azure.
Dette betyr at du får konsistent håndhevelse av policies på tvers av alle verktøy og metoder. Team kan fritt velge sine foretrukne arbeidsverktøy – portalen, CLI, Terraform, eller andre løsninger – uten at det påvirker hvordan policyene evalueres. Du slipper å bekymre deg for at standarder kan bli utilsiktet omgått gjennom ulike arbeidsflyter, og kan stole på at reglene gjelder likt for alle, uansett teknisk tilnærming.
Azure Policy gjelder kun for Azure-ressurser og ressurscontainere, altså alt som styres via ARM API:
virtuelle maskiner, lagring, nettverk, subscriptions, ressursgrupper, og til og med rolle-tildelinger (RBAC) som er knyttet til ressurser.
Azure Policy gjelder derimot ikke for identiteter, brukere og grupper i Entra ID (tidligere Azure AD).
Alt som håndteres via Microsoft Graph API – som brukere, grupper, roller og administrative rettigheter i Entra – omfattes ikke av Azure Policy.
Dette påvirker hvordan du designer din overordnede styringsarkitektur. For ressursrelatert styring (sikkerhetskonfigurasjon, tagging, regional plassering) er Azure Policy det rette verktøyet. Men for bruker- og identitetsstyring (hvem som får tilgang til hva, administrative roller, brukerlivssyklus) må du bruke andre verktøy som Conditional Access, Privileged Identity Management, eller Identity Governance (identitetssikkerhet). Å forstå dette skillet hjelper deg med å velge riktig verktøy for riktig formål.
Eksempel:
Når du gjør en endring på en ressurs, skjer følgende rekkefølge:
Policyene har ulike effects, de mest brukte er:
Deny: Blokkér handlingen
Audit: Loggfør avvik
Append/Modify: Legg til eller endre egenskaper
DeployIfNotExists: Opprett eller konfigurer manglende ressurs
AuditIfNotExists: Loggfør avvik hvis en gitt ressurs IKKE finnes
Når du implementerer Azure Policy, må du forstå at policies evalueres hver gang noen prøver å gjøre endringer - ikke bare når du deployer dem første gang.
Dette påvirker brukeropplevelsen og kan potensielt blokkere kritisk arbeid hvis du ikke har planlagt godt nok. Ved å forstå de ulike effektene kan du velge riktig tilnærming: streng håndhevelse der det er kritisk, eller kun logging der du trenger synlighet først.
I tillegg til å evalueres når en request kommer inn til ARM APIet, kjører Azure Policy compliance-skanning daglig og kan også trigges manuelt.
Dette gjør at du alltid har oversikt over om ressursene er i samsvar med policyene:
Azure Policy er bygd opp av fire hovedelementer:
Dette gir fleksibel og strukturert styring, fra enkeltregler til omfattende samlinger som dekker hele områder (f.eks. sikkerhetskrav for all lagring).
Oppdelingen gjør at du kan skalere styringen på en håndterbar måte. I stedet for å administrere hundrevis av individuelle policy-assignments, kan du gruppere relaterte regler i initiatives og tilordne hele pakker på én gang.
Assignments lar deg kontrollere hvor reglene gjelder (hele organisasjonen vs. spesifikke team), mens exemptions gir deg en kontrollert måte å håndtere legitime unntak uten å undergrave hele styringsmodellen.
Spesielt viktig: Når du tilordner policies på management group-nivå, kan ikke engang subscription-eiere overstyre dem. Dette gjør det mulig å gi team høy grad av autonomi innenfor trygge rammer.
Azure Policy er en innebygd og gratis funksjon i Azure – det koster ingenting å definere, tilordne eller evaluere policyer. Du kan med andre ord bruke Azure Policy på tvers av hele miljøet ditt uten direkte kostnader. Men det er viktig å være klar over at enkelte policyhandlinger kan utløse indirekte kostnader, avhengig av hva policyene faktisk gjør:
Det er derfor lurt å vurdere konsekvensene av policyene, spesielt i store miljøer, slik at du har kontroll på eventuelle kostnader som kan oppstå indirekte gjennom policy-handlinger.
Hvorfor er det viktig å forstå dette?
Når du implementerer Azure Policy, må du vite nøyaktig hvilken påvirkning det har på miljøet. Mange blir overrasket over at eksisterende "non-compliant" ressurser fortsatt fungerer, eller forvirret over hvorfor noen endringer blokkeres mens andre går gjennom. Å forstå disse mekanismene hjelper deg med å forutse brukeropplevelsen og planlegge implementeringen riktig.
Eksempel: Når du bruker en policy med effekten Deny, vil Azure Policy blokkere opprettelse av nye ressurser som ikke oppfyller kravene dine.
For eksisterende ressurser som ikke er i samsvar (“noncompliant”), vil policyen ikke slette eller automatisk endre dem. Disse vises i stedet som ikke-kompatible (noncompliant) i compliance-rapporteringen.
Hvis endringen ikke får ressursen til å oppfylle policykravene, vil handlingen bli blokkert.
Dersom du har en policy som sier “Alle storage accounts må ha TLS 1.2”, kan du ikke opprette en ny storage account uten TLS 1.2.
Hvis en eldre storage account fortsatt bruker TLS 1.1, vil den vises som noncompliant:
La oss prøve å gjøre en endring på denne ressursen, som er urelatert til TLS versjon:
Dette vil feile, fordi vi effektivt sender en forespørsel til API’et der vi fortsatt har TLS 1.1 satt:
La oss prøve å gjøre den samme endringen, men samtidig oppdatere TLS versjon til å være compliant med policykrav:
Dette går bra, fordi forespørselen til API’et nå spesifiserer TLS 1.2, og er compliant:
I Azure består en “ressurs” i portalen ofte av flere sammenkoblede deler. Noen av disse delene kalles extension resources – for eksempel rolle-tildelinger (role assignments), diagnostic settings, blobs, køer og tabeller. Disse er egne ressurser som “henger på” en hovedressurs, som en storage account.
Dette kan være forvirrende i portalen, fordi du ser alt som “en ressurs”, men i virkeligheten er det flere forskjellige objekter bak kulissene, som har en relasjon seg imellom.
Når du jobber med infrastruktur som kode (for eksempel Bicep eller Terraform), er dette skillet noe tydeligere, men det er fortsatt lett å bli forvirret hvis du er ny.
Dette er et viktig poeng å forstå når du jobber med Azure Policy, særlig hvis du får uventede feilmeldinger, eller ser at noen endringer fortsatt er mulige på noncompliant ressurser.