Förstå tilldelningsresurser för datorkonfiguration

När en Azure Policy tilldelas, om den finns i kategorin Guest Configuration ingår metadata för att beskriva en gästtilldelning.

En videogenomgång av det här dokumentet är tillgänglig.

Du kan se en gästtilldelning som en länk mellan en dator och ett Azure Policy-scenario. Följande kodfragment associerar till exempel Azure Windows-baslinjekonfigurationen med lägsta version 1.0.0 till alla datorer som omfattas av principen.

"metadata": {
    "category": "Guest Configuration",
    "guestConfiguration": {
        "name": "AzureWindowsBaseline",
        "version": "1.*"
    }
  //additional metadata properties exist
}

Så använder Azure Policy datorkonfigurationstilldelningar

Datorkonfigurationstjänsten använder metadatainformationen för att automatiskt skapa en granskningsresurs för definitioner med antingen AuditIfNotExists eller DeployIfNotExists principeffekter. Resurstypen är Microsoft.GuestConfiguration/guestConfigurationAssignments. Azure Policy använder egenskapen complianceStatus för gästtilldelningsresursen för att rapportera efterlevnadsstatus. Mer information finns i hämta efterlevnadsdata.

Borttagning av gästtilldelningar från Azure Policy

När en Azure Policy-tilldelning tas bort tas även datorkonfigurationstilldelningen bort om principen skapade en datorkonfigurationstilldelning.

När en Azure Policy-tilldelning tas bort från ett initiativ måste du manuellt ta bort alla datorkonfigurationstilldelningar som principen skapade. Du kan göra det genom att gå till gästtilldelningssidan i Azure-portalen och ta bort tilldelningen där.

Skapa datorkonfigurationstilldelningar manuellt

Du kan skapa gästtilldelningsresurser i Azure Resource Manager med hjälp av Azure Policy eller valfri klient-SDK.

Ett exempel på en distributionsmall:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "apiVersion": "2021-01-25",
      "type": "Microsoft.Compute/virtualMachines/providers/guestConfigurationAssignments",
      "name": "myMachine/Microsoft.GuestConfiguration/myConfig",
      "location": "westus2",
      "properties": {
        "guestConfiguration": {
          "name": "myConfig",
          "contentUri": "https://mystorageaccount.blob.core.windows.net/mystoragecontainer/myConfig.zip?sv=SASTOKEN",
          "contentHash": "SHA256HASH",
          "version": "1.0.0",
          "assignmentType": "ApplyAndMonitor",
          "configurationParameter": {}
        }
      }
    }
  ]
}

I följande tabell beskrivs varje egenskap för gästtilldelningsresurser.

Property Beskrivning
Namn Namnet på konfigurationen i innehållspaketets MOF-fil.
contentUri HTTPS-URI-sökväg till innehållspaketet (.zip).
contentHash Ett SHA256-hashvärde för innehållspaketet som används för att verifiera att det inte har ändrats.
Version Version av innehållspaketet. Används endast för inbyggda paket och används inte för anpassade innehållspaket.
assignmentType Tilldelningens beteende. Tillåtna värden: Audit, ApplyandMonitoroch ApplyandAutoCorrect.
configurationParameter Lista över DSC-resurstyp, namn och värde i innehållspaketets MOF-fil som ska åsidosättas när den har laddats ned på datorn.

Borttagning av manuellt skapade datorkonfigurationstilldelningar

Du måste ta bort datorkonfigurationstilldelningar som skapats manuellt (till exempel en Distribution av Azure Resource Manager-mallar). Om du tar bort den överordnade resursen (virtuell dator eller Arc-aktiverad dator) tas även datorkonfigurationstilldelningen bort.

Om du vill ta bort en datorkonfigurationstilldelning manuellt använder du följande exempel. Ersätt alla exempelsträngar som anges med <> hakparenteser.

# First get details about the machine configuration assignment
$resourceDetails = @{
  ResourceGroupName = '<resource-group-name>'
  ResourceType      = 'Microsoft.Compute/virtualMachines/providers/guestConfigurationAssignments/'
  ResourceName      = '<vm-name>/Microsoft.GuestConfiguration'
  ApiVersion        = '2020-06-25'
}
$guestAssignment = Get-AzResource @resourceDetails

# Review details of the machine configuration assignment
$guestAssignment

# After reviewing properties of $guestAssignment to confirm
$guestAssignment | Remove-AzResource

Nästa steg