ms-ai-architect/skills/ms-ai-infrastructure/references/hybrid-edge/sovereign-cloud-norway.md
Kjell Tore Guttormsen baa2d0220b feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command
Add /ultraresearch-local for structured research combining local codebase
analysis with external knowledge via parallel agent swarms. Produces research
briefs with triangulation, confidence ratings, and source quality assessment.

New command: /ultraresearch-local with modes --quick, --local, --external, --fg.
New agents: research-orchestrator (opus), docs-researcher, community-researcher,
security-researcher, contrarian-researcher, gemini-bridge (all sonnet).
New template: research-brief-template.md.

Integration: --research flag in /ultraplan-local accepts pre-built research
briefs (up to 3), enriches the interview and exploration phases. Planning
orchestrator cross-references brief findings during synthesis.

Design principle: Context Engineering — right information to right agent at
right time. Research briefs are structured artifacts in the pipeline:
ultraresearch → brief → ultraplan --research → plan → ultraexecute.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 08:58:35 +02:00

16 KiB

Sovereign Cloud for Norwegian AI

Last updated: 2026-02 Status: GA Category: Hybrid Cloud & Edge AI


Introduksjon

Microsoft Sovereign Cloud er en suite av kapabiliteter og deploymentmodeller designet for a hjelpe myndigheter og regulerte industrier med a oppfylle krav til dataresidency, compliance og operasjonell suverenitet — uten a gi avkall pa fordelene ved hyperscale sky-innovasjon. For norsk offentlig sektor er dette sarlig relevant gitt strenge krav fra NSM, Datatilsynet, og EU-regulering.

Sovereign Cloud tilbyr tre deploymentmodeller: Sovereign Public Cloud i Microsoft-drevne datasentre innenfor definerte geopolitiske grenser (f.eks. Norway East/West), Sovereign Private Cloud via Azure Local for customer-kontrollerte miljoer, og National Partner Clouds for lokaliserte suverene skyimplementeringer. Hver modell balanserer skyverdi mot suverenitetskontroller.

For AI-arbeidsbelastninger i norsk offentlig sektor kombinerer Sovereign Cloud dataresendens med konfidensielle beregningsteknologier, kundestyrte krypteringsnoekler, og policy-baserte guardrails — alt for a muliggjore avansert AI-bruk uten a kompromittere suverenitet.


Kjernekomponenter

Komponent Formal Teknologi
Sovereign Landing Zone Infrastruktur-as-code for suverene miljoer Bicep/Terraform
Sovereignty Baseline Policies Azure Policy for dataresidency og konfidensialitet Azure Policy
Azure Confidential Computing Beskyttelse av data under prosessering AMD SEV-SNP, Intel TDX
Customer-Managed Keys (CMK) Kundekontrollert kryptering Azure Key Vault mHSM
Data Guardian Datastyring for suverene arbeidsbelastninger Preview
External Key Management Kundekontrollert nokkelhandtering utenfor Azure Integration
Transparency Logs Innsyn i operatoerens aktiviteter Audit
Azure Local On-premises sky-infrastruktur Sovereign Private Cloud

Data Sovereignty Architecture

Sovereign Landing Zone (SLZ)

SLZ er en variant av Azure Landing Zone spesielt designet for digital suverenitet:

┌─────────────────────────────────────────────────┐
│              Sovereign Landing Zone              │
│                                                  │
│  ┌─────────────────────────────────────────────┐ │
│  │          Management Group Hierarchy          │ │
│  │  Root → Sovereign → Production → AI          │ │
│  └─────────────────────────────────────────────┘ │
│                                                  │
│  ┌──────────────┐  ┌───────────────────────────┐ │
│  │ Sovereignty  │  │    Workload Templates     │ │
│  │ Baseline     │  │                           │ │
│  │ Policies     │  │  - AI Foundry template    │ │
│  │              │  │  - AKS template           │ │
│  │  - Data      │  │  - App Service template   │ │
│  │    residency │  │  - Storage template       │ │
│  │  - CMK       │  │                           │ │
│  │  - Network   │  │                           │ │
│  └──────────────┘  └───────────────────────────┘ │
│                                                  │
│  ┌──────────────┐  ┌───────────────────────────┐ │
│  │ Confidential │  │   Monitoring & Audit      │ │
│  │ Computing    │  │                           │ │
│  │ Layer        │  │  - Azure Monitor          │ │
│  │              │  │  - Transparency Logs      │ │
│  │  - CVMs      │  │  - Compliance Manager     │ │
│  │  - mHSM      │  │  - Defender for Cloud     │ │
│  └──────────────┘  └───────────────────────────┘ │
└─────────────────────────────────────────────────┘

Deployment med Bicep

// Sovereign Landing Zone for norsk offentlig AI
targetScope = 'managementGroup'

@description('Sovereignty Baseline Policy Assignment')
resource sovereigntyBaseline 'Microsoft.Authorization/policyAssignments@2024-04-01' = {
  name: 'sovereignty-baseline-norway'
  properties: {
    displayName: 'Sovereignty Baseline - Norway AI'
    policyDefinitionId: '/providers/Microsoft.Authorization/policySetDefinitions/sovereignty-baseline'
    parameters: {
      allowedLocations: {
        value: ['norwayeast', 'norwaywest']
      }
      requireConfidentialComputing: {
        value: true
      }
      requireCustomerManagedKeys: {
        value: true
      }
      requirePrivateEndpoints: {
        value: true
      }
    }
  }
}

// Nektelsespolicy: Hindre data fra a forlate Norge
resource dataResidencyPolicy 'Microsoft.Authorization/policyAssignments@2024-04-01' = {
  name: 'data-residency-norway'
  properties: {
    displayName: 'Enforce Norway Data Residency'
    policyDefinitionId: '/providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c'
    parameters: {
      listOfAllowedLocations: {
        value: ['norwayeast', 'norwaywest']
      }
    }
    enforcementMode: 'Default'
  }
}

// Customer-Managed Key krav for AI-lagring
resource cmkPolicy 'Microsoft.Authorization/policyAssignments@2024-04-01' = {
  name: 'cmk-encryption-ai'
  properties: {
    displayName: 'Require CMK for AI Storage'
    policyDefinitionId: '/providers/Microsoft.Authorization/policyDefinitions/6fac406b-40ca-413b-bf8e-0bf964659c25'
    enforcementMode: 'Default'
  }
}

Regional Deployment Constraints

Azure-regioner i Norge

Region Lokasjon Tjenester GA-status
Norway East Oslo Fullt AI-spekter GA
Norway West Stavanger DR og backup GA

AI-tjenester tilgjengelig i Norway East

Tjeneste Tilgjengelig Sovereign-kompatibel
Azure OpenAI Ja Ja (med CMK)
Azure AI Search Ja Ja
Azure ML Ja Ja
Azure AI Services Ja Ja
Azure AI Foundry Ja Ja
Confidential VMs Ja Ja
AKS Ja Ja

Deployment-begrensninger

# Verifiser at AI-ressurser deployes i tillatte regioner
from azure.mgmt.resource import ResourceManagementClient
from azure.identity import DefaultAzureCredential

class SovereigntyChecker:
    ALLOWED_REGIONS = ["norwayeast", "norwaywest"]

    def __init__(self):
        self.credential = DefaultAzureCredential()

    def verify_resource_locations(self, subscription_id: str) -> list[dict]:
        """Verifiser at alle AI-ressurser er i tillatte regioner"""
        client = ResourceManagementClient(self.credential, subscription_id)
        violations = []

        ai_resource_types = [
            "Microsoft.CognitiveServices/accounts",
            "Microsoft.MachineLearningServices/workspaces",
            "Microsoft.Search/searchServices",
            "Microsoft.OpenAI/accounts"
        ]

        for resource in client.resources.list():
            if resource.type in ai_resource_types:
                if resource.location not in self.ALLOWED_REGIONS:
                    violations.append({
                        "resource_name": resource.name,
                        "resource_type": resource.type,
                        "location": resource.location,
                        "severity": "CRITICAL",
                        "remediation": f"Flytt til {self.ALLOWED_REGIONS}"
                    })

        return violations

    def verify_data_residency(self, subscription_id: str) -> dict:
        """Generer dataresidency-rapport"""
        violations = self.verify_resource_locations(subscription_id)
        return {
            "status": "COMPLIANT" if not violations else "NON_COMPLIANT",
            "allowed_regions": self.ALLOWED_REGIONS,
            "total_ai_resources": self._count_ai_resources(subscription_id),
            "violations": violations,
            "recommendation": (
                "Alle AI-ressurser er innenfor tillatte regioner"
                if not violations
                else f"{len(violations)} ressurser krever flytting"
            )
        }

Compliance Audit Trails

Logging-arkitektur for sovereign AI

┌─────────────────────────────────────────┐
│           AI-arbeidsbelastning           │
│                                         │
│  [Inferens] → [Azure Monitor]           │
│  [Trening]  → [Log Analytics]           │
│  [Datatilgang] → [Diagnostic Settings]  │
└────────────────┬────────────────────────┘
                 ↓
┌─────────────────────────────────────────┐
│         Compliance Audit Layer          │
│                                         │
│  [Transparency Logs]                    │
│    → Microsoft operator-aktiviteter     │
│                                         │
│  [Azure Activity Log]                   │
│    → Ressurs-operasjoner               │
│                                         │
│  [Key Vault Audit Log]                  │
│    → Nokkel-tilgang og -bruk           │
│                                         │
│  [Purview Audit]                        │
│    → Data-tilgang og -klassifisering   │
└────────────────┬────────────────────────┘
                 ↓
┌─────────────────────────────────────────┐
│       Long-term Retention (Norway)      │
│                                         │
│  [Immutable Blob Storage]               │
│    → 7 ars retention for compliance     │
│    → WORM-policy (Write Once Read Many) │
│    → Norway East lokasjon               │
└─────────────────────────────────────────┘

Implementering av audit trail

# Sovereign AI audit trail konfigurasjon
from azure.mgmt.monitor import MonitorManagementClient

class SovereignAuditConfiguration:
    def configure_ai_diagnostics(self, resource_id: str, workspace_id: str):
        """Konfigurer diagnostikk for sovereign AI-ressurs"""
        monitor_client = MonitorManagementClient(
            self.credential, self.subscription_id
        )

        diagnostic_settings = {
            "logs": [
                {
                    "category": "RequestResponse",
                    "enabled": True,
                    "retentionPolicy": {"enabled": True, "days": 2555}  # 7 ar
                },
                {
                    "category": "Audit",
                    "enabled": True,
                    "retentionPolicy": {"enabled": True, "days": 2555}
                },
                {
                    "category": "AllMetrics",
                    "enabled": True,
                    "retentionPolicy": {"enabled": True, "days": 365}
                }
            ],
            "workspaceId": workspace_id,
            "storageAccountId": self.immutable_storage_id
        }

        monitor_client.diagnostic_settings.create_or_update(
            resource_uri=resource_id,
            name="sovereign-ai-diagnostics",
            diagnostic_settings_resource=diagnostic_settings
        )

Vendor Lock-in Mitigation

Strategier for a unnga avhengighet

Strategi Implementering Effekt
ONNX-format Bruk ONNX for alle modeller Portabilitet mellom plattformer
Open-source SLM Phi-modeller med MIT-lisens Ingen leverandor-avhengighet
IaC (Bicep/Terraform) Infrastruktur som kode Reproduserbar deployment
Standard API-er OpenAI-kompatible API-er Bytt leverandor uten kodeendring
Multi-cloud exit plan Dokumentert migrasjonsplan Redusert risiko
Container-basert Docker/Kubernetes Platform-uavhengig

Exit-strategi-sjekkliste

## Exit-strategi for sovereign AI-plattform

### Data
- [ ] Alle data kan eksporteres i standardformater (JSON, Parquet, CSV)
- [ ] Vektordatabase kan eksporteres (HNSW-indekser)
- [ ] Krypteringsnoekler lagret i customer-controlled HSM
- [ ] Backup-kopier i kundens kontroll

### Modeller
- [ ] Alle modeller i ONNX-format
- [ ] Fine-tuning-data og adaptere eksporterbare
- [ ] Evalueringsmetriker dokumentert for sammenligning
- [ ] Ingen proprietaere modellformater

### Infrastruktur
- [ ] All infrastruktur definert i Bicep/Terraform
- [ ] Kubernetes-arbeidsbelastninger med standard Helm charts
- [ ] Ingen Azure-spesifikke SDK-avhengigheter i forretningslogikk
- [ ] CI/CD-pipelines platform-uavhengige

### Kontrakt
- [ ] Dataportabilitet klausul i avtale
- [ ] Migrasjonsbistand klausul
- [ ] Oppsigelsesperiode tilstrekkelig for migrasjon
- [ ] Eierskap til data og modeller tydelig definert

Norsk offentlig sektor

Relevante krav og rammeverk

Krav Kilde Sovereign Cloud-losning
Data ma lagres i Norge/EOS Schrems II / Datatilsynet Norway East/West regioner
Kryptering av data ved hvile og transport NSM Grunnprinsipper CMK + TLS 1.3
Kryptering av data under prosessering NSM / okt sikkerhet Confidential Computing
Innsyn i operatoerens handlinger Offentleglova / transparens Transparency Logs
Dokumentert risikovurdering Utredningsinstruksen Compliance Manager
Leverandoruavhengighet Arkitekturprinsippene (Digdir) ONNX + open source + IaC
Universell utforming Likestillingsloven N/A (applikasjonsniva)

Anskaffelseshensyn

  • SSA-L/SSA-T: Sovereign Cloud-kapabiliteter bor spesifiseres i kravspesifikasjonen
  • Databehandleravtale: Ma dekke dataresidency, kryptering, og audit-rettigheter
  • Exit-klausul: Kontrakten ma sikre rett til dataeksport og migrasjonsbistand
  • Gevinstrealisering: Dokumenter besparelser vs. on-premises drift

Beslutningsrammeverk

Scenario Anbefaling Begrunnelse
Standard AI-arbeidsbelastning Sovereign Public Cloud (Norway East) Enklest, fullt spekter av tjenester
Sensitive data med hoy sikkerhet SPC + Confidential Computing + CMK Maksimal beskyttelse
Forsvar/nasjonal sikkerhet Sovereign Private Cloud (Azure Local) Full kontroll, air-gapped
Flerparts-analyse mellom etater Confidential Computing pa SPC Verifiserbar isolasjon
Compliance-kritisk AI SPC + Compliance Manager + Audit trails Dokumenterbar etterlevelse
Hybrid sky + on-prem Azure Arc + SLZ Enhetlig forvaltning

For Cosmo

  • Sovereign Landing Zone er den korrekte startarkitekturen for alle AI-prosjekter i norsk offentlig sektor — deploy SLZ med Sovereignty Baseline Policies som forste steg
  • Norway East er primary-regionen for AI — alle Azure AI-tjenester inkludert OpenAI og Confidential VMs er tilgjengelig der, med Norway West for DR
  • Customer-Managed Keys (CMK) via Managed HSM er et minimum for sovereign AI — dette gir kundekontrollert kryptering og tilfredsstiller NSM-krav
  • Vendor lock-in-mitigering er pabudt ifoolge Digdirs arkitekturprinsipper — bruk ONNX, open-source SLM (Phi), og Infrastructure-as-Code for a sikre portabilitet
  • Transparency Logs og Compliance Manager er kritiske for revisjon — norsk offentlig sektor ma kunne dokumentere operatoertilgang og compliance-status for Riksrevisjonen og Datatilsynet