Set-AzContext: En komplett guide til å mestre Azure-context og bytte mellom abonnementer

Pre

Å administrere skytjenester krever ofte at du arbeider med flere abonnementer, ulike leietakere og flere kontoer samtidig. Set-AzContext er en av de mest nyttige kommandoene i Az PowerShell-modulen for å håndtere og bytte mellom disse kontekstene på en kontrollert måte. I denne guiden går vi i dybden på hva Set-AzContext gjør, hvorfor det er viktig, og hvordan du bruker det i praksis – både i manuelle oppgaver og i automatiserte skript.

Hva er Set-AzContext og hvorfor er det viktig?

Set-AzContext er en cmdlet i Az PowerShell-modulen som lar deg angi hvilken Azure-kontekst du jobber i. En kontekst består av tre hovedkomponenter: abonnement, leietaker (tenant) og konto (account). Ved å sette konteksten tydelig for hver operasjon unngår du utilsiktede endringer i feil abonnement eller feil leietaker.

  • Set-AzContext gjør det mulig å jobbe med flere abonnementer uten å måtte koble til på nytt hver gang.
  • Det gir en eksplisitt måte å angi hvilket leietaker og hvilken konto du bruker for pålogging og alle etterfølgende kommandoer.
  • Ved innsatser i kontinuerlige integrasjons- og leveransepipelines (CI/CD) er det essensielt å sette riktig Set-AzContext i begynnelsen av hvert trinn for å sikre riktig virkning.

Merk: Den korrekte skriveformen i kommandoene er Set-AzContext med stor S og A i AzContext. I samtaler og dokumentasjon blir ofte set-azcontext brukt som en lavere eller uoffisiell form, men Set-AzContext er den formelle og anbefalte varianten i PowerShell-konteksten.

Før du går i gang med Set-AzContext er det nyttig å gripe hva hver del av Azure-context betyr og hvordan de henger sammen.

  • Abonnement (Subscription) er den isolerte fakturerings- og tilgangsgruppa som fordeler ressurser, ressurss-grupper og kostnader. Du kan ofte ha flere abonnementer under samme leietaker.
  • Leietaker (Tenant) representerer en organisasjonsidentitet i Azure AD. En leietaker kan inneholde mange brukere, grupper og tjenester.
  • Konto (Account) refererer til den aktuelle identiteten du bruker for å koble til Azure. Dette kan være en personlig konto, jobb-/skolekonto eller en tjenestekonto (service principal).

Når du kjører kommandoer i Set-AzContext, kobler Azure PowerShell til riktig konto, deretter gir du tilgang til riktig abonnement og tilhørende leietaker. Å ha riktig kontekst er spesielt viktig i miljøer som spenner over test-, staging- og produksjonsmiljøer.

Før du bruker Set-AzContext må du ha Az PowerShell-modulen installert og være autentisert. Dette er en enkel oppstart som ofte gjøres i PowerShell, PowerShell Core, eller Azure Cloud Shell.

# Installer Az-modulen hvis den ikke allerede er tilgjengelig
Install-Module -Name Az -AllowClobber -Scope CurrentUser

# Importer modulen og koble til Azure
Import-Module Az.Accounts
Connect-AzAccount

# Sjekk tilgjengelige abonnementer og kontekster
Get-AzContext

Etter at du har koblet deg til med Connect-AzAccount, kan du begynne å angi riktig Set-AzContext. Det første trinnet er ofte å identifisere abonnementet du vil jobbe mot og deretter sette konteksten deretter.

Nedenfor finner du noen grunnleggende scenarier som viser hvordan Set-AzContext brukes i praksis. Vi bruker både den korrekte formen Set-AzContext og refererer til set-azcontext som lavere versjon i tekst, for å understreke variasjonen i dokumentasjon og praksis.

# Sett kontekst til et bestemt abonnement ved hjelp av abonnementets navn
Set-AzContext -Subscription "MittAbonnementNavn"

# Sett kontekst til et bestemt abonnement ved hjelp av abonnementets ID
Set-AzContext -Subscription "00000000-0000-0000-0000-000000000000"

# Sett kontekst til en bestemt tenant ved å bruke tenant-id
Set-AzContext -Tenant "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

# Sett kontekst til en bestemt konto (hvis du har flere kontoer koblet til)
Set-AzContext -Account 

# Kombiner abonnement, tenant og konto i én kommando
Set-AzContext -Subscription "MittAbonnementNavn" -Tenant "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -Account "brukernavn@firma.no"

For å verifisere at konteksten er riktig satt, bruk:

Get-AzContext

Dette vil vise hvilken abonnement, tenant og konto som er aktiv, og bekrefte at Set-AzContext har virket som forventet.

I mer komplekse miljøer kan du bruke Set-AzContext i automatiserte arbeidsflyter for å sikre at hvert trinn kjører i riktig isolasjon og med riktig tilgang. Noen vanlige scenarier:

  • Automatisert deploy i CI/CD hvor du trenger å bytte mellom test-, staging- og produksjons-abonnementer i løpet av bygg og release-trinn.
  • Flere leietakere i samme organisasjon, for eksempel ved partnerskap eller multi-tenant applikasjoner.
  • Service-principals og automatisert pålogging hvor Set-AzContext følger etter en vellykket Connect-AzAccount -ServicePrincipal.

Eksempel på en enkel automatiseringsstrøm i PowerShell:

# Autentisering via Service Principal
$creds = Get-Credential
Connect-AzAccount -ServicePrincipal -Tenant "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -Credential $creds

# Velg riktig abonnement for produksjon
Set-AzContext -Subscription "Prod-Abonnement"

# Fortsett med videre automatiserte operasjoner i riktig kontekst

Når du bygger slike skript, er det smart å inkludere feilhåndtering og logging som bekrefter hvilken kontekst som ble satt før noen ressurs-operasjoner kjøres. Dette gjør det lettere å feilsøke og gir deg en tydelig sporbarhet i rapporter og loggfiler.

Som med alle kontekstbaserte operasjoner kan noen hindringer oppstå. Her er de mest trolig forekommende problemstillingene og hvordan du løser dem:

  • Abonnementet er ikke tilgjengelig: Kontroller at abonnementet eksisterer, at du har rett tilgang (vis tilgang i AdRights) og at du bruker riktig navn eller ID. Bruk Get-AzSubscription for å liste tilgjengelige abonnementer.
  • Tenant mismatch: Hvis du forsøker å sette en tenant som ikke er tilknyttet din konto, får du en autentiseringsfeil. Dobbeltsjekk tenant-id og bruk Connect-AzAccount med riktig tenant først.
  • Manglende tilgang eller rollebasert tilgang (RBAC): Sørg for at kontoen eller service-principal har nødvendig rolle på abonnementet, for eksempel Contributor eller Owner før Set-AzContext.
  • Feil konto i kontekst: Hvis du har koblet flere kontoer, bruk Set-AzContext -Account “konto@firma.no” for å eksplisitt velge riktig kontoinnloggning før operasjonene dine.
  • Modulversjon: Sørg for at Az-modulen er oppdatert. Kjente problemer kan løses ved å oppdatere: Update-Module -Name Az.

Ved feilsøking av kontekst kan du alltid hente nuværende kontekst ved å kjøre:

Get-AzContext

og deretter logge hvilke kontekter som er lagret i din sesjon for senere gjennomgang:

$contexts = Get-AzContext -ListAvailable
$contexts

Som med all administrasjon av skyressurser, gjelder det å være systematisk og forutseende når man bruker Set-AzContext i større organisasjoner.

  • Samle kontekst i dokumentasjon: Opprett en enkel kontekst-håndteringsskjema eller en README som viser hvilke abonnementer, tenants og konti som hører til hver applikasjon eller tjeneste.
  • Automatisering med sikkerhet i fokus: Bruk service principals og sikre credential-oppbevaringsmetoder (som Azure Key Vault) i automatiserte skript. Unngå å legge passord eller hemmeligheter i klartekst.
  • Miljødeling og isolasjon: Sørg for at produksjon, staging og testing bruker egne abonnementer og tenant-set for tydelig isolasjon og mindre risiko for utilsiktede endringer.
  • Logging og revisjon: Logg kontektskifte og hva Set-AzContext ble satt til for hvert steg i pipeline eller skript. Dette forenkler feilsøking og gir bedre oversikt i hendelsesloggene.
  • Konsistens i skripting: Bruk entydige variabler og kontekstdefinisjoner i hele teamet for å unngå forveksling mellom Abonnement- og Tenant-navn.

Set-AzContext kan kombineres med andre Azure-kommandoer for å skape mer intelligente og robuste arbeidsflyter. Noen nyskapende måter å bruke Set-AzContext på inkluderer:

  • Automatisk bytting mellom skymiljøer (Public, AzureChina, AzureGermany, etc.) ved å kombinere Set-AzContext med miljøspesifikke konfigurasjonsfiler.
  • Integrasjon med skriftlige konfigurasjonsfiler (.json, .yaml) som inneholder abonnement, tenant og account-verdier, lastet inn før Set-AzContext-kommandoer kjøres.
  • Oppsett av kontekst i tjenestens kjøring for kontinuerlig overvåkning og ressursoperasjoner uten manuell inngripen.

Husk at Set-AzContext er verktøyet som gir deg kontroll og forutsigbarhet i hvilke ressurser du arbeider med når du kjører kommandoer mot Azure. Den rette konteksten kan være forskjellen mellom en mislykket deploy og en stabil, vellykket produksjonsflyt.

Mens Set-AzContext er den korrekte og mest formelle varianten i PowerShell-kontekst, vil lesere finne omtale av set-azcontext i dokumentasjon og blogger. Begrepet er ofte brukt i uformelle tekster eller når man refererer til kommandoen i samtale. I praksis bør du bruke Set-AzContext i koden din og i offisielle referanser, og bruke set-azcontext i vanlig tekst eller som en referanse til kommandoen i lavere bokstav-form.

Enten du jobber i en liten startup eller i en stor organisasjon, vil Set-AzContext hjelpe deg med å holde fatningen i en travel arbeidsdag. Her er noen situasjoner de fleste kjenner seg igjen i:

  • Du har en utviklerkonto koblet til et testmiljø og en dedikert service principal for produksjon. Du bruker Set-AzContext til å bytte mellom disse kontekstene før hver oppgave.
  • Du driver en automatisert migrasjon mellom gamle og nye abonnementer. Set-AzContext sikrer at hver migrasjon skjer i riktig kontekst og reduserer risiko for feilplassering av ressurser.
  • Du trenger å verifisere at en ressurs er plassert i riktig abonnement ved hjelp av Set-AzContext og Get-AzResource eller tilsvarende query-kommandoer.

Å mestre Set-AzContext gir deg en seg selvstendig kraft i Azure-administrasjon. Ved å bruke riktig kontekst kan du sikre at operasjoner, deploys og manuelle endringer skjer nøyaktig der de skal være. Dette reduserer risiko, forbedrer sikkerheten og gjør det enklere å samarbeide i team som håndterer flere abonnementer og leietakere. Gjennom denne guiden har du lært hvordan du installerer, autentiserer og bruker Set-AzContext i både enkle og avanserte scenarier, samt hvordan du feilsøker vanlige problemer og følger beste praksis for sikkerhet og governance.

Neste steg: bygg en liten testscript som autentiserer, lister tilgjengelige abonnementer og setter kontekst til produksjonen, alt i én ryddig flyt. Når du har et fast rammeverk for Set-AzContext i skriptene dine, vil du oppleve en betydelig bedring i hastighet og presisjon i Azure-administrasjonen.