Zugriff auf die Bibliothek einrichten (XMT Ambassador)¶
Die Bibliothek wird in deine eigene Umgebung geliefert: Terraform-Module in ein schreibgeschütztes Repository in Azure DevOps, Bicep- Module in eine Container Registry. Diese Seite ist für den XMT Ambassador: die Person auf der Nutzerseite, die das einmalige Setup organisiert, den Zugriff für Personen und pipelines verwaltet und der erste Ansprechpartner bei Fragen zur Bibliothek ist. Mit einem managed-service-Vertrag liefert das pflegende Team (XMMS) die Module in das, was du hier einrichtest. Im Eigenbetrieb ist das pflegende Team ein Team deiner eigenen Organisation, und dasselbe Setup gilt (Betriebsmodelle).
Sobald das Setup abgeschlossen ist, teile Managed Templates nutzen mit deinen Teams. Das pflegende Team erledigt seinen Teil unter Einen Nutzer onboarden.
Referenz-Setup, deine Umgebung kann abweichen
Die Gruppennamen und die Berechtigungen unten stammen aus dem Referenz-Setup. Nutze die Namen, die deine Organisation bevorzugt, und behalte die Absicht bei: Personen bekommen Lesezugriff über eine Gruppe, und nur die Identität des pflegenden Teams darf schreiben.
Einmaliges Setup¶
Führe diese Schritte einmal für deine Organisation aus.
Das Repository erstellen¶
- Nutze in Azure DevOps ein vorhandenes Projekt oder erstelle eines.
- Füge ein neues privates Repository für die Bibliothek hinzu.
- Öffne die Sicherheitseinstellungen des Repositorys und deaktiviere die Vererbung.
- Setze für alle Gruppen und Benutzer diese Berechtigungen auf Not Set: manage advanced security settings, bypass policies when completing pull requests, bypass policies when pushing, contribute, contribute to pull requests, create branch, create tag, delete or disable repository und force push.
Eine Container Registry erstellen (nur Bicep)¶
Erstelle eine Azure Container Registry im Premium-Tier. Der Premium-Tier ist nötig, um die Plattformadressen zuzulassen, die die Bicep-Module veröffentlichen. Überspringe diesen Schritt, wenn du nur Terraform nutzt.
Den Service Principal für die Synchronisierung erstellen¶
Der Service Principal lässt das pflegende Team die Module in dein Repository und deine Registry synchronisieren.
- Erstelle einen Service Principal in Entra ID.
- Gib ihm die Rolle
Readerauf subscription-Ebene (die subscription mit der Registry oder eine beliebige subscription, wenn du keine Registry nutzt). Das ist nötig, um eine service connection zu erstellen. Gib ihmAcrPushauf der Registry. - Füge den Service Principal mit der Zugriffsstufe Basic zur Azure-DevOps-Organisation hinzu, zum Projekt des Repositorys und zur Gruppe Project Readers.
- Setze in den Sicherheitseinstellungen des Repositorys diese Berechtigungen für den Service Principal auf Allow: bypass policies when pushing, contribute, contribute to pull requests, create tag, force push und read.
- Sende dem pflegenden Team Folgendes: die Application-(Client-)ID, die Directory-(Tenant-)ID, die subscription-ID
und den Namen, wo
Readerzugewiesen ist, den Link zum Repository und optional den Namen der Registry.
Das pflegende Team richtet dann die Verbindung und die Synchronisierung ein (Einen Nutzer onboarden).
Die Zugriffsgruppen erstellen¶
Zwei Gruppen geben dir einen zentralen Ort, um den Zugriff zu verwalten.
- Erstelle in Entra ID eine Security-Gruppe für die Reader (das Referenz-Setup nennt sie
XMT_readers). - Gib dieser Gruppe die Rolle
Readerauf der Registry. - Füge in Azure DevOps eine Gruppenregel für die Gruppe hinzu: Zugriffsstufe Basic, das Projekt des Repositorys und die Gruppe Project Readers.
- Erstelle eine Azure-DevOps-Gruppe für pipelines (das Referenz-Setup nennt sie
XMT_access) und gib ihr Read auf dem Repository.
Netzwerkzugriff prüfen¶
Für Bicep brauchen Personen und pipeline-Agents Netzwerkzugriff auf die Registry über Port 443.
- Bevorzugt: Leite den Verkehr über ExpressRoute oder ein VPN.
- Alternative: Erlaube den Zugriff aus dem Internet oder von bestimmten IP-Adressen, zum Beispiel der öffentlichen Adresse eines Büros.
Laufende Zugriffsverwaltung¶
Benutzerzugriff vergeben¶
Füge die Person in Entra ID zur Reader-Gruppe hinzu. Mehr ist nicht nötig. Die Person kann dann das Repository lesen (Terraform) und Module aus der Registry ziehen (Bicep).
Pipeline-Zugriff vergeben¶
Terraform-pipelines¶
-
Füge die Build-Identität der pipeline zur Zugriffsgruppe der pipelines hinzu. Welche Identität das ist, hängt von der Einstellung der Organisation Limit job authorization scope to current project for non-release pipelines ab:
- Einstellung aus:
Project Collection Build Service (<organisation>) - Einstellung an:
<project> Build Service (<organisation>)
Die Einstellung auf Organisationsebene hat Vorrang vor der Einstellung auf Projektebene. 2. Bitte das Team, die Bibliothek in der pipeline als Repository Resource zu deklarieren und
terraform init(und die übrigen Terraform-Schritte) mit den Git-Authentifizierungsschritten zu umschließen. Der IaC Accelerator enthält beides, und sie sind in Option 2 gezeigt. 3. Schalte Protect access to repositories in YAML pipelines für das Projekt aus. - Einstellung aus:
Bicep-pipelines¶
Füge die service connection, die der Bicep-Deployment-Job nutzt, in Entra ID zur Reader-Gruppe hinzu. Die pipeline kann dann die Module aus der Registry ziehen.