ms-ai-architect/skills/ms-ai-engineering/references/data-engineering/microsoft-purview-governance.md
Kjell Tore Guttormsen 3a73eeafdc refactor(ms-ai-architect): R13 del 1 — nøytraliser Cosmo-personaen i ref-korpusets headinger, etter å ha rettet en gate som var målt usann to ganger
Ordre 20260912T193441Z-7358817909. Steg 1 var ikke transformen, men å rette
roadmapens R13-gate og få den ratifisert. Gaten `grep -rl "Cosmo"
skills/*/references -> 0` var usann på to uavhengige måter:

1. Ordren fanget den første: 451 av forekomstene er Azure Cosmos DB, ekte
   produktinnhold. Diskriminatoren er ikke bokstaven «s» — `Cosmos <norsk
   substantiv>` er genitiv av personaen (`### Cosmos tonalitet`), mens
   `Cosmos DB`/`CosmosClient`/`cosmos_ru` er produkt.
2. Denne økten fant den andre: 132 persona-forekomster ligger i prosa,
   tabeller, dialog-replikker og proveniens-linjer. Heading-nøytralisering
   kan ikke nå dem, så «0 persona» er uoppnåelig også under den ratifiserte
   formen. Operatøren ratifiserte alternativ A: gaten speiler formen, og de
   132 bokføres til R13b/R14.

Tre korreksjoner av premisser som sto i ordren og STATE:
  «ca 320 produkt»   -> 451 (case-sensitivt nett manglet 327 lowercase
                        TOC-ankre + 99 identifikatorer; sann nevner 1 638)
  «169 headinger»    -> 401. 169 var `^## For Cosmo`-prefikset (168) og var
                        internt inkonsistent med sin egen topp-variant (204)
  «417 matcher ingen
   populasjon»       -> 417 er cosmo-headinger utenfor kodefences; briefens
                        nevner var reell hele tiden

Fence-bevissthet er målt skadelig, ikke nødvendig: begge toggle-regler er
gale på dette korpuset (naiv toggle skjuler en ekte heading i
chain-of-thought-prompting.md, CommonMark-regelen ubalanserer
service-level-documentation-dr.md). Fence-agnostisk deteksjon finner 401
heading-linjer i nøyaktig de samme 40 variantene som fence-bevisst finner
400 i — ingen kodeblokk-linje er byte-identisk til en persona-heading. Derfor
nøkles transformen på 40 enumererte heading-tekster og ignorerer fences. En
ukjent variant kaster; en slug-kollisjon kaster. Ingenting auto-fikses.

TOC-en regenereres ikke, den rettes kirurgisk: alle 327 persona-lenker hadde
lenketekst lik én av de 40 heading-tekstene og anker lik slugify av den
(327/327, 0 avvik), så heading og TOC-entry skrives i samme operasjon og
ingen mellomtilstand etterlater en død lenke.

Ratifisert målform: `For Cosmo`, `For Cosmo Skyberg` og `For arkitekten
(Cosmo)` konvergerer på `For arkitekten`. To filer kolliderte og er adjudisert
ved å lese dem, ikke ved regel.

Verifisering (alle 7 kriterier fra ordren):
  G1 persona på heading-linjer   401 -> 0
  G2 døde fragmentlenker         1 -> 1 (pre-eksisterende, unntatt)
  G3 produkt-forekomster         451 -> 451; `Cosmos DB|Azure Cosmos` 308 = 308
  de 3 kun-produkt-filene        byte-identiske
  nettet validert begge veier    injisert persona feller G1; genitiv feller G1;
                                 produkt-heading og de 3 filene passerer
  hele diffen                    802 heading-linjer + 654 TOC-linjer, ANNET = 0
  linjeantall                    728 lagt til = 728 slettet
  suite                          1120/1120 (1097 + 23 nye)
  validate-plugin                250 PASS / 0 FAIL
  stikkprøve                     10 filer, alle 5 skills, inkl. de 3 mest
                                 produkt-tunge (26/20/19) — kun heading+TOC

Utenfor scope, urørt: de 4 SKILL.md, de 23 commands, CLAUDE.md, README.md,
NOTICE.md, docs/ (alt R14).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 22:12:28 +02:00

381 lines
19 KiB
Markdown

# Microsoft Purview Data Governance
**Last updated:** 2026-06-19
**Status:** GA
**Category:** Data Engineering for AI
**Type:** reference
**Source:** https://learn.microsoft.com/purview/unified-catalog
---
## Innhold
- [Introduksjon](#introduksjon)
- [Purview Catalog and Asset Registration](#purview-catalog-and-asset-registration)
- [Data Classification and Sensitivity Labels](#data-classification-and-sensitivity-labels)
- [Lineage Tracking Across Fabric](#lineage-tracking-across-fabric)
- [Policy Enforcement and Access Management](#policy-enforcement-and-access-management)
- [GDPR/HIPAA Compliance Auditing](#gdprhipaa-compliance-auditing)
- [Purview Governance for Fabric Copilots og Agenter *(Verified MCP 2026-04)*](#purview-governance-for-fabric-copilots-og-agenter-verified-mcp-2026-04)
- [Referanser](#referanser)
- [For arkitekten](#for-arkitekten)
## Introduksjon
Microsoft Purview er Microsofts samlete plattform for datastyring, risikohåndtering og compliance. For AI-løsninger er Purview avgjørende fordi det gir oversikt over hvor sensitiv data befinner seg, hvordan data flyter gjennom organisasjonen (lineage), og hvorvidt datakvaliteten er tilstrekkelig for å trene pålitelige modeller. Uten god datastyring kan AI-modeller forsterke bias, bryte personvernregler eller produsere upålitelige prediksjoner.
For norsk offentlig sektor er datahersking (data governance) regulert gjennom Forvaltningsloven, Personopplysningsloven (GDPR), og Digdir-prinsipper for informasjonsforvaltning. Purview tilbyr verktøy for automatisk klassifisering av personopplysninger, sensitivitetsmerking, og DPIA-støtte som direkte adresserer disse kravene.
Denne referansen dekker implementering av Purview-katalog, dataklassifisering, lineage-sporing på tvers av Fabric, policy-håndhevelse og compliance-auditing for AI-datapipelines.
---
## Purview Catalog and Asset Registration
### Microsoft Purview Unified Catalog
Purview Unified Catalog er den sentrale opplevelsen for å oppdage, utforske og styre data og analytiske artefakter på tvers av organisasjonen.
| Komponent | Funksjon | Relevans for AI |
|---|---|---|
| **Data Map** | Automatisk skanning og katalogisering av datakilder | Finn treningsdata |
| **Unified Catalog** | Søk, bla og oppdagelse av dataassets | Feature discovery |
| **Governance Domains** | Organisering av data etter forretningsområde | Ansvarsfordeling |
| **Data Products** | Kuraterte datasett med forretningskontekst | ML-datasett |
| **Business Glossary** | Forretningsvokabular knyttet til tekniske assets | Forståelighet |
### Asset Registration
```
Datakilder som kan registreres i Purview:
┌─────────────────────────────────────────────────────────────┐
│ Microsoft Fabric │
│ ├── Lakehouse (tabeller, filer) │
│ ├── Data Warehouse │
│ ├── KQL Database │
│ ├── Notebooks │
│ ├── Pipelines (Data Factory) │
│ ├── Dataflow Gen2 │
│ └── Power BI (semantic models, reports, dashboards) │
├─────────────────────────────────────────────────────────────┤
│ Azure │
│ ├── Azure SQL Database │
│ ├── Azure Data Lake Storage Gen2 │
│ ├── Azure Cosmos DB │
│ ├── Azure Synapse Analytics │
│ └── Azure Blob Storage │
├─────────────────────────────────────────────────────────────┤
│ On-premises │
│ ├── SQL Server │
│ ├── Oracle Database │
│ └── File shares │
└─────────────────────────────────────────────────────────────┘
```
### Skanning av Fabric Tenant
For å registrere Fabric-assets i Purview:
1. Naviger til Purview portal > Unified Catalog > Catalog Management
2. Registrer Microsoft Fabric som datakilde
3. Konfigurer skanning av Fabric-tenanten
4. Velg workspaces som skal inkluderes
Etter skanning er følgende Fabric-elementer tilgjengelig i katalogen:
| Fabric-opplevelse | Inventerte elementer |
|---|---|
| Real-Time Analytics | KQL Database, KQL Queryset |
| Data Science | Experiment, ML Model |
| Data Factory | Data Pipeline, Dataflow Gen2 |
| Data Engineering | Lakehouse, Notebook, Spark Job Definition, SQL Analytics Endpoint |
| Data Warehouse | Warehouse |
| Power BI | Dashboard, Dataflow, Datamart, Semantic Model, Report |
---
## Data Classification and Sensitivity Labels
### Automatisk klassifisering
Purview inkluderer over 200 innebygde klassifiserere for sensitive datatyper:
| Kategori | Eksempler | Relevans for Norge |
|---|---|---|
| **Personidentifisering** | Fødselsnummer, passnummer | Norsk fødselsnummer (11 siffer) |
| **Finansiell** | Bankkontonummer, kredittkortnummer | IBAN, norske kontonumre |
| **Helse** | Medisinsk terminologi, diagnosekoder | Helseopplysninger (særkategori GDPR) |
| **Kontaktinfo** | E-post, telefonnummer, adresse | Personopplysninger |
| **Autentisering** | Passord, API-nøkler, tokens | Sikkerhetskritisk |
### Sensitivitetsmerking
```
Sensitivitetsnivåer (typisk norsk offentlig sektor):
┌──────────────────────────────────────────────────────┐
│ Strengt fortrolig │ Gradert informasjon, helse │
├──────────────────────────────────────────────────────┤
│ Fortrolig │ Personopplysninger, intern │
├──────────────────────────────────────────────────────┤
│ Intern │ Forretningssensitiv, ikke-offentl│
├──────────────────────────────────────────────────────┤
│ Offentlig │ Åpne data, publisert informasjon │
└──────────────────────────────────────────────────────┘
```
### Klassifisering vs. sensitivitetsmerking
| Aspekt | Klassifisering | Sensitivitetsmerking |
|---|---|---|
| **Definisjon** | Regex/mønster som identifiserer datatyper | Kategoritag basert på forretningspåvirkning |
| **Eksempler** | "EU National ID", "Credit Card" | "Fortrolig", "Strengt fortrolig" |
| **Omfang** | Begrenset til Data Map | Følger data på tvers av tjenester |
| **Tilordning** | Automatisk via skanning | Auto-labeling policy + manuell |
| **Antall per asset** | Flere klassifiseringer mulig | Kun én sensitivitetsmerke |
### Auto-labeling Policy
```
Opprett auto-labeling policy i Purview:
1. Purview Portal > Information Protection > Auto-labeling
2. Definer policy:
- Navn: "PII-i-Fabric-Lakehouse"
- Scope: Fabric Lakehouse-tabeller
- Betingelse: Inneholder "Norwegian National ID Number"
- Handling: Merk som "Fortrolig"
3. Aktiver i simuleringsmodus først (7 dager)
4. Etter validering: Aktiver automatisk
```
---
## Lineage Tracking Across Fabric
### Automatisk lineage
Purview fanger automatisk datalineage fra Fabric-elementer etter skanning:
```
Lineage-eksempel:
Azure SQL DB ──> Data Pipeline ──> Lakehouse (Bronze)
Notebook (PySpark)
Lakehouse (Silver)
Notebook (ML Training)
ML Model ──> Power BI Report
```
### Støttede lineage-typer
| Datakilde/prosess | Lineage-omfang |
|---|---|
| **Data Factory Pipeline** | Copy Activity, Data Flow |
| **Dataflow Gen2** | Alle transformasjoner |
| **Notebook** | Lakehouse-til-Lakehouse |
| **Lakehouse** | Tabell-nivå metadata |
| **Power BI** | Semantic Model → Report → Dashboard |
| **Azure Data Factory** | Copy, Data Flow, SSIS |
### Lineage-visning i Purview
For å se lineage:
1. Unified Catalog > Browse > Microsoft Fabric > Fabric Workspaces
2. Velg workspace og Fabric-element
3. Klikk "Lineage"-fanen
### Kjente begrensninger
- Eksterne datakilder som upstream i non-Power BI lineage støttes ikke ennå
- Cross-workspace lineage for non-Power BI er begrenset
- Notebook → Pipeline lineage støttes ikke
### Manuell lineage via REST API
For tilfeller der automatisk lineage ikke fanges:
```python
# Bruk Apache Atlas REST API for å registrere manuell lineage
import requests
purview_endpoint = "https://<account>.purview.azure.com"
headers = {"Authorization": f"Bearer {access_token}"}
# Definer lineage-relasjon
lineage_payload = {
"typeName": "Process",
"attributes": {
"qualifiedName": "custom-ml-pipeline-v1",
"name": "ML Feature Pipeline"
},
"inputs": [
{"typeName": "azure_datalake_gen2_path",
"uniqueAttributes": {"qualifiedName": "source_path"}}
],
"outputs": [
{"typeName": "azure_datalake_gen2_path",
"uniqueAttributes": {"qualifiedName": "output_path"}}
]
}
response = requests.post(
f"{purview_endpoint}/catalog/api/atlas/v2/entity",
headers=headers,
json={"entity": lineage_payload}
)
```
---
## Policy Enforcement and Access Management
### Data Owner Policies
Purview Data Owner Policies muliggjør sentralisert tilgangsstyring:
| Policy-type | Beskrivelse | Støttede kilder |
|---|---|---|
| **Read** | Lesetilgang til data | Azure SQL, ADLS Gen2, Fabric |
| **Modify** | Skrivetilgang til data | Azure SQL, ADLS Gen2 |
| **Data Use** | Bruk i analytics-opplevelser | Fabric workspaces |
### Governance Domains og OKR-er
Governance Domains er nå den sentrale organiseringsenhet for glossary terms i Unified Catalog. Workflow: opprett term (Draft) → rediger → publiser. Governance domain MÅ publiseres FØR terms publiseres. Termer kan linkes til data products, data assets, columns og critical data elements på tvers av domains. Bulk edit opptil 50 terms (kun Draft-state). Flytt terms mellom domains krever Data Steward-rolle i BEGGE domains; parent-term drar med seg child-terms. Expire-funksjon gjør termen usynlig for alle unntatt Data Stewards og Domain Owners. For å slette: unpublish → fjern alle lenker → delete. *(Verified MCP 2026-08)*
```
Governance Domain: "AI og Maskinlæring"
├── Glossary Terms (Data Steward-rolle påkrevd)
│ ├── "Treningsdata" -- Definisjon og bruksregler
│ ├── "Feature Store" -- Standard for feature-lagring
│ └── "Ground Truth" -- Krav til merkede datasett
├── Critical Data Elements
│ ├── "Fødselsnummer" -- PII, krever anonymisering
│ └── "Diagnose-kode" -- Helseopplysning, særkategori
├── OKRs
│ ├── "90% av AI-datasett klassifisert innen Q2"
│ └── "100% lineage-dekning for ML-pipelines"
└── Data Products (kan linkes til glossary terms)
├── "Customer 360 Feature Set"
└── "Trafikkdata for ML"
```
---
## GDPR/HIPAA Compliance Auditing
### GDPR-relevant funksjonalitet
| GDPR-krav | Purview-funksjon |
|---|---|
| **Artikkel 30: Behandlingsprotokoll** | Data Map + Lineage |
| **Artikkel 35: DPIA** | Klassifisering + sensitivitetsmerking |
| **Artikkel 17: Rett til sletting** | Asset-søk for å finne PII-lokasjon |
| **Artikkel 20: Dataportabilitet** | Data Products med eksportfunksjon |
| **Artikkel 25: Privacy by Design** | Governance Domains med policy |
### Compliance-dashbord
Purview Data Estate Insights gir oversikt over:
- Antall klassifiserte vs. uklassifiserte assets
- Distribusjon av sensitivitetsmerker
- Skanningsdekning per datakilde
- Lineage-hull og manglende forbindelser
### Audit-sporing for AI-data
```python
# Eksempel: Generer compliance-rapport for AI-treningsdata
# Bruker Purview REST API
def get_classified_assets(purview_endpoint, token, classification):
"""Finn alle assets med en gitt klassifisering."""
url = f"{purview_endpoint}/catalog/api/search/query"
headers = {"Authorization": f"Bearer {token}"}
body = {
"keywords": "*",
"filter": {
"classification": classification
},
"limit": 100
}
response = requests.post(url, headers=headers, json=body)
return response.json()
# Finn alle assets med personnummer
pii_assets = get_classified_assets(endpoint, token, "Norwegian National ID Number")
# Generer rapport
for asset in pii_assets["value"]:
print(f"Asset: {asset['name']}")
print(f" Type: {asset['entityType']}")
print(f" Location: {asset['qualifiedName']}")
print(f" Labels: {asset.get('sensitivityLabel', 'None')}")
```
### Delta Lake GDPR-sletting
For å håndtere "rett til sletting" i Lakehouse:
```python
from delta.tables import DeltaTable
# Slett persondata basert på fødselsnummer
dt = DeltaTable.forPath(spark, "Tables/silver/customer_data")
dt.delete("national_id = '01019912345'")
# For Time-To-Live (TTL) basert sletting
# Slett alle rader eldre enn 13 måneder
from pyspark.sql.functions import current_date, expr
dt.delete(expr("created_date < current_date() - INTERVAL 13 MONTHS"))
# VACUUM for å fysisk fjerne data
dt.vacuum(0) # Fjern umiddelbart (krever retentionCheck disabled)
```
---
## Purview Governance for Fabric Copilots og Agenter *(Verified MCP 2026-04)*
Microsoft Purview gir nå governance-dekning for Fabric Copilots og agenter — et nytt område som dekker AI-generert innhold i Fabric-arbeidsmiljøer.
| Funksjonalitet | Beskrivelse |
|---------------|-------------|
| **Risk discovery** | Oppdager sensitiv informasjon i prompts og AI-responser i Fabric Copilots |
| **Audit coverage** | Loggfører AI-interaksjoner (hvem spurte hva, når, hvilken respons) for compliance |
| **Retention policies** | Beholder og sletter AI-generert innhold etter definerte retention-regler |
| **eDiscovery** | AI-generert innhold er søkbart og kan inkluderes i juridiske eDiscovery-prosesser |
**DLP for strukturert Fabric-data** *(Verified MCP 2026-06-19)*: Purview DLP-policyer støtter strukturert data i Fabric (lakehouse, warehouse, databaser, semantic models). DLP oppdager opplasting av sensitiv data til OneLake og kan håndheve tilgangsbegrensninger på sensitive assets på tvers av Fabric KQL Database, Fabric SQL Database og Fabric Data Warehouse. Policyer evaluerer sensitivity labels og sensitive info types (f.eks. kredittkort, personnummer), kan generere policy tips til Fabric-brukere og alerts til sikkerhetsadmins, og kan konfigureres slik at workspace-admins kan overstyre dem.
**Insider Risk Management for Fabric** *(Verified MCP 2026-06-19)*: IRM har ferdige risikoindikatorer for Power BI- og lakehouse-aktiviteter, inkludert deteksjoner for Fabric-dataeksfiltrering (eksport av Power BI-rapporter, flytting av data fra lakehouse/warehouse) via data theft-policyen.
**Relevans for norsk offentlig sektor:**
- Offentlige virksomheter som bruker Copilot i Fabric-løsninger må sikre at AI-interaksjoner er sporbare og underlagt arkivlovgivningen
- Purview gir mulighet for å dokumentere AI-beslutningsprosesser i henhold til Forvaltningslovens krav om begrunnelse
## Referanser
- [Use Microsoft Purview to govern Microsoft Fabric](https://learn.microsoft.com/en-us/fabric/governance/microsoft-purview-fabric) -- Purview-Fabric-integrasjon
- [How to get lineage from Microsoft Fabric items into Microsoft Purview](https://learn.microsoft.com/en-us/purview/data-map-lineage-fabric) -- Lineage fra Fabric
- [Data lineage in classic Data Catalog](https://learn.microsoft.com/en-us/purview/data-gov-classic-lineage) -- Lineage-konsepter
- [Learn about sensitivity labels in Data Map](https://learn.microsoft.com/en-us/purview/data-map-sensitivity-labels) -- Sensitivitetsmerking
- [Create and manage glossary terms](https://learn.microsoft.com/en-us/purview/unified-catalog-glossary-terms-create-manage) -- Business glossary *(Verified MCP 2026-08)* — Bulk edit opptil 50 terms (Draft-state), flytt terms mellom governance domains (Data Steward i begge domains kreves), custom attribute-filter i Enterprise glossary, Expire-workflow, Delete-workflow (unpublish + fjern lenker → delete). Governance domain MÅ publiseres FØR terms publiseres. Parent-term drar med seg child-terms ved flytting. Termer kan linkes til data products, data assets, columns og critical data elements på tvers av domains.
- [Glossary terms in Unified Catalog](https://learn.microsoft.com/en-us/purview/unified-catalog-glossary-terms) -- Aktive glossary-termer
- [Learn about Microsoft Purview Unified Catalog](https://learn.microsoft.com/en-us/purview/unified-catalog) -- Oversikt over Unified Catalog
- [Set up data quality for Fabric Lakehouse data](https://learn.microsoft.com/en-us/purview/unified-catalog-data-quality-fabric-lakehouse) -- Datakvalitet for Fabric
- [Lineage in Fabric](https://learn.microsoft.com/en-us/fabric/governance/lineage) -- Innebygd lineage-visning
---
## For arkitekten
- **Bruk denne referansen** når brukeren trenger datahersking for AI-prosjekter, compliance-støtte (GDPR, HIPAA), eller oversikt over datasensitivitet i treningsdata.
- For norsk offentlig sektor: Purview er kritisk for å oppfylle **Forvaltningslovens** krav til dokumentasjon og **Personopplysningslovens** krav til behandlingsprotokoll. Anbefal alltid Purview som del av AI-arkitekturen.
- **Lineage er den viktigste AI-governance-funksjonen** -- den dokumenterer hvordan treningsdata ble produsert, noe som er nødvendig for reproduserbarhet og forklarbarhet av AI-modeller.
- Kombiner **automatisk klassifisering** med **Governance Domains** for å skille mellom data som kan brukes fritt til ML-trening og data som krever anonymisering eller samtykke.
- Anbefal **Data Products** i Purview for å kuratere AI-klare datasett med dokumentert kvalitet, eierskap og bruksbetingelser -- dette bygger tillit til dataene som brukes i AI-modeller.