Ga naar inhoud

Spoke common settings (common.tf)

Instellingen die voor elke spoke gelijk zijn, worden één keer gedefinieerd en niet in elk spoke-bestand. De spoke-JSON bevat dan alleen wat specifiek is voor één workload. Deze pagina somt die common settings op, wat ze doen en waar ze staan.

Waar de common settings staan

In de aparte spoke canvas-deployment (eigen repository en pipeline) zijn de common settings een Terraform-bestand met de naam common.tf met een locals-blok. In de huidige platformindeling maakt het deel dat over tenant en gedeelde services gaat deel uit van mcp.json onder SpokeCommon (mcp.json). De namen van de instellingen zijn gelijk. Controleer in de codeversie die je pint welke van de onderstaande instellingen jouw indeling leest, en waar. De upgradehandleidingen voor de spoke canvas tonen de oudere common.tf-vorm.

Overzicht

Blok Doel Verplicht
tenantinfo Tenant, administrative unit, voorvoegsel van groepsnamen en secret-rotatie ja
networking Hub-subscription en de IPAM-pools waaruit spokes mogen toewijzen ja (ipam_pools is optioneel)
regioninfo Per regio: namen, DNS-server, virtual hub, centrale Log Analytics workspace ja
pim_configurations Benoemde PIM-profielen waarnaar PIMGroupConfig verwijst ja, vanaf spoke canvas 2.10
override_defaults.pim_assignments Overschrijvingen per rol van de ingebouwde RBAC-rolmap nee
ghinfo GitHub-organisatie, basis-URL en OIDC-issuer voor de GitHub-extensie alleen met de GitHub-extensie

tenantinfo

Instelling Beschrijving
TenantId ID van de tenant waarin groepen worden aangemaakt. Moet de tenant zijn die de spoke-subscriptions bevat.
AdministrativeUnitId Object-ID van de administrative unit die de spoke-groepen bevat (Identiteit voorbereiden).
GroupnamePrefix Voorvoegsel van elke groep die de deployment aanmaakt, bijvoorbeeld SG_SPOKE_.
SPNSecretrotationPeriod Geldigheid van het secret van elke spoke service principal, in dagen.
NewSubscriptionDefaultManagementGroupId Standaard management group voor nieuwe subscriptions. Aanwezig in het voorbeeldbestand; controleer hoe jouw versie het gebruikt.

De rotatieperiode wijzigen

Het wijzigen van SPNSecretrotationPeriod forceert bij de volgende run nieuwe secrets voor alle service principals die de spoke-deployment beheert. Plan het als een wijziging met een onderhoudsvenster, en zorg dat afnemers van de secrets (bijvoorbeeld service connections) de nieuwe waarde oppakken (Spoke wijzigen).

networking

Instelling Beschrijving
virtualhubsubscriptionid ID van de subscription die de virtual hubs bevat waarmee spoke-netwerken verbinden.
ipam_pools Optionele map van Azure Virtual Network Manager IPAM-pools waaruit spokes adresruimte mogen toewijzen. Key: de naam die een spoke-bestand in ipamPool gebruikt. Waarde: de volledige resource-ID van de pool.

De resource-ID's van de pools worden gerapporteerd door de foundation-deployment van het platform als output network_manager_ipam_environment_pool_ids (zie Feature flags voor deploy_network_manager).

  • IPAM-pools zijn regionaal. Neem de regio op in de key als meer dan één regio een pool heeft, bijvoorbeeld dev-weu.
  • Alleen pools in deze map kunnen worden gebruikt. Een spoke die een onbekende pool noemt, laat het plan falen, en de foutmelding toont de namen die beschikbaar zijn.
  • Laat je de map weg, dan blijft elke spoke op hardgecodeerde adresprefixes. Dat blijft volledig ondersteund.

Hoe een spoke een pool gebruikt: Spoke JSON-naslag.

regioninfo

Eén item per regio. De key van het item is de korte regionaam die spoke-bestanden gebruiken (targetRegions, network[].region). Het is geen eigenschap. Keys moeten uniek zijn.

Instelling Beschrijving
azregionname Azure-naam van de regio, bijvoorbeeld westeurope.
regionfriendlyname Weergavenaam, bijvoorbeeld West Europe.
dnsserver IP-adres van de DNS-server voor spoke-netwerken in de regio. Normaal het interne adres van de hub-firewall in die regio (de DNS proxy). Een spoke kan dit overschrijven met dnsServerOverwrite.
virtualhub_resourceid Volledige resource-ID van de virtual hub in de regio waarmee spoke-netwerken verbinden.
centrallaw_resourceid Volledige resource-ID van de centrale Log Analytics workspace waar spoke-resources naartoe loggen, bijvoorbeeld het doorsturen van de activity log.

pim_configurations

Een map van benoemde PIM-profielen. Elk profiel stelt een toewijzingstype in (active of eligible). Bij eligible profielen stelt het ook het activatiebeleid in en, indien nodig, goedkeurders. Een spoke verwijst met de naam naar een profiel, zodat het volledige beleid niet in elk spoke-bestand wordt herhaald. De instelling notifications wordt geaccepteerd maar op dit moment niet gebruikt.

De standaardprofielen zijn nopim, self-approve en approval. Hun definitie staat in de upgradehandleiding. Details over hoe profielen en rollen samenhangen: RBAC en PIM voor spokes.

override_defaults.pim_assignments

Optioneel. Wijzigt de ingebouwde RBAC-rolmap voor alle spokes. Zie RBAC en PIM voor spokes.

ghinfo

Alleen nodig als spokes de GitHub-extensie gebruiken. De waarden zijn de default voor elke spoke; een spoke kan organization en oidc_issuer overschrijven.

Instelling Beschrijving
OrganizationName GitHub-organisatie waarin repositories worden aangemaakt.
OidcIssuer OIDC-issuer-URL die de federated credentials vertrouwen.
BaseUrl Basis-URL van de GitHub-instance.
Instance OidcIssuer BaseUrl
GitHub.com https://token.actions.githubusercontent.com https://github.com/
GitHub Enterprise Server https://<github host>/_services/token https://<github host>/

Bereid eerst de GitHub-kant voor: Spoke-integraties voorbereiden.

Voorbeeld

Een ingekort voorbeeld met placeholders. Een echt bestand heeft een item per regio.

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
}