ktg-plugin-marketplace/plugins/ms-ai-architect/skills/ms-ai-infrastructure/references/hybrid-edge/azure-confidential-computing-ai.md
Kjell Tore Guttormsen 6a7632146e feat(ms-ai-architect): add plugin to open marketplace (v1.5.0 baseline)
Initial addition of ms-ai-architect plugin to the open-source marketplace.
Private content excluded: orchestrator/ (Linear tooling), docs/utredning/
(client investigation), generated test reports and PDF export script.
skill-gen tooling moved from orchestrator/ to scripts/skill-gen/.

Security scan: WARNING (risk 20/100) — no secrets, no injection found.
False positive fixed: added gitleaks:allow to Python variable reference
in output-validation-grounding-verification.md line 109.

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

14 KiB

Azure Confidential Computing for AI

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


Introduksjon

Azure Confidential Computing (ACC) beskytter data under prosessering (data-in-use) ved hjelp av hardware-baserte Trusted Execution Environments (TEE). For AI-arbeidsbelastninger betyr dette at modeller og inferensdata kan beskyttes mot uautorisert tilgang — inkludert fra skyoperatoren selv. Dette er en gamechanger for organisasjoner som prosesserer sensitive data med AI.

For norsk offentlig sektor losner ACC en fundamental utfordring: hvordan bruke sky-basert AI-kraftig hardware (GPU-er, akseleratorer) for sensitive data uten a kompromittere datasikkerheten. NSM Grunnprinsipper og Schrems II-krav kan ivaretas ved at data aldri eksisteres i klartekst utenfor TEE — selv Microsoft som skyoperator kan ikke se dataene.

Microsoft tilbyr flere ACC-tilbud for AI: Confidential VMs basert pa AMD SEV-SNP for CPU-baserte arbeidsbelastninger, Confidential GPU VMs med NVIDIA H100 for GPU-akselerert AI, Confidential Containers pa ACI og AKS, og Azure Attestation for verifisering av TEE-integritet.


Kjernekomponenter

Komponent Formal Teknologi
AMD SEV-SNP Minnesikring for hele VM CPU-basert TEE
Intel TDX Trust Domain Extensions for VM-isolasjon CPU-basert TEE (Preview)
Intel SGX Application-level enclaves Enclave-basert TEE
NVIDIA H100 TEE GPU-basert confidential computing Confidential GPU VM
Azure Attestation Verifisering av TEE-tilstand PaaS-tjeneste
Confidential VMs Kryptert VM-minne DCasv5, ECasv5, NCCadsH100v5
Confidential Containers Container-isolasjon i TEE ACI, AKS
Azure Key Vault mHSM Nokkelhandtering i HSM FIPS 140-2 Level 3

TEE-Enabled Model Execution

Confidential VM for AI-inferens

# Opprett Confidential VM for AI-arbeidslast (AMD SEV-SNP)
az vm create \
  --resource-group rg-confidential-ai \
  --name vm-confidential-inference \
  --image "Canonical:0001-com-ubuntu-confidential-vm-jammy:22_04-lts-cvm:latest" \
  --size Standard_DC4as_v5 \
  --security-type ConfidentialVM \
  --os-disk-security-encryption-type VMGuestStateOnly \
  --enable-vtpm true \
  --enable-secure-boot true \
  --admin-username azureuser \
  --generate-ssh-keys

# Installer AI runtime
az vm run-command invoke \
  --resource-group rg-confidential-ai \
  --name vm-confidential-inference \
  --command-id RunShellScript \
  --scripts "
    pip install onnxruntime torch transformers
    # Modell og data er kryptert i minnet av AMD SEV-SNP
  "

Confidential GPU VM for AI (NVIDIA H100)

# Opprett Confidential GPU VM med NVIDIA H100 TEE
az vm create \
  --resource-group rg-confidential-ai \
  --name vm-confidential-gpu \
  --image "microsoft-dsvm:ubuntu-hpc:2204:latest" \
  --size Standard_NCCads_H100_v5 \
  --security-type ConfidentialVM \
  --os-disk-security-encryption-type DiskWithVMGuestState \
  --enable-vtpm true \
  --admin-username azureuser \
  --generate-ssh-keys

Linked CPU-GPU TEE-arkitektur

┌─────────────────────────────────────────┐
│          Confidential GPU VM            │
│                                         │
│  ┌──────────────┐  ┌────────────────┐  │
│  │   CPU TEE    │  │    GPU TEE     │  │
│  │  (AMD SNP)   │←→│  (NVIDIA H100) │  │
│  │              │  │                │  │
│  │ - Datainntak │  │ - Inferens     │  │
│  │ - Pre/post   │  │ - Training     │  │
│  │ - Orkestrering│ │ - Tensor ops   │  │
│  └──────────────┘  └────────────────┘  │
│         ↑                    ↑          │
│    Kryptert minne      Kryptert VRAM   │
│    (aldri i klartekst utenfor TEE)     │
└─────────────────────────────────────────┘

Encrypted Inference Pipelines

End-to-end kryptert inferens

# Confidential inferens med attestation-basert nokkelfrigivelse
from azure.identity import DefaultAzureCredential
from azure.keyvault.keys import KeyClient
from azure.attestation import AttestationClient
import onnxruntime as ort

class ConfidentialInferencePipeline:
    def __init__(self):
        self.credential = DefaultAzureCredential()
        self.attestation_client = AttestationClient(
            endpoint="https://sharedeus.eus.attest.azure.net",
            credential=self.credential
        )

    async def run_confidential_inference(self, encrypted_input: bytes) -> bytes:
        """Kjor inferens med end-to-end kryptering"""

        # Steg 1: Generer TEE-attestasjonsrapport
        attestation_report = self._generate_attestation()

        # Steg 2: Hent dekrypteringsnokkel via Secure Key Release (SKR)
        decryption_key = await self._secure_key_release(attestation_report)

        # Steg 3: Dekrypter input innenfor TEE
        # (Data er kun i klartekst innenfor TEE-minnet)
        plaintext_input = self._decrypt_in_tee(encrypted_input, decryption_key)

        # Steg 4: Kjor inferens
        result = self._run_model(plaintext_input)

        # Steg 5: Krypter output for returnerning
        encrypted_output = self._encrypt_in_tee(result, decryption_key)

        return encrypted_output

    def _generate_attestation(self) -> dict:
        """Generer hardware-attestasjonsrapport fra AMD SEV-SNP"""
        # Hent SNP attestation report fra /dev/sev-guest
        # Rapporten inkluderer:
        # - Platform-versjon og firmware
        # - VM measurement (hash av VM-konfigurasjon)
        # - Runtime measurement
        import subprocess
        report = subprocess.run(
            ["snp-report", "--format", "json"],
            capture_output=True, text=True
        )
        return {
            "snp_report": report.stdout,
            "runtime_data": self._get_runtime_claims()
        }

    async def _secure_key_release(self, attestation: dict) -> bytes:
        """Frigivelse av nokkel basert pa attestasjon"""
        # Azure Attestation verifiserer TEE-tilstand
        result = self.attestation_client.attest_snp_vm(
            report=attestation["snp_report"],
            runtime_data=attestation["runtime_data"]
        )

        # Kun hvis attestasjon er gyldig, frigir Key Vault nokkelen
        key_client = KeyClient(
            vault_url="https://myvault.vault.azure.net",
            credential=self.credential
        )

        return key_client.release_key(
            name="inference-key",
            target_attestation_token=result.token
        )

Confidential Containers for AI

# Confidential container deployment pa Azure Container Instances
# Container-gruppen kjorer i AMD SEV-SNP TEE
apiVersion: 2023-05-01
name: confidential-inference
location: norwayeast
properties:
  confidentialComputeProperties:
    ccePolicy: "<base64-encoded-rego-policy>"
  containers:
    - name: inference-engine
      properties:
        image: myregistry.azurecr.io/confidential-inference:v1
        resources:
          requests:
            cpu: 4
            memoryInGB: 16
        environmentVariables:
          - name: MODEL_PATH
            value: /models/encrypted_model.enc
          - name: ATTESTATION_ENDPOINT
            value: "https://sharedneu.neu.attest.azure.net"
        volumeMounts:
          - name: model-volume
            mountPath: /models
  osType: Linux
  sku: Confidential
  volumes:
    - name: model-volume
      azureFile:
        shareName: encrypted-models
        storageAccountName: mystorageaccount

Attestation for Compliance

Azure Attestation-flyten

┌──────────┐     ┌───────────────┐     ┌──────────────┐
│ TEE/CVM  │────→│    Azure      │────→│  Relying     │
│          │     │  Attestation  │     │  Party       │
│ Generer  │     │               │     │              │
│ Evidence │     │ Verifiser     │     │ Frigir data/ │
│          │     │ Evaluer policy│     │ noekler      │
└──────────┘     └───────────────┘     └──────────────┘

Attestasjonspolicy for AI-arbeidsbelastninger

// SKR-policy for Confidential AI VM
{
  "version": "1.0.0",
  "anyOf": [
    {
      "authority": "https://sharedneu.neu.attest.azure.net",
      "allOf": [
        {
          "claim": "x-ms-compliance-status",
          "equals": "azure-compliant-cvm"
        },
        {
          "claim": "x-ms-sevsnpvm-is-debuggable",
          "equals": "false"
        },
        {
          "claim": "x-ms-sevsnpvm-vmpl",
          "equals": "0"
        },
        {
          "claim": "x-ms-isolation-tee.x-ms-attestation-type",
          "equals": "sevsnpvm"
        }
      ]
    }
  ]
}

Compliance-rapportering

# Generer compliance-rapport for confidential AI
class ConfidentialAIComplianceReport:
    def generate_report(self) -> dict:
        return {
            "platform": {
                "type": "Azure Confidential VM",
                "tee": "AMD SEV-SNP",
                "firmware_version": self._get_firmware_version(),
                "attestation_status": "verified"
            },
            "data_protection": {
                "encryption_at_rest": "AES-256 (Customer-managed key)",
                "encryption_in_transit": "TLS 1.3",
                "encryption_in_use": "AMD SEV-SNP memory encryption",
                "key_management": "Azure Key Vault Managed HSM"
            },
            "access_control": {
                "operator_access": "Denied (TEE-enforced)",
                "attestation_required": True,
                "secure_key_release": True
            },
            "compliance_frameworks": [
                "GDPR Art. 32 (data-in-use protection)",
                "Schrems II (operator cannot access data)",
                "NSM Grunnprinsipper (kryptering ved bruk)",
                "ISO 27001 A.10 (cryptographic controls)"
            ],
            "audit_trail": {
                "attestation_logs": "Azure Monitor",
                "key_release_logs": "Key Vault audit log",
                "inference_metadata": "Application Insights"
            }
        }

Performance Trade-offs

Ytelsespavirkning av Confidential Computing

Arbeidsbelastning Uten CC Med CC (CPU TEE) Med CC (GPU TEE) Overhead
ONNX inferens (CPU) 10 ms 11-12 ms N/A 10-20%
PyTorch inferens (GPU) 5 ms N/A 5.5-6 ms 10-20%
LLM generering (GPU) 30 tok/s N/A 25-28 tok/s 7-17%
Embedding-generering 50 ms/batch 55-60 ms/batch 52-55 ms/batch 4-20%
Modell-lasting 5 s 7-8 s 6-7 s 20-40%

Optimalisering for lavere overhead

Optimalisering Beskrivelse Forventet forbedring
Batching Samle flere inferensforesp. Amortiser TEE-overhead
Model caching Hold modell i TEE-minne Unnga re-dekryptering
Forhands-attestasjon Cache attestasjonstoken Reduser latens per kall
NUMA-optimalisering Pin til korrekt NUMA-node Bedre minneytelse
Hugepage-allokering Bruk store minnesider Reduser TLB-misser

Norsk offentlig sektor

Hvorfor Confidential Computing for norsk offentlig AI?

  • Schrems II-kompatibilitet: Data er kryptert under prosessering — selv Microsoft kan ikke se innholdet, noe som adresserer europeisk personvernlovgivning
  • NSM-krav: Grunnprinsipper for IKT-sikkerhet krever kryptering, og CC utvider dette til data-in-use
  • Flerpartisanalyse: Kommuner og etater kan analysere data sammen uten a eksponere radata for hverandre
  • AI pa sensitive data: Helsedata (pasientjournaler), persondata (NAV), og justisdata kan prosesseres med AI uten a kompromittere personvern

Bruksscenarier

Etat Scenario CC-komponent
NAV AI-analyse av soknader med persondata Confidential VM
Helsedirektoratet Prediktiv analyse pa helsejournaler Confidential GPU VM
Politiet Biometrisk matching SGX enclaves
Skatteetaten Fraud detection pa skattedata Confidential Containers
Kommuner Flerparts-analyse av velferdsdata Confidential ACI

Beslutningsrammeverk

Scenario Anbefaling Begrunnelse
CPU-basert AI, enkel migrasjon Confidential VM (SEV-SNP) Ingen kodeendringer
GPU-akselerert AI, hoy ytelse NCCadsH100v5 Confidential GPU VM Linked CPU+GPU TEE
Container-baserte mikrotjenester Confidential Containers pa ACI/AKS Container-policy-basert sikkerhet
Application-level isolasjon Intel SGX enclaves Minst mulig TCB
Flerpartssanalyse Confidential Containers + Attestation Verifiserbar isolasjon
Strengeste compliance-krav Confidential GPU + mHSM + Attestation Full stack confidentiality

For Cosmo

  • Confidential Computing losner data-in-use-problemet for sky-AI — anbefal Confidential VMs (AMD SEV-SNP) som forste steg for organisasjoner som noler med sky-AI pa grunn av datasikkerhetshensyn
  • Ytelsesoverhead er typisk 10-20% — dette er akseptabelt for de fleste arbeidsbelastninger og kan optimaliseres med batching og modell-caching innenfor TEE
  • Azure Attestation + Secure Key Release er pabudt for compliance — modeller og data bor kun dekrypteres etter vellykket attestasjon som beviser at arbeidsmiljoet er integert
  • For norsk offentlig sektor: Confidential GPU VMs (H100) er den mest lovende losningen for a kjore avansert AI pa sensitive data i skyen — den kombinerer GPU-ytelse med TEE-beskyttelse
  • Dokumenter alltid TEE-stack, attestasjonspolicy og nokkelhandtering i sikkerhetsarkitekturen — dette er konkret bevis for compliance i DPIA og sikkerhetsrevisjoner