# Azure AI Services - Networking, Security and Private Endpoints **Last updated:** 2026-06-19 | Verified: MCP 2026-06-19 **Status:** GA > **Navngivning 2026-04:** Microsoft har omdøpt "Azure Cognitive Services" til **"Azure AI Foundry Tools"** (eller kortform "Foundry Tools") i dokumentasjonen. API-endepunkter, RBAC-roller og ARM-ressurstyper beholder "CognitiveServices" i identifikatoren. Alle nye dokumentasjonsreferanser bruker "Foundry Tools". **Category:** Azure AI Services (Foundry Tools) --- ## Introduksjon Azure AI Services (tidligere Cognitive Services) tilbyr et lagdelt sikkerhetsrammeverk for nettverksisolasjon som beskytter AI-modeller, data og tjenester mot uautorisert tilgang. Private endpoints, virtual networks og service endpoints gir fleksible sikkerhetskonfigurasjoner som passer både skytilkoblede og hybrid-scenarier. Denne kunnskapsreferansen dekker: - Private endpoints og Azure Private Link-konfigurasjon - Virtual network-integrasjon med service endpoints - IP-baserte firewall-regler og nettverkstilgangskontroll - Managed identity-autentisering for nettverkssikker tilgang - DNS-konfigurasjon for private endpoints - Trusted services og nettverksunntak **Viktig kontekst:** Azure AI Services støtter **ikke** direkte VNet-injeksjon (deployes ikke inn i kundens VNet), men bruker i stedet private endpoints for sikker tilkobling fra VNet til tjenesten. --- ## Kjernekomponenter ### 1. Private Endpoints og Azure Private Link Private endpoints gir dedikert nettverkstilgang til Azure AI Services uten eksponering mot offentlig internett. | Komponent | Funksjon | Konfigurasjon | |-----------|----------|---------------| | **Private Endpoint** | Dedikert nettverksgrensesnitt i kundens VNet | Tildeles privat IP fra VNet-adresseområdet | | **Private Link Service** | Azure-backbone-tilkobling | Eliminerer internett-eksponering | | **Private DNS Zone** | Navneoppløsning for private endpoints | `privatelink.cognitiveservices.azure.com` (AI Services)
`privatelink.openai.azure.com` (Azure OpenAI) | | **Target Sub-resource** | Endepunkttype | `account` (AI Services, Azure OpenAI) | **Fordeler:** - Eliminerer offentlig internett-eksponering fullstendig - Trafikk går over Microsoft backbone network - Fungerer med VPN Gateway og ExpressRoute for on-premises tilgang - Konsistent tilkoblings-string for både private og public endpoints - Støtter både system-assigned og user-assigned managed identities **Begrensninger:** - Krever Basic tier eller høyere (ikke Free tier) - Custom subdomain er påkrevd for private endpoints - Speech service krever separate endpoint-konfigurasjoner - Portal-tilgang kan kreve ekstra konfigurasjon ### 2. Service Endpoints Service endpoints gir optimalisert ruting fra VNet til Azure AI Services uten private IP-adresser. | Aspekt | Beskrivelse | |--------|-------------| | **Service Tag** | `Microsoft.CognitiveServices` | | **Routing** | Optimal sti fra VNet til tjenesten via Azure backbone | | **Identitet** | Subnet- og VNet-identitet sendes med hver forespørsel | | **Kombinasjon** | Kan brukes sammen med IP-regler (maks 100 VNet-regler per ressurs) | **Når bruke service endpoints vs private endpoints:** - **Service Endpoints:** Enklere oppsett, gratis, men tjenesten beholder offentlig IP - **Private Endpoints:** Full isolasjon, privat IP, bedre sikkerhet, men høyere kostnad ### 3. IP Firewall-regler (Network ACLs) Service-level IP filtering for å begrense tilgang til godkjente IP-adresser. | Regeltype | Format | Eksempel | Bruksområde | |-----------|--------|----------|-------------| | **Enkelt IP** | `x.x.x.x` | `203.0.113.10` | Spesifikt klientmaskin | | **IP-range** | CIDR-notasjon | `10.0.0.0/24` | Subnet eller on-premises nettverk | | **IPv4 kun** | RFC 1918-kompatibel | Private: `10.*`, `172.16-31.*`, `192.168.*` ikke tillatt | Kun offentlige IP-adresser | **Konfigurasjonsalternativer:** - **All networks:** Åpen tilgang (default) - **Selected networks:** Kun godkjente VNets/IPs - **Disabled:** Ingen public access (kun private endpoints) **Viktig:** Default action må settes til `Deny` for at nettverksregler skal ha effekt. ### 4. Managed Identity og Autentisering Managed identity eliminerer behovet for API-nøkler ved nettverksikrede tilkoblinger. | Type | Levetid | Bruksområde | |------|---------|-------------| | **System-assigned** | Knyttet til ressurs-levetid | Standard for enkle scenarier | | **User-assigned** | Uavhengig av ressurs | Multi-ressurs, delt identitet | **Konfigurering via Azure Portal:** 1. Naviger til AI Services-ressurs → **Identity** 2. Aktiver **System assigned** eller legg til **User assigned** 3. Tildel RBAC-rolle på målressurs: `Cognitive Services User` eller `Cognitive Services OpenAI User` **Trusted Services Bypass:** - Aktiveres med `networkAcls.bypass: "AzureServices"` - Tillater Azure AI Search, Azure Machine Learning å kalle tjenesten via managed identity - Tjenesten validerer JWT-token fra trusted services --- ## Arkitekturmønstre ### 1. Full Private Endpoint-isolasjon **Scenario:** Maksimal sikkerhet, null internett-eksponering. ``` ┌─────────────────────────────────────────────┐ │ Azure Virtual Network (10.0.0.0/16) │ │ │ │ ┌─────────────────────────────────────┐ │ │ │ App Subnet (10.0.1.0/24) │ │ │ │ - Web App / Function App │ │ │ │ - VNet Integration │ │ │ └─────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────┐ │ │ │ Private Endpoint Subnet │ │ │ │ (10.0.2.0/24) │ │ │ │ - PE for Azure OpenAI (10.0.2.4) │───┼──> Azure OpenAI │ │ - PE for AI Services (10.0.2.5) │───┼──> AI Services │ │ - PE for Key Vault (10.0.2.6) │───┼──> Key Vault │ │ - PE for Storage (10.0.2.7) │───┼──> Storage │ └─────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────┐ │ │ │ Azure Bastion Subnet (10.0.3.0/26) │ │ │ │ - Bastion Host │ │ │ └─────────────────────────────────────┘ │ └─────────────────────────────────────────────┘ │ └──> On-premises (VPN Gateway / ExpressRoute) ``` **Konfigurasjonsrekkefølge:** 1. Opprett VNet med subnets (app, private endpoint, bastion) 2. Opprett Azure AI Services med custom subdomain 3. Opprett private endpoint i dedikert subnet 4. Konfigurer Private DNS Zone (`privatelink.cognitiveservices.azure.com`) 5. Sett `publicNetworkAccess: Disabled` på AI Services 6. Aktiver managed identity på applikasjon 7. Tildel RBAC-rolle til applikasjonen på AI Services **Best practices:** - Bruk dedikert subnet for private endpoints (anbefalt `/26` eller større) - Aktiver `PrivateEndpointNetworkPolicies: Disabled` på subnet - Integrer med Private DNS Zone for automatisk navneoppløsning - Bruk Azure Bastion for sikker management-tilgang ### 2. Hybrid Service Endpoint + IP Firewall **Scenario:** Koste-effektiv sikkerhet med VNet + on-premises tilgang. ``` ┌─────────────────────────────────────────────┐ │ Azure Virtual Network │ │ │ │ ┌─────────────────────────────────────┐ │ │ │ App Subnet │ │ │ │ - Service Endpoint enabled │ │ │ │ (Microsoft.CognitiveServices) │ │ │ └─────────────────────────────────────┘ │ │ │ │ │ └──────────────┐ │ └─────────────────────────────┼───────────────┘ │ ▼ ┌─────────────────┐ │ Azure AI Service│ │ Firewall: │ │ - VNet rule │ │ - IP allow: │ │ 203.0.113.0/24│ <──── On-premises public IP └─────────────────┘ ``` **Konfigurasjon:** 1. Aktiver service endpoint på subnet: `Microsoft.CognitiveServices` 2. Konfigurer AI Services firewall: - Default action: `Deny` - VNet rule: tillat spesifikk subnet - IP rule: tillat on-premises public IP range ### 3. Hub-Spoke med Centralisert Network Security **Scenario:** Enterprise-arkitektur med sentralisert sikkerhet. ``` ┌─────────────────────────────┐ │ Hub VNet (10.0.0.0/16) │ │ - Azure Firewall │ │ - VPN Gateway │ │ - Private DNS Zones │ └─────────────┬───────────────┘ │ VNet Peering ┌────────────┴────────────┐ │ │ ┌──────▼──────┐ ┌──────▼──────┐ │ Spoke 1 VNet│ │ Spoke 2 VNet│ │ AI Workload │ │ AI Workload │ │ - PEs │ │ - PEs │ └─────────────┘ └─────────────┘ ``` **Nettverksflyt:** - Outbound trafikk → Azure Firewall (FQDN filtering) - Inbound management → Azure Bastion i Hub - Private DNS Zones deles via VNet-links ### 4. Azure OpenAI "On Your Data" med Network Isolation **Scenario:** RAG-løsning med Azure AI Search + Storage bak private endpoints. ``` ┌────────────────────────────────────────────────┐ │ VNet (3 subnets) │ │ │ │ 1. VPN Gateway Subnet │ │ 2. Private Endpoint Subnet: │ │ - Azure OpenAI PE │ │ - Azure AI Search PE (shared private link) │ │ - Storage Account PE │ │ 3. Web App Outbound Integration Subnet │ └────────────────────────────────────────────────┘ ┌─────────────┐ Managed Identity ┌──────────────┐ │ Azure OpenAI├───────────────────>│ AI Search │ │ │ (trusted service) │ (embedding) │ └─────────────┘ bypass firewall └──────────────┘ ``` **Spesialkonfigurasjon:** - Azure OpenAI: `networkAcls.bypass: "AzureServices"` (trusted service) - AI Search: managed identity med `Cognitive Services OpenAI User` rolle - Storage: private endpoint + RBAC for OpenAI managed identity --- ## Beslutningsveiledning ### Når bruke hvilken nettverkssikkerhet? | Scenario | Anbefalt løsning | Rasjonale | |----------|------------------|-----------| | **Maksimal sikkerhet, compliance-kritisk** | Private Endpoints + Disable Public Access | Zero Trust, ingen internett-eksponering | | **Kostnadsbevisst, medium sikkerhet** | Service Endpoints + IP Firewall | Gratis, god sikkerhet, enklere oppsett | | **Hybrid on-premises + Azure** | Private Endpoints + VPN Gateway / ExpressRoute | Privat tilkobling til on-premises | | **Multi-region, lav latency** | Private Endpoints per region | Redusert latency, regional isolasjon | | **Dev/Test miljø** | IP Firewall kun | Lavest kompleksitet, akseptabel risiko | ### Sikkerhetsnivå-matriks | Tiltak | Sikkerhetsnivå | Kompleksitet | Kostnad | Compliance | |--------|----------------|--------------|---------|------------| | IP Firewall kun | ⭐⭐ | Lav | Gratis | Basis | | Service Endpoints | ⭐⭐⭐ | Medium | Gratis | Medium | | Private Endpoints | ⭐⭐⭐⭐⭐ | Høy | Medium | Høy (GDPR, HIPAA) | | PE + Disabled Public | ⭐⭐⭐⭐⭐ | Høy | Medium | Maksimal | ### DNS-konfigurasjon: Azure Private DNS vs Custom DNS **Azure Private DNS (anbefalt):** - Automatisk CNAME-record oppdatering - Integrert med VNet - Ingen ekstra konfigurasjon **Custom DNS (on-premises DNS server):** - Krev conditional forwarder til Azure DNS (`168.63.129.16`) - Manuell A-record for private endpoint IP - Nødvendig for hybrid-scenarier **FQDN-resolusjon:** - Fra VNet: `myaccount.cognitiveservices.azure.com` → `10.0.2.5` (privat IP) - Fra internett: `myaccount.cognitiveservices.azure.com` → public IP (hvis ikke disabled) --- ## Integrasjon med Microsoft-stakken ### 1. Azure AI Foundry (tidligere AI Studio) **Portal-tilgang med private endpoints:** - Custom subdomain må brukes i alle API-kall - Portal-tilgang krever VPN eller Azure Bastion til VNet - Service tags for portal: `AzureActiveDirectory`, `AzureFrontDoor.Frontend`, `AzureResourceManager`, `CognitiveServicesManagement`, `CognitiveServicesFrontEnd` **Managed VNet i Foundry:** - Foundry hub kan ha egen managed VNet - Workspace inheriter nettverksregler fra hub - Private endpoints til Foundry Tools konfigureres separat ### 2. Power Platform Integration **Power Automate / Power Apps med private endpoints:** - Krever On-premises data gateway for VNet-tilkobling - Azure Relay hybrid connection ikke støttet direkte - Custom connector må bruke public endpoint med IP firewall **Workaround for private endpoints:** 1. Deploy Azure Function med VNet integration 2. Function kaller AI Services via private endpoint 3. Custom connector kaller Azure Function (public endpoint med auth) ### 3. Azure Machine Learning **AML Workspace med AI Services private endpoints:** - Shared private link fra AML til AI Services - Managed identity med `Cognitive Services User` rolle - Trusted service bypass: `networkAcls.bypass: "AzureServices"` **Compute Cluster konfigurasjon:** - Cluster må være i samme VNet (eller peered VNet) - NSG må tillate outbound til `AzureMachineLearning` service tag ### 4. Azure AI Search (for RAG) **Shared Private Link:** - AI Search kan opprette private endpoint til AI Services - Eliminerer behovet for trusted service bypass - Konfigureres via AI Search → Networking → Shared Private Links **Trusted Service alternativ:** - AI Search managed identity med RBAC-rolle på AI Services - `networkAcls.bypass: "AzureServices"` på AI Services - System-assigned managed identity authentication påkrevd --- ## Offentlig sektor (Norge) ### 1. Compliance-krav | Regelverk | Relevante krav | Nettverkstiltak | |-----------|----------------|-----------------| | **Personvernforordningen (GDPR)** | Art. 32: Tekniske sikkerhetstiltak | Private endpoints, kryptering i transit (TLS 1.2+) | | **Nasjonal sikkerhetsmyndighet (NSM)** | Grunnprinsipper for IKT-sikkerhet | Network segmentation, least privilege access | | **Schrems II** | Data Processing Agreement-krav | Private endpoints reduserer eksponering mot utenlandsk jurisdiksjon | | **eHelse** | Norm for informasjonssikkerhet (HelseNorge) | Nettverksisolasjon, logging, audit trail | ### 2. Offentlig Sektor-spesifikke hensyn **Data Residency:** - Private endpoints endrer ikke data location (fortsatt i Azure-regionen) - Norway East / Norway West anbefales for offentlig sektor - Private Link-trafikk forblir innenfor Microsoft backbone network (ikke public internet) **Schrems II og Cloud Act:** - Private endpoints reduserer ikke juridisk ansvar ved Cloud Act-forespørsler - Tilleggstiltak: Customer-Managed Keys (CMK), Microsoft Purview audit logs **Kostnadsmodell:** - Private Endpoint: ~40 NOK/måned per endpoint - Data Processing (ingress): Gratis - Data Processing (egress): ~0.40 NOK/GB (intra-region via private link) --- ## Kostnad og lisensiering ### 1. Nettverkskomponenter - Priser (NOK, ca. 2026) | Komponent | Kostnad | Enhet | Merknad | |-----------|---------|-------|---------| | **Private Endpoint** | ~40 NOK | per endpoint/måned | Uavhengig av trafikkmengde | | **Data Processing (inbound)** | Gratis | per GB | Ingen kostnad for ingress | | **Data Processing (outbound)** | ~0.40 NOK | per GB | Intra-region via private link | | **Service Endpoint** | Gratis | - | Ingen ekstra kostnad | | **VNet Peering** | ~0.08 NOK | per GB (intra-region) | For hub-spoke arkitektur | | **Azure Bastion** | ~1200 NOK | per måned (Basic) | For secure management access | | **VPN Gateway** | ~2400 NOK | per måned (Basic) | For on-premises tilkobling | **Estimert månedskostnad for typisk oppsett:** - **SMB (1 AI Service + Storage):** ~80 NOK/måned (2 private endpoints) - **Enterprise (3 AI Services + Search + Storage + Key Vault):** ~240 NOK/måned (6 private endpoints) + Bastion/VPN ### 2. AI Services Tier-krav | Tier | Private Endpoints | IP Firewall | Service Endpoints | |------|-------------------|-------------|-------------------| | **Free** | ❌ Ikke støttet | ❌ Ikke støttet | ❌ Ikke støttet | | **Basic** | ✅ Støttet | ✅ Støttet | ✅ Støttet | | **Standard** | ✅ Støttet | ✅ Støttet | ✅ Støttet | **Minstekrav:** Basic tier (S0) eller høyere for nettverkssikkerhet. ### 3. Hidden Costs å være obs på - **DNS Zone:** ~4 NOK/måned per Private DNS Zone + ~0.004 NOK per 1000 queries - **Data Egress:** Trafikk ut av Azure region (ikke via private link) kan bli dyrt - **Network Watcher:** Flowlogger for NSG koster ~40 NOK/måned per NSG - **Log Analytics:** Ingest av network logs (pris avhenger av volum) --- ## For arkitekten (Cosmo) ### 1. Oppstartssekvens for Private Endpoint-prosjekt **Pre-deployment checklist:** 1. ✅ Validert at AI Services tier er Basic eller høyere 2. ✅ Planlagt IP-adresseområder (VNet, subnets) 3. ✅ Identifisert custom subdomain for AI Services-ressurs 4. ✅ Avklart DNS-strategi (Azure Private DNS vs custom DNS) 5. ✅ Bestemt managed identity-strategi (system vs user-assigned) 6. ✅ RBAC-roller definert (hvem skal ha tilgang til hva) **Deployment-rekkefølge (kritisk!):** 1. Opprett Resource Group 2. Opprett VNet med subnets (app, private endpoint, bastion) 3. Opprett AI Services-ressurs med custom subdomain 4. Opprett Private DNS Zone (`privatelink.cognitiveservices.azure.com`) 5. Link Private DNS Zone til VNet 6. Opprett Private Endpoint (velg target sub-resource: `account`) 7. Verifiser DNS record i Private DNS Zone (A-record for private IP) 8. Sett `publicNetworkAccess: Disabled` på AI Services (etter testing!) 9. Aktiver managed identity på applikasjon 10. Tildel RBAC-rolle (`Cognitive Services User`) til applikasjon **Testing-rekkefølge:** 1. Fra VNet: `nslookup .cognitiveservices.azure.com` → skal returnere privat IP 2. Fra VNet: `Test-NetConnection -Port 443` → skal lykkes 3. Fra internett (før disabled public): `nslookup` → skal returnere public IP 4. API-kall fra VNet med managed identity → skal lykkes 5. API-kall fra internett (etter disabled public) → skal feile (403 Forbidden) ### 2. Troubleshooting-guide | Symptom | Mulig årsak | Løsning | |---------|-------------|---------| | **403 Forbidden fra VNet** | IP firewall blokkerer | Sjekk firewall rules, default action må være Deny med eksplisitt Allow-regel | | **DNS resolves til public IP fra VNet** | Private DNS Zone ikke linket | Link Private DNS Zone til VNet, verifiser A-record | | **Connection timeout** | NSG blokkerer port 443 | Sjekk NSG-regler på subnet, tillat outbound 443 til `CognitiveServices` service tag | | **Portal ikke tilgjengelig** | Service tags mangler | Legg til `AzureFrontDoor.Frontend`, `CognitiveServicesFrontEnd` i firewall/NSG | | **Managed identity auth fails** | RBAC-rolle mangler | Tildel `Cognitive Services User` eller `Cognitive Services OpenAI User` rolle | ### 3. Design-avveininger **Private Endpoints vs Service Endpoints:** | Dimensjon | Private Endpoints | Service Endpoints | |-----------|-------------------|-------------------| | **Sikkerhet** | ⭐⭐⭐⭐⭐ (privat IP) | ⭐⭐⭐⭐ (public IP, VNet-regler) | | **Kompleksitet** | Høy (DNS, subnets) | Lav (enable på subnet) | | **Kostnad** | ~40 NOK/måned per endpoint | Gratis | | **Latency** | Lavest (direkte) | Lavt (optimalisert) | | **Compliance** | Best (Zero Trust) | Godt (nettverksisolasjon) | | **On-prem access** | VPN/ExpressRoute | VPN/ExpressRoute | **Anbefaling:** - **Prod + høy sikkerhet:** Private Endpoints + Disabled Public Access - **Prod + kostnadsfokus:** Service Endpoints + IP Firewall - **Dev/Test:** IP Firewall kun (akseptabel risiko) ### 4. Common Pitfalls (å unngå!) **❌ Aktivere "Disable public access" før private endpoint fungerer:** - Resultat: Fullstendig tap av tilgang (inkludert Azure Portal) - Fix: Test private endpoint grundig først, bruk "Selected networks" som mellomsteg **❌ Glemme custom subdomain:** - Resultat: Private endpoint creation feiler eller DNS resolution fungerer ikke - Fix: Custom subdomain må settes ved opprettelse av AI Services-ressurs **❌ Private DNS Zone ikke linket til alle relevante VNets:** - Resultat: DNS resolves til public IP fra peered VNets - Fix: Link Private DNS Zone til alle VNets som trenger tilgang (hub og spokes) **❌ Bruke `*.privatelink.openai.azure.com` som endpoint URL:** - Resultat: API-kall feiler med HTTPS-feil - Fix: Bruk alltid custom subdomain (`myaccount.openai.azure.com`), DNS håndterer ruting **❌ Managed identity uten RBAC-rolle:** - Resultat: 403 Forbidden selv om nettverkstilgang er OK - Fix: Tildel minst `Cognitive Services User` rolle på AI Services-ressursen ### 5. Production Readiness Checklist **Sikkerhet:** - [ ] Private endpoints aktivert for alle AI Services - [ ] Public network access disabled (eller IP-baserte firewall-regler) - [ ] Managed identity aktivert (eliminerer API-nøkler i kode) - [ ] RBAC-roller tildelt med least privilege - [ ] NSG-regler konfigurert (least privilege) - [ ] Azure Firewall / WAF for outbound/inbound trafikk (enterprise) **Overvåkning:** - [ ] Diagnostic settings aktivert (send logs til Log Analytics) - [ ] Network Watcher flowlogger aktivert (NSG) - [ ] Azure Monitor alerts for nettverksfeil (429, 403, connection timeout) - [ ] Private Link metrics overvåket (bytes in/out, connection count) **Disaster Recovery:** - [ ] Multi-region deployment vurdert (private endpoints per region) - [ ] VNet peering konfigurert for failover - [ ] DNS failover-strategi dokumentert - [ ] Backup-plan for public access (emergency access) **Dokumentasjon:** - [ ] Nettverksdiagram (logical + physical) - [ ] IP-adressering dokumentert (subnets, private endpoint IPs) - [ ] DNS-konfigurasjon dokumentert (zones, records, forwarders) - [ ] RBAC-roller og service principals dokumentert - [ ] Runbook for troubleshooting ### 6. Spør kunden dette (før design) 1. **Sikkerhetsnivå:** - "Har dere compliance-krav som krever zero internett-eksponering?" → private endpoints - "Hva er risikovurdering av data lekkasje?" → akseptabelt nivå for kostnad 2. **Eksisterende nettverk:** - "Har dere eksisterende hub-spoke arkitektur?" → integrering vs ny VNet - "Bruker dere on-premises DNS-servere?" → conditional forwarders trengs 3. **On-premises tilkobling:** - "Trenger brukere on-premises tilgang til AI Services?" → VPN Gateway/ExpressRoute - "Har dere eksisterende ExpressRoute?" → reuse eller ny 4. **Multi-region:** - "Trenger dere DR i annen region?" → private endpoints per region - "Hva er akseptabel RTO/RPO?" → påvirker arkitektur 5. **Kostnadsbudsjett:** - "Hva er månedlig budsjett for nettverksinfrastruktur?" → private endpoints (~40 NOK/stk) vs service endpoints (gratis) - "Er data egress-volum relevant?" → intra-region vs inter-region trafikk ### 7. Quick Reference - Azure CLI/PowerShell **Opprett Private Endpoint (Azure CLI):** ```bash # Hent ressurs-ID for AI Services csResourceId=$(az cognitiveservices account show \ --resource-group myRG \ --name myAIAccount \ --query id --output tsv) # Opprett private endpoint az network private-endpoint create \ --resource-group myRG \ --name myAIPrivateEndpoint \ --location norwayeast \ --vnet-name myVNet \ --subnet privateEndpointSubnet \ --private-connection-resource-id $csResourceId \ --group-id account \ --connection-name myConnection # Opprett DNS zone group (automatisk A-record) az network private-endpoint dns-zone-group create \ --resource-group myRG \ --endpoint-name myAIPrivateEndpoint \ --name myDNSZoneGroup \ --private-dns-zone privatelink.cognitiveservices.azure.com \ --zone-name cognitiveservices ``` **Disable Public Access (Azure CLI):** ```bash az cognitiveservices account update \ --resource-group myRG \ --name myAIAccount \ --set properties.publicNetworkAccess=Disabled ``` **Aktiver Managed Identity (Azure CLI):** ```bash az cognitiveservices account identity assign \ --resource-group myRG \ --name myAIAccount ``` **Test DNS Resolution (PowerShell):** ```powershell # Fra VNet VM - skal returnere privat IP nslookup myaccount.cognitiveservices.azure.com # Test port 443 Test-NetConnection -ComputerName 10.0.2.5 -Port 443 ``` --- ## Kilder og verifisering **Verified (MCP microsoft-learn, 2026-02):** - [Configure Foundry Tools virtual networks](https://learn.microsoft.com/en-us/azure/ai-services/cognitive-services-virtual-networks) - Hovedkilde for VNet-konfigurasjon, service endpoints, IP-regler, private endpoints - [Configure secure networking for Azure AI platform services](https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/ai/platform/networking) - Arkitektur-guide fra Cloud Adoption Framework - [Configure Azure OpenAI networking](https://learn.microsoft.com/en-us/azure/foundry-classic/openai/how-to/network) - Private endpoint oppsett for Azure OpenAI - [Network and access configuration for Azure OpenAI On Your Data](https://learn.microsoft.com/en-us/azure/foundry-classic/openai/how-to/on-your-data-configuration) - Trusted services bypass, managed identity setup - [Azure security baseline for Azure AI services](https://learn.microsoft.com/en-us/security/benchmark/azure/baselines/cognitive-services-security-baseline) - NSG-støtte (ikke støttet), private link (støttet), disable public access - [Create a private endpoint for a secure connection to Azure AI Search](https://learn.microsoft.com/en-us/azure/search/service-create-private-endpoint) - Shared private link-mønster **Baseline (modellkunnskap, januar 2025):** - Azure Private Link pricing: ca. 40 NOK/måned per endpoint (basert på USD-priser og valutakurs) - Custom subdomain-krav for private endpoints (dokumentert i flere Microsoft-kilder) - NSG-støtte ikke tilgjengelig for AI Services (bekreftet via security baseline) - Trusted services bypass med `networkAcls.bypass: "AzureServices"` (REST API-konfigurasjon) **Sist verifisert:** 2026-06-19 **MCP calls:** 7 (microsoft_docs_search, microsoft_docs_fetch, microsoft_code_sample_search) **Kilder:** 10 unike Microsoft Learn URLs