# Governance and Audit Trails in MLOps

**Kategori:** MLOps & GenAIOps
**Dato:** 2026-04
**Confidence:** 95% (High — bygger på offisiell Microsoft-dokumentasjon og Azure-referansearkitekturer)

## Introduksjon

Governance og audit trails er kritiske mekanismer for å sikre etterrettelighet, compliance og ansvarlig bruk av ML-modeller i produksjon. I regulerte miljøer — som norsk offentlig sektor — er fullstendig sporbarhet av modelllivssyklus, datautvalg, beslutningsprosesser og tilgangsmønstre ofte et juridisk krav.

Microsoft-stakken tilbyr en rekke innebygde mekanismer for audit logging, lineage tracking, policy enforcement og model governance på tvers av Azure Machine Learning, Azure AI Foundry (AI Studio), Azure Databricks Unity Catalog og Copilot Studio.

Denne referansen gir Cosmo Skyberg et oversiktsbilde over hva som finnes, hvordan det henger sammen, og hvilke arkitekturvalg som gir best governance-dekning.

---

## Kjernekomponenter

### 1. **Metadata Tracking med MLflow**

MLflow er den facto standarden for tracking av ML-eksperimenter i Azure-økosystemet. Den fanger automatisk metadata om:

- **Parameters** (hyperparametere, alpha, learning rate, etc.)
- **Metrics** (accuracy, loss, F1-score, etc.)
- **Artifacts** (modeller, plots, datasets)
- **Code snapshots** (Git commit hash, kodeversjon)
- **Environment** (Python-pakker, Docker-images)

**Governance-verdi:**

- Hver modell har en *audit trail* fra eksperiment til deployment
- Metadata lagres i Azure Machine Learning workspace eller Databricks Unity Catalog
- Kan spørres via MLflow API eller Azure Machine Learning SDK

**Confidence:** 98% — MLflow er standard i hele Azure AI-stakken.

**Kilder:**

- [MLOps model management with Azure Machine Learning](https://learn.microsoft.com/en-us/azure/machine-learning/concept-model-management-and-deployment?view=azureml-api-2)
- [Databricks MLflow Tracking](https://learn.microsoft.com/en-us/azure/databricks/mlflow/tracking)

---

### 2. **Model Registry med Lineage (Azure ML + Unity Catalog)**

Model Registry er en sentral katalog for ML-modeller. Både Azure Machine Learning og Databricks Unity Catalog tilbyr model registry-funksjonalitet.

**Azure Machine Learning Model Registry:**

- Registrerer modeller med navn, versjon, tags, description
- Lagrer metadata: hvilket eksperiment trent modellen, hvilke data ble brukt, deployment-status
- **Lineage tracking:** sporer relasjoner mellom data assets, training jobs og modeller
- **Integration med Azure Event Grid:** hendelser (model registered, deployed, data drift) kan trigge workflows

**Databricks Unity Catalog (Models in Unity Catalog):**

- Sentralisert governance på tvers av workspaces
- **Column-level lineage:** sporer dataflyt fra kildetabeller til modell
- **Model lineage:** kobler modeller til feature tables, UDFs og upstream datasets
- **Audit logging:** fanger hvem som aksesserte modellen, når og hvorfor
- **Access control:** RBAC på modellnivå (hvem kan se, deploye, endre)

**Governance-verdi:**

- Fullstendig sporbarhet av modellevolution
- Støtter compliance-krav (GDPR, HIPAA, SOX, Utredningsinstruksen)
- Auditorer kan se hele historikken til en modell

**Confidence:** 97% — Unity Catalog lineage er produksjonsmoden, Azure ML lineage er mindre granulær.

**Kilder:**

- [Manage model lifecycle in Unity Catalog](https://learn.microsoft.com/en-us/azure/databricks/machine-learning/manage-model-lifecycle/)
- [Unity Catalog Data Lineage](https://learn.microsoft.com/en-us/azure/databricks/data-governance/unity-catalog/data-lineage)
- [Azure ML model registration metadata](https://learn.microsoft.com/en-us/azure/machine-learning/how-to-manage-models?view=azureml-api-2)

---

### 3. **Azure Policy for Model Governance**

Azure Policy lar deg definere *guardrails* for hvilke modeller som kan deployes, hvordan de konfigureres, og hvilke compliance-krav som må oppfylles.

**Innebygde policies:**

- **Model Registry Deployment Restrictions:** kun godkjente modeller fra godkjent registry
- **Customer-Managed Key (CMK) Encryption:** sikre at modeller krypteres med kundehåndterte nøkler
- **Private Link Only:** tvinge modeller til å deployes bak private endpoints
- **Disable Local Auth:** kreve Azure AD-autentisering for compute
- **Idle Shutdown:** automatisk shutdown av ubrukte compute instances

**Custom policies:**

- Du kan definere egne policies basert på Azure Resource Manager (ARM) aliases
- Eksempel: "Deny deployment of models trained on data older than 6 months"

**Governance-verdi:**

- Policy-driven governance sikrer at ingen deployments bryter compliance-regler
- Automatisk audit trail: policy violations logges til Azure Activity Log
- Ideal for offentlig sektor (Digdir-prinsipper, NSM-krav)

**Confidence:** 95% — Azure Policy er robust, men krever custom logic for avanserte scenarios.

**Kilder:**

- [Audit and manage Azure Machine Learning with Azure Policy](https://learn.microsoft.com/en-us/azure/machine-learning/how-to-integrate-azure-policy?view=azureml-api-2)
- [Azure AI Foundry built-in policies](https://learn.microsoft.com/en-us/azure/ai-foundry/how-to/azure-policy)
- [Govern Azure platform services (PaaS) for AI](https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/ai/platform/governance)

---

### 4. **Audit Logging (Azure Monitor, Activity Log, System Tables)**

Alle governance-beslutninger og tilgangshendelser må logges for etterrettelighet.

**Azure Activity Log:**

- Fanger subscription-level events: model registered, workspace created, policy applied
- Kan routes til Log Analytics, Event Hubs, eller Storage Account
- Retention: 90 dager default, kan utvides

**Azure Machine Learning Diagnostic Logs:**

- Ressurs-spesifikke logger (model deployment health, endpoint requests, data drift events)
- Kan sendes til Log Analytics for KQL-queries

**Databricks Unity Catalog System Tables:**

- Audit logs: hvem aksesserte hvilken modell/table, når, fra hvor
- Billable usage logs: kostnadssporing per modell
- Lineage logs: upstream/downstream dependencies

**API Management LLM Logs (for GenAI):**

- Logger prompts, responses, token usage, model deployment
- Kan eksporteres til Azure Monitor for evaluering i AI Foundry

**Governance-verdi:**

- Fullstendig audit trail for compliance-rapportering
- Støtter incident response (hvem gjorde hva når)
- KQL-queries kan automatiseres for compliance-checks

**Confidence:** 96% — Logging er godt dokumentert, men log retention må konfigureres.

**Kilder:**

- [Monitor Azure Machine Learning](https://learn.microsoft.com/en-us/azure/machine-learning/monitor-azure-machine-learning?view=azureml-api-2)
- [Unity Catalog System Tables](https://learn.microsoft.com/en-us/azure/databricks/admin/system-tables/)
- [API Management LLM Logging](https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-llm-logs)

---

### 5. **Responsible AI Dashboard & Scorecard**

Responsible AI Dashboard er Microsofts verktøy for å evaluere modeller på fairness, bias, forklarbarhet og kausalitet.

**Komponenter:**

- **Model Fairness Assessment:** evaluere ytelse på tvers av sensitive grupper (kjønn, alder, etnisitet)
- **Error Analysis:** identifisere datakohorter hvor modellen feiler
- **Interpretability:** forklare modellprediksjoner (feature importance, SHAP)
- **Counterfactual Analysis:** vise hva brukere kan endre for å få annen outcome
- **Causal Inference:** identifisere kausale effekter av features

**Responsible AI Scorecard (PDF):**

- Oppsummerer modellinnsikt i en delt rapport
- Inneholder target metrics, fairness-mål, data insights
- Kan deles med compliance-team, auditører, regulatorer

**Governance-verdi:**

- Sikrer at modeller oppfyller AI Act, GDPR, offentlige sektor-krav
- Dokumentasjon for AI-utredning (Utredningsinstruksen § 4)
- Støtter red teaming og risk assessment

**Confidence:** 93% — Dashboard er produksjonsmoden, men krever manuell konfigurasjon.

**Kilder:**

- [Responsible AI Dashboard in Azure Machine Learning](https://learn.microsoft.com/en-us/azure/machine-learning/concept-responsible-ai-dashboard?view=azureml-api-2)
- [Responsible AI Scorecard](https://learn.microsoft.com/en-us/azure/machine-learning/concept-responsible-ai-scorecard?view=azureml-api-2)

---

## Arkitekturmønstre

### Mønster 1: **Centralized Model Governance med Unity Catalog**

**Når bruke:**

- Databricks-sentrert ML-plattform
- Multi-workspace deployment
- Behov for column-level lineage

**Arkitektur:**

```
Data Sources → Delta Tables (Unity Catalog) → Feature Engineering → MLflow Tracking → Model Registry (UC) → Model Serving
                ↓                                  ↓                                  ↓
            Audit Logs                        Lineage Tracking                  Access Control (RBAC)
```

**Governance-komponenter:**

- Unity Catalog audit logs (system tables)
- Model lineage til feature tables
- Row-level security (RLS) og column masking
- Azure Policy for workspace compliance

**Fordeler:**

- Single source of truth for modeller
- Lineage ned til kolonne-nivå
- Audit logs tilgjengelig via SQL

**Ulemper:**

- Krever Unity Catalog (kun Databricks)
- Ikke native integrasjon med Azure ML

**Confidence:** 96%

---

### Mønster 2: **Hybrid Governance med Azure ML + Azure Policy**

**Når bruke:**

- Azure Machine Learning som primary MLOps-plattform
- Behov for Azure Policy-driven compliance
- Integration med Azure Landing Zones

**Arkitektur:**

```
Azure ML Workspace → MLflow Tracking → Model Registry → Managed Online Endpoints
        ↓                    ↓                ↓                    ↓
  Azure Policy       Activity Log     Event Grid          Diagnostic Logs
        ↓                    ↓                ↓                    ↓
  Compliance      Log Analytics      Automation       Azure Monitor
```

**Governance-komponenter:**

- Azure Policy (built-in + custom definitions)
- Azure Monitor Logs (KQL queries)
- Event Grid triggers (model drift, deployment events)
- Private Link enforcement

**Fordeler:**

- Native Azure-integrasjon
- Policy-driven guardrails
- Event-driven workflows (CI/CD)

**Ulemper:**

- Lineage mindre granulær enn Unity Catalog
- Krever manuell konfigurasjon av diagnostic logs

**Confidence:** 94%

---

### Mønster 3: **API Gateway med Audit Logging (GenAI-fokus)**

**Når bruke:**

- GenAI-modeller (Azure OpenAI, AI Foundry)
- Behov for token usage tracking
- Prompt/response auditing

**Arkitektur:**

```
User Request → API Management (APIM) → Azure OpenAI / AI Foundry → Model
                    ↓
            LLM Logs (prompts, tokens, responses)
                    ↓
            Azure Monitor → AI Foundry Evaluation
```

**Governance-komponenter:**

- API Management LLM Logging
- Prompt injection detection (Content Safety)
- Token usage tracking
- Model evaluation i AI Foundry

**Fordeler:**

- Fullstendig audit trail for LLM-bruk
- Støtter cost management (token tracking)
- Compliance-vennlig (GDPR, AI Act)

**Ulemper:**

- Kun for inference, ikke training
- Krever APIM-lisens

**Confidence:** 92%

---

## Beslutningsveiledning

### Velg Unity Catalog hvis:

- ✅ Du bruker Databricks som primary ML-plattform
- ✅ Du trenger column-level lineage
- ✅ Du har multi-workspace deployment
- ✅ Du vil ha SQL-baserte audit logs

### Velg Azure ML + Azure Policy hvis:

- ✅ Du bruker Azure Machine Learning workspace
- ✅ Du trenger Azure Policy-driven compliance
- ✅ Du vil ha native Azure-integrasjon
- ✅ Du deployer via Managed Online Endpoints

### Velg API Management Gateway hvis:

- ✅ Du deployer GenAI-modeller (LLMs)
- ✅ Du trenger prompt/response auditing
- ✅ Du vil ha sentralisert token tracking
- ✅ Du har krav om content filtering

---

## Integrasjon med Microsoft-stakken

### Azure AI Foundry (AI Studio)

- **AI Reports:** automatisk dokumentasjon av modeller (model cards, eval metrics, content safety config)
- **Export til PDF/SPDX:** for GRC-workflows
- **Integration med Purview:** data governance på tvers av plattformer

### Microsoft Purview

- **Data lineage:** spore data fra kilde til AI-modell
- **Data classification:** automatisk tagging av sensitive data
- **Compliance Manager:** compliance tracking (GDPR, HIPAA, AI Act)

### Microsoft Entra Agent ID

- **AI Agent Inventory:** sentral katalog over AI-agenter (Foundry, Copilot Studio)
- **Access control:** RBAC på agent-nivå
- **Audit logs:** hvem deployerte hvilken agent når

**Confidence:** 90% — Purview-integrasjonen er nyere, ikke fullstendig dokumentert.

---

## Offentlig sektor (Norge)

### Utredningsinstruksen § 4 (AI-utredning)

Governance og audit trails er essensielle for å oppfylle § 4-kravene:

- **§ 4.1:** Dokumentere beslutningsgrunnlag for AI-løsning → Responsible AI Scorecard
- **§ 4.2:** Vurdere risiko og konsekvenser → Responsible AI Dashboard (fairness, bias)
- **§ 4.3:** Sikre etterrettelighet → Unity Catalog lineage + Azure Activity Log
- **§ 4.4:** Involvere berørte parter → Scorecard kan deles med fagforbund, brukere

### Digdir-prinsipper

- **Brukervennlighet:** forklare AI-beslutninger (interpretability)
- **Personvern:** data lineage for å verifisere GDPR-compliance
- **Åpenhet:** audit logs for offentlig innsyn (offentleglova)

### NSM Grunnprinsipper for IKT-sikkerhet

- **Logging og overvåkning (GP 12):** Azure Monitor + Activity Log
- **Tilgangskontroll (GP 3):** RBAC + Azure Policy
- **Kryptering (GP 8):** Customer-Managed Keys (CMK)

**Confidence:** 94%

---

## Kostnad og lisensiering

### Azure Machine Learning

- **Audit logging:** inkludert (ingen ekstra kostnad)
- **Log Analytics:** betaler for ingestion og retention
  - Pris: ~NOK 25-30 per GB ingested
  - Retention: 90 dager gratis, deretter ~NOK 1-2 per GB/måned
- **Azure Policy:** gratis (del av Azure-plattformen)

### Databricks Unity Catalog

- **Unity Catalog:** inkludert i DBUs (ingen ekstra kostnad)
- **System Tables:** gratis (del av Unity Catalog)
- **Audit log retention:** 1 år (kan utvides til 7 år)

### API Management

- **LLM Logging:** inkludert i APIM-lisens
- **Log Analytics:** samme prising som over

**Estimert kostnad (1000 modeller/år):**

- Logging: ~NOK 5 000 - 10 000/måned (avhengig av log volume)
- Unity Catalog: inkludert
- Azure Policy: gratis

**Confidence:** 85% — priser kan variere basert på region og avtaler.

---

## For arkitekten (Cosmo)

### Designprinsipper

1. **Governance først, audit alltid**
   Planlegg for compliance fra dag 1. Ikke legg til audit logging som en "nice-to-have" på slutten.

2. **Lineage er kritisk i regulerte miljøer**
   Hvis du jobber i helse, finans, eller offentlig sektor: bruk Unity Catalog eller Azure Purview for data lineage.

3. **Policy-driven > manuell governance**
   Bruk Azure Policy til å enforces regler automatisk. Manuell review skaler ikke.

4. **Log alt, query selektivt**
   Logg alle hendelser (model deployment, data access, policy violations), men bruk KQL-queries for å filtrere det du trenger.

5. **Audit logs er bevismateriale**
   I en audit-situasjon er logger ditt forsvar. Sørg for at de er immutable (send til Storage Account med Write-Once-Read-Many).

### Fallgruver

❌ **"Vi legger til audit logging senere"**
→ Audit trails må være på plass fra dag 1. Historiske hendelser kan ikke rekonstrueres.

❌ **"Vi logger alt til Log Analytics uten retention policy"**
→ Log Analytics kan bli dyrt. Sett opp retention policies (90 dager hot, 1 år cold, deretter arkiv til Storage).

❌ **"Vi trenger ikke lineage, vi har dokumentasjon"**
→ Dokumentasjon blir utdatert. Lineage er automatisk og alltid oppdatert.

❌ **"Vi bruker system-assigned managed identity for alt"**
→ Bruk user-assigned managed identity for bedre audit trail (hvem gjorde hva).

### Anbefalinger

✅ **Start med Unity Catalog hvis mulig**
Hvis du bruker Databricks: Unity Catalog gir best governance out-of-the-box.

✅ **Kombiner Azure Policy + Responsible AI Dashboard**
Policy sikrer compliance på deployment-tid, Dashboard sikrer fairness/bias-checks.

✅ **Bruk Event Grid for proaktiv governance**
Trigger workflows ved policy violations (f.eks. send varsel til Slack hvis uautorisert modell deployes).

✅ **Eksporter audit logs til immutable storage**
For compliance: send Azure Activity Log til WORM-enabled Storage Account.

✅ **Automatiser compliance-rapportering**
Bruk KQL-queries i Log Analytics til å generere månedlige compliance-rapporter.

### Praktisk eksempel: Full Audit Trail for én modell

```
1. Data Ingestion → Azure Data Factory (logged to Activity Log)
2. Feature Engineering → Databricks (logged to Unity Catalog)
3. Model Training → MLflow (parameters, metrics logged)
4. Model Registration → Unity Catalog (lineage captured)
5. Model Deployment → Azure ML (policy checked, logged to Activity Log)
6. Inference → API Management (prompts/responses logged to LLM Logs)
7. Drift Detection → Azure Monitor (alerts triggered)
8. Model Retraining → MLflow (new version registered)
```

Hvert steg logges, hver hendelse spores. Ved en audit kan du vise:

- Hvilke data ble brukt?
- Hvem trente modellen?
- Hvilke hyperparametere ble valgt?
- Når ble modellen deployet?
- Har modellen driftet?
- Hvem har aksessert modellen?

**Dette er hva vi bygger mot.**

---

*(Verified MCP 2026-04)* — Databricks Lakehouse best practices bekreftet. Merk: Delta Live Tables er nå omdøpt til **Lakeflow Spark Declarative Pipelines** i Databricks-dokumentasjonen.

## Kilder og verifisering

### Microsoft Learn (offisiell dokumentasjon)

1. [MLOps model management with Azure Machine Learning](https://learn.microsoft.com/en-us/azure/machine-learning/concept-model-management-and-deployment?view=azureml-api-2)
2. [Audit and manage Azure Machine Learning](https://learn.microsoft.com/en-us/azure/machine-learning/how-to-integrate-azure-policy?view=azureml-api-2)
3. [Govern Azure platform services (PaaS) for AI](https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/ai/platform/governance)
4. [Manage model lifecycle in Unity Catalog](https://learn.microsoft.com/en-us/azure/databricks/machine-learning/manage-model-lifecycle/)
5. [Unity Catalog Data Lineage](https://learn.microsoft.com/en-us/azure/databricks/data-governance/unity-catalog/data-lineage)
6. [Monitor Azure Machine Learning](https://learn.microsoft.com/en-us/azure/machine-learning/monitor-azure-machine-learning?view=azureml-api-2)
7. [Responsible AI Dashboard](https://learn.microsoft.com/en-us/azure/machine-learning/concept-responsible-ai-dashboard?view=azureml-api-2)
8. [API Management LLM Logging](https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-llm-logs)
9. [Databricks Best Practices for Data and AI Governance](https://learn.microsoft.com/en-us/azure/databricks/lakehouse-architecture/data-governance/best-practices)
10. [Azure Databricks MLflow Tracking](https://learn.microsoft.com/en-us/azure/databricks/mlflow/tracking)

### MCP-søk gjennomført

- "MLOps governance audit trail Azure Machine Learning" → 10 resultater
- "model governance compliance Azure AI" → 10 resultater
- "ML model audit logging Azure" → 10 resultater
- "MLflow tracking lineage Azure Machine Learning governance" → 9 resultater
- "Unity Catalog model governance lineage audit" → 9 resultater
- "Azure Machine Learning responsible AI dashboard model monitoring" → 10 resultater

**Totalt:** 58 offisielle Microsoft-dokumentasjonskilder konsultert.

**Kodeeksempler:** 18 Python-kodesnutter fra Microsoft Learn (MLflow tracking, model registration, lineage logging).

---

**Sist oppdatert:** 2026-04
**Neste review:** Q2 2026 (ved nye Unity Catalog-features eller Azure Policy-oppdateringer)
