Gemeinsame Spoke-Einstellungen (common.tf)¶
Einstellungen, die für jeden spoke gleich sind, werden einmal definiert und nicht in jeder spoke-Datei. Das spoke-JSON enthält dann nur noch das, was für einen workload spezifisch ist. Diese Seite listet die gemeinsamen Einstellungen auf, was sie bewirken und wo sie liegen.
Wo die gemeinsamen Einstellungen liegen
Im separaten spoke-canvas-Deployment (eigenes Repository und eigene pipeline) sind die gemeinsamen Einstellungen eine Terraform-Datei namens
common.tf mit einem locals-Block. Im aktuellen Plattform-Layout ist der Teil, der Tenant und Shared Services betrifft,
Teil von mcp.json unter SpokeCommon (mcp.json). Die Namen der Einstellungen sind dieselben.
Prüfe in der Code-Version, die du fixiert hast, welche der folgenden Einstellungen dein Layout liest und wo. Die
Upgrade-Leitfäden für das spoke canvas zeigen die ältere Form common.tf.
Übersicht¶
| Block | Zweck | Pflicht |
|---|---|---|
tenantinfo |
Tenant, Administrative Unit, Präfix der Gruppennamen und Secret-Rotation | ja |
networking |
Hub-subscription und die IPAM-Pools, aus denen spokes Adressraum zuweisen lassen dürfen | ja (ipam_pools ist optional) |
regioninfo |
Pro Region: Namen, DNS-Server, Virtual Hub, zentraler Log-Analytics-Workspace | ja |
pim_configurations |
Benannte PIM-Profile, auf die PIMGroupConfig verweist |
ja, ab spoke canvas 2.10 |
override_defaults.pim_assignments |
Überschreibungen der eingebauten RBAC role map pro Rolle | nein |
ghinfo |
GitHub-Organisation, Base-URL und OIDC-Issuer für die GitHub-Extension | nur mit der GitHub-Extension |
tenantinfo¶
| Einstellung | Beschreibung |
|---|---|
TenantId |
ID des Tenants, in dem Gruppen erstellt werden. Muss der Tenant sein, der die spoke-subscriptions enthält. |
AdministrativeUnitId |
Object ID der Administrative Unit, die die spoke-Gruppen enthält (Identität vorbereiten). |
GroupnamePrefix |
Präfix jeder Gruppe, die das Deployment erstellt, zum Beispiel SG_SPOKE_. |
SPNSecretrotationPeriod |
Gültigkeit des Secrets jedes Spoke-Service-Principals, in Tagen. |
NewSubscriptionDefaultManagementGroupId |
Standard-management-group für neue subscriptions. In der Beispieldatei vorhanden; prüfe, wie deine Version sie verwendet. |
Den Rotationszeitraum ändern
Wenn du SPNSecretrotationPeriod änderst, erzwingt das beim nächsten Lauf neue Secrets für alle Service Principals, die das
spoke-Deployment steuert. Plane es als Änderung mit einem Wartungsfenster und stelle sicher, dass die Verbraucher der Secrets
(zum Beispiel service connections) den neuen Wert übernehmen (Spoke ändern).
networking¶
| Einstellung | Beschreibung |
|---|---|
virtualhubsubscriptionid |
ID der subscription, die die Virtual Hubs enthält, mit denen sich spoke-Netzwerke verbinden. |
ipam_pools |
Optionale Map von Azure-Virtual-Network-Manager-IPAM-Pools, aus denen spokes Adressraum zuweisen lassen dürfen. Key: der Name, den eine spoke-Datei in ipamPool verwendet. Value: die vollständige Resource-ID des Pools. |
Die Resource-IDs der Pools meldet das Foundation-Deployment der Plattform als Output
network_manager_ipam_environment_pool_ids (siehe Feature flags für deploy_network_manager).
- IPAM-Pools sind regional. Nimm die Region in den Key auf, wenn mehr als eine Region einen Pool hat, zum Beispiel
dev-weu. - Nur Pools aus dieser Map können verwendet werden. Ein spoke, der einen unbekannten Pool nennt, lässt den Plan fehlschlagen, und der Fehler listet die verfügbaren Namen auf.
- Lässt du die Map weg, bleibt jeder spoke bei fest codierten Adresspräfixen. Das bleibt voll unterstützt.
Wie ein spoke einen Pool nutzt: Spoke-JSON-Referenz.
regioninfo¶
Ein Eintrag pro Region. Der Key des Eintrags ist der Kurzname der Region, den spoke-Dateien verwenden (targetRegions,
network[].region). Er ist keine Property. Keys müssen eindeutig sein.
| Einstellung | Beschreibung |
|---|---|
azregionname |
Azure-Name der Region, zum Beispiel westeurope. |
regionfriendlyname |
Anzeigename, zum Beispiel West Europe. |
dnsserver |
IP-Adresse des DNS-Servers für spoke-Netzwerke in der Region. Normalerweise die interne Adresse der Hub-firewall in dieser Region (der DNS-Proxy). Ein spoke kann sie mit dnsServerOverwrite überschreiben. |
virtualhub_resourceid |
Vollständige Resource-ID des Virtual Hubs in der Region, mit dem sich spoke-Netzwerke verbinden. |
centrallaw_resourceid |
Vollständige Resource-ID des zentralen Log-Analytics-Workspace, in den Ressourcen des spokes loggen, zum Beispiel für die Weiterleitung des Activity Logs. |
pim_configurations¶
Eine Map benannter PIM-Profile. Jedes Profil legt einen Zuweisungstyp fest (active oder eligible). Bei eligible-Profilen legt es außerdem
die Aktivierungs-Policy und, falls nötig, Genehmiger fest. Ein spoke verweist über den Namen auf ein Profil, sodass die vollständige Policy
nicht in jeder spoke-Datei wiederholt wird. Die Einstellung notifications wird akzeptiert, aber derzeit nicht verwendet.
Die Standardprofile sind nopim, self-approve und approval. Ihre Definition steht im
Upgrade-Leitfaden. Wie Profile und
Rollen zusammenspielen, steht in RBAC und PIM für spokes.
override_defaults.pim_assignments¶
Optional. Ändert die eingebaute RBAC role map für alle spokes. Siehe RBAC und PIM für spokes.
ghinfo¶
Nur nötig, wenn spokes die GitHub-Extension nutzen. Die Werte sind der Default für
jeden spoke; ein spoke kann organization und oidc_issuer überschreiben.
| Einstellung | Beschreibung |
|---|---|
OrganizationName |
GitHub-Organisation, in der Repositorys erstellt werden. |
OidcIssuer |
OIDC-Issuer-URL, der die Federated Credentials vertrauen. |
BaseUrl |
Base-URL der GitHub-Instanz. |
| Instanz | OidcIssuer |
BaseUrl |
|---|---|---|
| GitHub.com | https://token.actions.githubusercontent.com |
https://github.com/ |
| GitHub Enterprise Server | https://<github host>/_services/token |
https://<github host>/ |
Bereite zuerst die GitHub-Seite vor: Spoke-Integrationen vorbereiten.
Beispiel¶
Ein gekürztes Beispiel mit Platzhaltern. Eine echte Datei hat einen Eintrag pro Region.
locals {
tenantinfo = {
TenantId = "<tenant-id>"
AdministrativeUnitId = "<administrative-unit-object-id>"
GroupnamePrefix = "SG_SPOKE_"
SPNSecretrotationPeriod = 90
}
networking = {
virtualhubsubscriptionid = "<hub-subscription-id>"
ipam_pools = {
dev-weu = "<resource id of the IPAM pool for dev in West Europe>"
prd-weu = "<resource id of the IPAM pool for prd in West Europe>"
}
}
regioninfo = {
weu = {
azregionname = "westeurope"
regionfriendlyname = "West Europe"
dnsserver = "<firewall private IP in the region>"
virtualhub_resourceid = "<resource id of the virtual hub>"
centrallaw_resourceid = "<resource id of the central Log Analytics workspace>"
}
}
# pim_configurations: see the upgrade guide
# override_defaults, ghinfo: only when you need them
}