Ga naar inhoud

Vereisten

Deze pagina somt op wat aanwezig moet zijn voordat het portaal in een omgeving kan worden uitgerold. Ze is geschreven voor het platformteam en voor de mensen die elk onderdeel aan de kant van de klant invullen. In het zelfbeheerde beheermodel vult het platformteam alle onderdelen zelf in. Zie Beheermodellen.

Dit is een referentieontwerp: bevestig de waarden bij de engineer die uitrolt, want jouw omgeving kan afwijken. Onderdelen met (voor: functie) zijn alleen nodig als die functie binnen scope valt.

Samenvatting

Gebied Onderdeel
Azure Twee subscriptions (non-productie en productie), een deployment identity met Owner op elk
Netwerk VNet en subnets per omgeving, uitgaand HTTPS naar het Azure control plane en Microsoft Graph
Identiteit Entra app registration per omgeving, Graph application permissions voor de managed identity
Toegang Reader-rollen voor de managed identity van het portaal
Repositories Leestoegang tot repositories die worden ingelezen, contribute-toegang op de configuratierepositories
Providers Resource providers geregistreerd waar AI Foundry of kostenexports worden gebruikt
Optioneel DNS-zone en certificaat, WAF, GitHub App, private module registry

Azure-subscriptions en deployment identity

  • Twee Azure-subscriptions, één voor de non-productie- en één voor de productieomgeving.
  • Een deployment service principal voor elke subscription met de rol Owner. Federated credentials hebben de voorkeur boven client secrets (Uitrol en omgevingen).
  • (voor: AI-agents) Deze resource providers geregistreerd op de subscription die AI Foundry host: Microsoft.App, Microsoft.ContainerService, Microsoft.CognitiveServices, Microsoft.KeyVault, Microsoft.Network, Microsoft.Search, Microsoft.Storage. De Terraform-module voor Foundry registreert ook resource providers. Zie AI-setup.
  • (voor: cost insights) Microsoft.CostManagement geregistreerd op elke subscription die binnen scope valt. Het portaal registreert geen providers. Zonder registratie slaat het die subscription over en probeert het bij de volgende run opnieuw.
az provider register --namespace Microsoft.CostManagement --subscription <subscription-id>

Netwerk

Maak één virtual network per omgeving en regio, met een niet-overlappend adresbereik. In een managed platform is dit een spoke (Spoke canvas).

Subnet Voorbeeldbereik Doel
default 10.x.x.0/26 Private endpoints, bijvoorbeeld storage en key vault
app service (gedelegeerd) 10.x.x.64/26 VNet-integratie van de webapp
agents (gedelegeerd aan Microsoft.App/environments) 10.x.x.128/27 Alleen voor AI-agents die bring-your-own Foundry-resources gebruiken
PostgreSQL (gedelegeerd) 10.x.x.160/28 PostgreSQL Flexible Server

Regels:

  • Houd de doelen gescheiden. Zet webapp-integratie en PostgreSQL niet in hetzelfde subnet.
  • Een Container Apps-omgeving met workload profiles heeft een eigen gedelegeerd subnet van minimaal /27 nodig.
  • Reserveer vrije adresruimte voor groei en voor netwerkcontroles die de klant eist.
  • In een hub-and-spoke-netwerk moeten routes en firewallregels het webapp-subnet toestaan om te bereiken:
    • uitgaand HTTPS naar de service tags AzureResourceManager, AzureActiveDirectory en AzureMonitor
    • uitgaand HTTPS naar graph.microsoft.com

Subnetnamen verschillen per bron

De referentie-Terraform noemt zijn subnets default, appsvc, postgresql en containerapp. De leesbare handleiding gebruikt andere namen. Gebruik de namen die jouw Terraform verwacht en controleer ze met de engineer.

Roltoewijzingen voor de managed identity van het portaal

Geef de managed identity van het portaal na de eerste uitrol leestoegang tot de Azure-omgeving. De onderstaande scopes gaan uit van een hiërarchie van management groups volgens het Cloud Adoption Framework. Smallere scopes zijn mogelijk.

Rol Scope Waarom
Reader Management group Landing zones (of de groep met de workloads die moeten worden ingelezen) Ontdekt subscriptions en resources, en de groeperingen van workload, team, domein en organisatie die uit tags worden afgeleid. Nieuwe subscriptions onder de scope worden automatisch opgepikt.
Reader Scope met de Azure Firewall-resources Ontdekt firewalls waarvan het portaal de logs bevraagt
Monitoring Reader Zelfde scope als de vorige rij Log Analytics-queries voor firewalls
Reader Scope met de Application Gateways Ontdekt gateways
Monitoring Reader Zelfde scope als de vorige rij Log Analytics-queries voor gateways
Cost Management Contributor (voor: cost insights) Management group Landing zones, of de scope met de subscriptions binnen scope Maakt per subscription een Cost Management-export aan en voert die uit

De Terraform-modules wijzen ook rollen toe aan de identities van het portaal voor de eigen resources van de omgeving (Key Vault secrets user, registry pull, storage-rollen voor kostenexport).

Entra app registration

Maak één app registration per omgeving (bijvoorbeeld acceptatie en productie).

Onderdeel Waarde
Delegated Graph permissions email, offline_access, openid, profile, User.Read, met admin consent
Redirect URI https://<portal-domain>/api/auth/microsoft/handler/frame

Kies hoe het secret en de redirect URI worden beheerd:

  • Aanbevolen: maak de deployment service principal eigenaar van de app registration en de bijbehorende enterprise application, en geef hem de Graph application permission Application.Read.All. De deployment roteert dan het secret en voegt redirect URI's automatisch toe.
  • Alternatief: maak het client secret handmatig aan en voeg de redirect URI zelf toe.

Na de eerste uitrol verleent een Entra-beheerder de managed identity van het portaal deze Graph application permissions met admin consent, zodat de catalog gebruikers en groepen kan inlezen:

  • User.Read.All
  • GroupMember.Read.All

Lever een script aan

Deze stap vereist beheerrechten in de tenant. Geef de Entra-beheerder een script in plaats van een lijst.

Repositories

  • Leestoegang voor de identity van het portaal op de Azure DevOps-repositories waarvan de catalog-info.yaml-bestanden moeten worden ingelezen.
  • Contribute-toegang op de configuratierepositories die agents wijzigen (spoke- en integratieconfiguratie). De toegang moet het lezen van main, het aanmaken van branches en het openen van pull requests omvatten. De identity heeft ook een Basic-toegangsniveau in de Azure DevOps-organisatie nodig.
  • (voor: GitHub-integratie) Een GitHub App op organisatie- of enterpriseniveau, met lees- en schrijfrechten op contents en pull requests. Zie Configuratie.

Optionele onderdelen

Onderdeel Wanneer
DNS-zone, CNAME- of A-record en een TLS-certificaat Eigen domein (WAF en eigen domein)
Web Application Firewall voor het portaal Aanwezig voordat de uitrol begint, als de klant er een wil
Resourcetags op workloads, met afgesproken keys Altijd. De catalog wordt uit tags opgebouwd (Catalog en entiteitenmodel)
Private module registry Module registry
Private verbindingen vanuit het netwerk van de leverancier Wanneer de leverancier vanuit zijn eigen netwerk uitrolt (Een klant onboarden)

Wie doet wat

Rol Verantwoordelijkheid
Delivery manager (leverancier) Klantcommunicatie, kick-off, voortgangsbewaking, acceptatie
Engineer (leverancier of platformteam van de klant) Bereidt de omgevingsdefinitie voor, rolt uit, demonstreert bij de overdracht
Tweede engineer Valideert de uitrol, een andere persoon dan degene die heeft uitgerold
Solution lead Beslist of een aanvraag in de gedeelde codebase past
Projectmanager van de klant Enige aanspreekpunt, beheert de vragenlijst, tekent voor acceptatie
Cloud platform administrator Subscriptions, service principals, netwerk, roltoewijzingen
Entra-beheerder App registrations, admin consent, Graph permissions
Azure DevOps- en GitHub-beheerder Repositorytoegang, GitHub App
Security contact Beoordeelt dataresidentie en het toegangsmodel
Vertegenwoordiger van developers (optioneel) Woont de MCP-walkthrough bij

In het zelfbeheerde model kan één team meerdere van deze rollen vervullen.