Key content changes: - MLOps: MLflow 3 scorers expanded (RetrievalRelevance, Fluency, multi-turn judges) - MLflow 3 A/B eval: mirror_traffic GA confirmed, new scorer catalog - CI/CD: OIDC auth replaces deprecated --sdk-auth (Azure ML GitHub Actions) - Agent framework A2A: updated SDK patterns (A2ACardResolver, BearerAuth) - AG-UI backend tool rendering: accurate TOOL_CALL_* event shapes - Computer Use agents: US region requirement, credentials patterns - Purview governance: bulk term edit, expire/delete workflows - CAF AI Secure: 3-phase structure confirmed current - Copilot Studio: Claude Sonnet 4.5/4.6 GA, new orchestration controls - M365 manifest: v1.26 GA (April 2026), copilotAgents node - Power Platform: agent flow capacity enforcement corrected - Azure Monitor: Simple Log Alerts GA, AMBA for policy-based alerting - Security Copilot: SCU capacity model (400 SCU/1000 users) - EU Data Boundary: all EU + EFTA countries confirmed - gateway-multi-backend: added 4th topology, subscription-level quota note Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
25 KiB
Security and Access Control in MLOps
Kategori: MLOps & GenAIOps Last updated: 2026-04 Dato: 2026-04-10 Confidence: HIGH — Basert på offisiell Microsoft Learn dokumentasjon (8 MCP-oppslag, 16 kilder)
Introduksjon
Security and access control utgjør fundamentet for enterprise-grade MLOps i Azure Machine Learning. Denne kunnskapsreferansen dekker identitetsstyring, nettverksisolasjon, datakryptering og tilgangskontroll gjennom hele ML-livssyklusen — fra treningsjobber til produksjons-endpoints.
Hvorfor dette er kritisk for MLOps:
- Beskytter treningsdata, modeller og inferens-endepunkter mot uautorisert tilgang
- Sikrer compliance med GDPR, ePrivacy-direktivet og norske personvernkrav
- Reduserer risiko for data exfiltration i delte workspace-miljøer
- Muliggjør audit trails og samsvarskontroll for regulerte virksomheter
I produksjonsmiljøer er sikkerhet ikke en tilleggsfunksjon, men en arkitekturell forutsetning.
Kjernekomponenter
1. Identitetshåndtering med Managed Identities
Azure Machine Learning støtter to typer managed identities for service-to-service autentisering:
System-Assigned Managed Identity (SAI)
- Livssyklus: Automatisk opprettet og slettet sammen med workspace/compute
- Bruksområde: Standard for workspace → storage/keyvault/ACR kommunikasjon
- Permissions (workspace SAI):
Contributorpå workspaceStorage Blob Data Contributorpå storage account- Full access til Key Vault keys/secrets/certificates
Contributorpå Container Registry
# Verifiser workspace identity
az ml workspace show --name <workspace-name> \
--resource-group <resource-group> \
--query identity
User-Assigned Managed Identity (UAI)
- Livssyklus: Uavhengig av workspace — kan gjenbrukes på tvers av ressurser
- Bruksområde: Multi-workspace scenarios, shared resources, least-privilege access
- Fordeler:
- Granular tilgangskontroll per compute cluster
- Data isolation i delte storage accounts (via ABAC conditions)
- Enklere key rotation og credential management
Oppsett av UAI for workspace:
# workspace-uai.yml
identity:
type: user_assigned
user_assigned_identities:
'<UAI-resource-ID-1>': {}
'<UAI-resource-ID-2>': {}
storage_account: <storage-account-resource-ID>
key_vault: <key-vault-resource-ID>
primary_user_assigned_identity: <UAI-resource-ID-1>
az ml workspace create -f workspace-uai.yml \
--subscription <subscription-id> \
--resource-group <resource-group> \
--name <workspace-name>
RBAC-krav for UAI (minimum):
| Ressurs | Rolle | Hvorfor |
|---|---|---|
| Workspace | Contributor |
Control plane operations |
| Storage Account | Storage Blob Data Contributor |
Data plane access (blob) |
| Key Vault (RBAC-modell) | Key Vault Administrator |
Data plane access |
| Container Registry | Contributor |
Image pull/push |
| Application Insights | Contributor |
Logging og metrics |
Compute Cluster Identity
Compute clusters støtter enten system-assigned eller user-assigned identities (ikke begge samtidig).
Use case: Identity-based data access i treningsjobber
# I treningsjobb — bruk compute cluster sin managed identity
import os
from azure.identity import ManagedIdentityCredential
client_id = os.environ.get('DEFAULT_IDENTITY_CLIENT_ID')
credential = ManagedIdentityCredential(client_id=client_id)
token = credential.get_token('https://storage.azure.com/')
Opprette compute cluster med UAI:
# compute-cluster-uai.yml
name: secure-cluster
type: amlcompute
size: STANDARD_D2_V2
min_instances: 0
max_instances: 4
identity:
type: user_assigned
user_assigned_identities:
- resource_id: "/subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-name>"
2. Role-Based Access Control (RBAC)
Azure Machine Learning bruker Azure RBAC for tilgangskontroll til workspace, data plane og compute resources.
Built-in roller
| Rolle | Tilganger | Bruksområde |
|---|---|---|
AzureML Data Scientist |
Submit jobs, view data, manage models | Standard datavitenskapsrolle |
AzureML Compute Operator |
Manage compute resources | Infrastruktur-team |
Reader |
View workspace metadata | Audit og reporting |
Contributor |
Full workspace access | Workspace administrators |
Custom Roles for MLOps
Eksempel: Minste privilegium for production deployment
{
"Name": "MLOps Deployment Role",
"Description": "Can deploy models to production endpoints",
"Actions": [
"Microsoft.MachineLearningServices/workspaces/onlineEndpoints/write",
"Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write",
"Microsoft.MachineLearningServices/workspaces/models/*/read"
],
"NotActions": [],
"AssignableScopes": [
"/subscriptions/<subscription-id>/resourceGroups/<rg>/providers/Microsoft.MachineLearningServices/workspaces/<workspace>"
]
}
az role definition create --role-definition mlops-deploy-role.json
az role assignment create --assignee <identity-id> \
--role "MLOps Deployment Role" \
--scope "/subscriptions/<sub-id>/resourceGroups/<rg>"
RBAC Best Practices for MLOps
- Separate Dev/Prod permissions: Bruk forskjellige roller for utvikling og produksjon
- Compute cluster access: Grant
Storage Blob Data Readertil compute identity for datastore access - Endpoint authentication: Bruk Entra ID token-based auth fremfor static keys
- Service principal rotation: Bruk managed identities fremfor service principals med secrets
- Just-in-time access: Kombiner med Microsoft Entra PIM for privileged operations
3. Nettverksisolasjon
Managed Virtual Network (anbefalt for nye workspaces)
Azure ML Managed VNet tilbyr fully managed nettverksisolasjon uten manuell konfigurasjon.
Støttede compute-typer:
- Serverless compute (inkl. Spark)
- Compute cluster
- Compute instance
- Managed online endpoint
- Batch endpoint
Outbound-modi:
| Modus | Beskrivelse | Use case |
|---|---|---|
Allow Internet Outbound |
Tillater all utgående trafikk | Dev/test miljøer |
Allow Only Approved Outbound |
Kun godkjente private endpoints/FQDNs | Produksjon (anbefalt) |
Oppsett:
az ml workspace create --name <workspace> \
--resource-group <rg> \
--managed-network allow_only_approved_outbound
Private Endpoint for Workspace
Private endpoints reduserer attack surface ved å eksponere workspace kun via private IP-adresser i VNet.
Opprett private endpoint:
az network private-endpoint create \
--name <pe-name> \
--vnet-name <vnet-name> \
--subnet <subnet-name> \
--private-connection-resource-id "/subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.MachineLearningServices/workspaces/<workspace>" \
--group-id amlworkspace \
--connection-name workspace \
--location <location>
DNS-konfigurasjon (påkrevd):
# Opprett private DNS zone for workspace API
az network private-dns zone create \
--resource-group <rg> \
--name privatelink.api.azureml.ms
az network private-dns link vnet create \
--resource-group <rg> \
--zone-name privatelink.api.azureml.ms \
--name ml-dns-link \
--virtual-network <vnet-name> \
--registration-enabled false
az network private-endpoint dns-zone-group create \
--resource-group <rg> \
--endpoint-name <pe-name> \
--name ml-zone-group \
--private-dns-zone privatelink.api.azureml.ms \
--zone-name privatelink.api.azureml.ms
Storage Account Private Endpoints
For å unngå data exfiltration må storage accounts også isoleres:
Påkrevde private endpoints:
- Blob (alltid)
- File (alltid)
- Queue (kun for Batch endpoints / ParallelRunStep)
- Table (kun for Batch endpoints / ParallelRunStep)
Trusted service exception:
I Storage Account firewall, velg:
- "Selected networks"
- Resource instances:
Microsoft.MachineLearningServices/Workspace - Instance name:
<your-workspace>
Dette tillater workspace managed identity å kommunisere med storage selv bak firewall.
4. Datakryptering
Encryption at Rest
Platform-managed keys (standard):
- Storage accounts: AES-256
- Cosmos DB metadata: Microsoft-managed keys
- Compute OS disks: Microsoft-managed keys
Customer-managed keys (CMK):
CMK gir ekstra kontroll over krypteringsnøkler, spesielt viktig for:
- GDPR compliance
- Regulerte sektorer (finans, helse, offentlig sektor)
- "Bring your own key" (BYOK) policies
Ressurser som bruker CMK:
- Azure Cosmos DB (workspace metadata)
- Azure AI Search (workspace indexes)
- Azure Storage (workspace artifacts)
Oppsett av CMK-workspace:
# Opprett Key Vault med soft delete + purge protection
az keyvault create --name <kv-name> \
--resource-group <rg> \
--enable-soft-delete \
--enable-purge-protection
# Opprett RSA-nøkkel (minimum 3072-bit)
az keyvault key create \
--vault-name <kv-name> \
--name workspace-cmk \
--kty RSA \
--size 3072
# Hent nøkkel-ID
KEY_ID=$(az keyvault key show --vault-name <kv-name> \
--name workspace-cmk --query key.kid -o tsv)
# Opprett workspace med CMK
az ml workspace create --name <workspace> \
--resource-group <rg> \
--customer-managed-key $KEY_ID \
--key-vault /subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.KeyVault/vaults/<kv-name>
Begrensninger:
- Nøkkelen må være i samme Azure subscription som workspace
- Compute OS-disker kan ikke krypteres med CMK (kun Microsoft-managed keys)
- Temporary disks på compute: Kun kryptert hvis
hbi_workspace=true
High Business Impact (HBI) Workspace
Når hbi_workspace=true:
- Lokal scratch disk på compute instance krypteres
- Temporary disk på compute cluster krypteres
- Reduserer telemetri som Microsoft samler inn
- Ekstra kryptering i Microsoft-managed environments
az ml workspace create --name <workspace> \
--resource-group <rg> \
--hbi-workspace true
Encryption in Transit
All kommunikasjon bruker TLS 1.2:
- Workspace ↔ Storage Account
- Workspace ↔ Compute
- Studio ↔ Workspace API
- Inference clients ↔ Online endpoints
For online endpoints: Bruk TLS/SSL certificates for custom domains.
5. Data Exfiltration Prevention
Risikoscenarier:
- Malicious actors med tilgang til workspace sender treningsdata til ekstern storage
- Ukonfigurerte compute resources med åpen internett-tilgang
Mitigations
1. Managed VNet med approved outbound:
az ml workspace update --name <workspace> \
--managed-network allow_only_approved_outbound
2. Disable public network access:
az ml online-endpoint create --file endpoint.yml \
--set public_network_access=disabled
3. Audit outbound dependencies:
Dokumenter godkjente FQDNs/Service Tags:
AzureActiveDirectoryAzureFrontDoor.FrontEndMicrosoftContainerRegistryAzureMonitor
4. Private endpoints for all storage:
Kombiner workspace private endpoint med storage private endpoints for full isolation.
Arkitekturmønstre
Mønster 1: Zero Trust MLOps Architecture
Komponenter:
[On-premises dev environment]
↓ (Azure VPN Gateway / ExpressRoute)
[Azure Virtual Network]
↓ (Private Endpoint)
[Workspace (private endpoint)]
↓ (Managed Identity auth)
[Storage (private endpoint)]
[Key Vault (private endpoint)]
[Container Registry (private endpoint)]
↓ (Managed VNet compute)
[Compute Cluster (no public IP)]
↓ (Private endpoint)
[Online Endpoint (public_network_access=disabled)]
Sikkerhetslag:
- Perimeter: VPN/ExpressRoute (ingen direkte internett-tilgang)
- Identity: Managed identities + Entra ID MFA
- Network: Private endpoints + NSGs + Managed VNet
- Data: CMK + encryption in transit
- Audit: Azure Monitor + Log Analytics + Sentinel
Mønster 2: Multi-Workspace Data Isolation
For organisasjoner med flere team som deler storage/keyvault/ACR:
Enable data isolation:
az ml workspace create --name <workspace> \
--resource-group <rg> \
--enable-data-isolation \
--storage-account <shared-storage-resource-id> \
--key-vault <shared-kv-resource-id>
Effekter:
- Storage containers prefix:
{workspace-guid}-azureml-blobstore - Key Vault secrets prefix:
{workspace-guid}- - Container Registry images prefix:
{workspace-guid}/ - Workspace identity får ABAC condition som kun tillater tilgang til egne containere
Default for workspace kinds:
| Workspace Kind | Data Isolation Default |
|---|---|
hub |
Enabled |
project |
Enabled (arvet fra hub) |
default |
Disabled |
Mønster 3: User Identity Pass-through for Training Jobs
For fine-grained tilgangskontroll hvor ulike data scientists har ulike tilganger:
Oppsett:
# training-job.yml
command: python train.py --input-data ${{inputs.data}}
inputs:
data:
type: uri_folder
path: azureml://datastores/secured-data/paths/team-a/
environment: azureml://registries/azureml/environments/sklearn-1.5
compute: azureml:secure-cluster
identity:
type: user_identity
az ml job create --file training-job.yml
Krav:
- Datastore må bruke identity-based authentication (ikke cached credentials)
- User må ha
Storage Blob Data Readerpå storage account - Kun støttet via CLI/SDK v2 (ikke Studio)
- Pipeline steps må konfigureres individuelt (ikke root-level)
Fordeler:
- Audit trails viser hvilken bruker som aksesserte hvilke data
- Reuse av eksisterende storage permissions
- Segregation of duties mellom data scientists
Beslutningsveiledning
Når velge System-Assigned vs. User-Assigned Managed Identity?
Velg System-Assigned når:
- ✅ Enkelt workspace med dedikerte ressurser
- ✅ Prototype/dev miljøer
- ✅ Minimal administrative overhead ønskes
Velg User-Assigned når:
- ✅ Delte ressurser på tvers av workspaces
- ✅ Least-privilege access per compute cluster
- ✅ Data isolation i multi-tenant scenarios
- ✅ Enklere key rotation / credential lifecycle management
Når bruke Private Endpoints?
Alltid bruk private endpoints når:
- ✅ Produksjonsworkloads med sensitive data
- ✅ Compliance-krav (GDPR, NIS2, ISO 27001)
- ✅ Cross-premises connectivity (hybrid cloud)
- ✅ Zero-trust arkitektur implementeres
Kan utelates i:
- ❌ Development/test workspaces uten sensitive data
- ❌ Proof-of-concepts med syntetiske data
Når bruke Customer-Managed Keys?
Påkrevd for:
- ✅ Regulerte sektorer (bank, helse, offentlig sektor)
- ✅ Contractual "bring your own key" krav
- ✅ Data residency compliance (GDPR Article 44-50)
Vurder kostnad/kompleksitet:
- ⚠️ Ekstra Azure-kostnader (Cosmos DB, AI Search)
- ⚠️ Key rotation procedures må etableres
- ⚠️ Disaster recovery kompleksitet øker
Integrasjon med Microsoft-stakken
Azure DevOps Integration
Service connection med managed identity:
# Opprett service principal for Azure DevOps
az ad sp create-for-rbac --name "azdo-ml-connection" \
--role Contributor \
--scopes /subscriptions/<sub-id>/resourceGroups/<rg>
Eller bruk workload identity federation (anbefalt):
Azure DevOps → Project Settings → Service connections → Azure Resource Manager → Workload Identity federation
Pipeline secret management:
# azure-pipelines.yml
variables:
- group: ml-production-secrets # Hentet fra Key Vault
steps:
- task: AzureCLI@2
inputs:
azureSubscription: 'ml-service-connection'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az ml job create --file training-job.yml \
--set environment_variables.STORAGE_KEY=$(storage-account-key)
GitHub Actions Integration
OIDC authentication (ingen secrets):
# .github/workflows/train-model.yml
name: Train ML Model
on: [push]
permissions:
id-token: write
contents: read
jobs:
train:
runs-on: ubuntu-latest
steps:
- uses: azure/login@v1
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Submit training job
run: |
az ml job create --file job.yml \
--workspace-name ${{ vars.WORKSPACE_NAME }}
Azure Monitor & Sentinel Integration
Enable diagnostic logs:
az monitor diagnostic-settings create \
--name workspace-diagnostics \
--resource /subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.MachineLearningServices/workspaces/<workspace> \
--logs '[{"category":"AmlComputeClusterEvent","enabled":true}]' \
--workspace /subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.OperationalInsights/workspaces/<log-analytics>
Sentinel KQL query for anomaly detection:
AmlComputeClusterNodeEvent
| where TimeGenerated > ago(24h)
| where EventType == "NodeStateChange"
| summarize NodeChanges = count() by NodeId, bin(TimeGenerated, 1h)
| where NodeChanges > 10 // Anomali: Mer enn 10 state changes per time
Offentlig sektor (Norge)
Compliance-krav
Krav fra Digitaliseringsdirektoratet:
-
Logging og sporbarhet (Referansekatalogen for IT-standarder):
- Bruk Azure Monitor med minimum 90 dagers retention
- Integrer med Sentinel for security event monitoring
- Implementer audit trails for alle data access operations
-
Tilgangskontroll (NSM Grunnprinsipper for IKT-sikkerhet):
- Multifaktor autentisering for alle brukerkontoer (Entra ID MFA)
- Principle of least privilege (RBAC custom roles)
- Regular access reviews (Entra ID Access Reviews)
-
Datakryptering:
- TLS 1.2/1.3 for data in transit
- Customer-managed keys for data at rest (anbefalt for "Begrenset" og høyere)
- Key rotation procedures (minimum årlig)
Skytjenesteleverandør-vurdering (Difis krav)
Azure Machine Learning oppfyller:
- ✅ Databehandleravtale (DPA) med Microsoft
- ✅ ISO 27001, ISO 27018, SOC 2 Type II sertifiseringer
- ✅ GDPR compliance (EU data residency)
- ✅ Norway region availability (Oslo/Norway East)
Ekstra tiltak for "Begrenset" klassifiserte data:
- Bruk customer-managed keys
- Enable data isolation for multi-tenant scenarios
- Implementer private endpoints + Managed VNet
- Document data flows i ROS-analyse
Kostnad og lisensiering
Kostnadsdrivere for Security Features
| Feature | Ekstra kostnad | Estimat (NOK/måned) |
|---|---|---|
| Private Endpoint | Per endpoint | ~50 kr/endpoint + inbound/outbound data |
| VPN Gateway (S2S) | Gateway + bandwidth | ~1500-5000 kr (avhengig av SKU) |
| Customer-Managed Keys | Cosmos DB, AI Search | +30-50% av workspace cost |
| Managed VNet | Inkludert | 0 kr (ingen ekstra kostnad) |
| Azure Monitor logs | Per GB ingested | ~25 kr/GB (etter 5 GB free tier) |
Lisensiering
Ingen spesielle lisenser påkrevd for security features:
- Managed identities: Inkludert i Azure-abonnement
- RBAC: Inkludert i Azure-abonnement
- Private Link: Påløper kun infrastructure costs
- Customer-managed keys: Krever Azure Key Vault (standard/premium)
Microsoft Entra ID P2 (anbefalt for enterprise):
- Privileged Identity Management (PIM)
- Conditional Access policies
- Access Reviews
- Identity Protection
For arkitekten (Cosmo)
Anbefalte decision points i arkitekturgesprekker
1. Identity strategy:
- "Har dere delte storage accounts eller dedikerte per team?"
- Delt → Bruk UAI + data isolation
- Dedikert → SAI er tilstrekkelig
2. Network isolation level:
- "Hvilken klassifisering har dataene?" (Åpen/Intern/Begrenset/Fortrolig)
- Begrenset+ → Private endpoints obligatorisk
- Intern → Vurder managed VNet med approved outbound
3. Compliance requirements:
- "Har dere DPA med 3rd-party data processors?"
- Ja → Implementer CMK for "data processor independence"
- Nei → Vurder kostnad/kompleksitet trade-off
4. User vs. compute identity for data access:
- "Trenger dere audit trails per data scientist?"
- Ja → User identity pass-through
- Nei → Compute managed identity (enklere)
Red flags og mitigations
🚨 Red flag: "Vi har deaktivert firewall på storage account for å unngå connectivity issues"
- Risk: Data exfiltration, unauthorized access
- Mitigation: Implementer trusted service exception + private endpoints
🚨 Red flag: "Vi bruker storage account keys i environment variables"
- Risk: Credentials leakage i logs/telemetri
- Mitigation: Bytt til identity-based data access (no cached credentials)
🚨 Red flag: "Compute clusters har public IP for SSH-tilgang"
- Risk: Brute force attacks, lateral movement
- Mitigation: Disable public IP (
enableNodePublicIp=false) + use Azure Bastion for mgmt
🚨 Red flag: "Vi har én workspace for både dev og prod"
- Risk: Privilege escalation, accidental production changes
- Mitigation: Separate workspaces med ulike RBAC policies + subscription boundaries
Typical architectures — security maturity levels
Level 1 — Prototype (minimal security):
- System-assigned managed identities
- Public endpoints
- Platform-managed keys
- Default RBAC roles
- Use case: PoC, hackathons, training environments
Level 2 — Development (basic security):
- User-assigned managed identities
- Managed VNet (allow internet outbound)
- Platform-managed keys
- Custom RBAC roles
- Diagnostic logs → Log Analytics
- Use case: Development teams, non-sensitive data
Level 3 — Production (enterprise security):
- User-assigned managed identities + data isolation
- Private endpoints + Managed VNet (approved outbound only)
- Customer-managed keys
- Conditional access policies
- Azure Monitor + Sentinel integration
- Regular access reviews
- Use case: Regulated industries, sensitive data, compliance requirements
Kilder og verifisering
MCP Calls: 8 (microsoft-learn docs search + fetch, code samples) Primærkilder:
- Enterprise security and governance for Azure Machine Learning
- Set up authentication between Azure Machine Learning and other services
- Manage access to Azure Machine Learning workspaces
- Azure security baseline for Machine Learning Service
- Customer-managed keys for Azure Machine Learning
- Configure a private endpoint for an Azure Machine Learning workspace
- Secure an Azure Machine Learning workspace with virtual networks
- Data encryption with Azure Machine Learning (Verified MCP 2026-04 — Key updates: Azure Data Lake Storage Gen1 retired 2024-02-29; Azure Database for PostgreSQL Single Server retired 2025-03-28; Azure Database for MySQL Single Server retired 2024-09-16. Use Gen2 / Flexible Server variants.)
Sist verifisert: 2026-04-10 Neste review: Q3 2026 (ved nye identity/network features i Azure ML)
Confidence markers i dette dokumentet:
- ✅ HIGH confidence: Offisiell dokumentasjon + kodeeksempler fra Microsoft Learn
- ⚠️ MEDIUM confidence: Utledet fra best practices og architecture patterns
- ❓ LOW confidence: Ikke aktuelt (alle påstander er verifisert mot offisiell dokumentasjon)
Azure Machine Learning VNet Security (2026 Update)
Managed Virtual Networks (recommended approach): Azure ML handles network isolation automatically.
Use az ml workspace update with managed network settings instead of manual VNet configuration.
Private Endpoint for Workspace:
- Connects workspace via private IP addresses within your VNet
- Requires securing all dependent resources: Storage, Key Vault, Container Registry
- Private endpoint alone does NOT ensure end-to-end security — all components must be secured
Storage Account Security:
- Private endpoint (recommended): Blob, File, Queue, Table subresources
- Service endpoint: Must be same VNet and subnet as compute
- Set
Microsoft.MachineLearningServices/Workspaceas trusted resource type
Required outbound traffic service tags:
AzureActiveDirectory(TCP 443) — authenticationAzureMachineLearning(TCP 443, 18881, UDP 5831)Storage.region(TCP 443) — data accessMicrosoftContainerRegistry.region(TCP 443) — Docker images
Secure connectivity options: Azure VPN Gateway (Point-to-site/Site-to-site), ExpressRoute, Azure Bastion (jump box)
ACR requirements: Premium SKU required for private endpoints; ACR must be in same VNet or peered VNet.