Übersicht über die Gastkonfigurationserweiterung

Die Gastkonfigurationserweiterung ist eine Azure Policy-Komponente, die Überprüfungs- und Konfigurationsvorgänge auf VMs ausführt. Richtlinien wie Definitionen von Sicherheitsbaselines für Linux und Windows können Einstellungen auf Computern erst überprüfen, wenn die Erweiterung installiert ist.

Voraussetzungen

Damit sich der Computer beim Gastkonfigurationsdienst authentifizieren kann, muss der Computer über eine vom System zugewiesene verwaltete Identität verfügen. Die Identitätsanforderung auf einem virtuellen Computer ist erfüllt, wenn die folgende Eigenschaft festgelegt ist.

"identity": {
  "type": "SystemAssigned"
}

Betriebssysteme

Die Unterstützung für die Gastkonfigurationserweiterung ist identisch mit der Betriebssystemunterstützung, die für die End-to-End-Lösung dokumentiert ist.

Internetkonnektivität

Der von der Gastkonfigurationserweiterung installierte Agent muss Inhaltspakete erreichen können, die unter Gastkonfigurationszuweisungen aufgeführt sind, und den Status an den Gastkonfigurationsdienst melden. Der Computer kann eine Verbindung über ausgehenden HTTPS-Datenverkehr über TCP-Port 443 herstellen, oder, wenn eine Verbindung über private Netzwerke bereitgestellt wird. Weitere Informationen zu privaten Netzwerken finden Sie in folgenden Artikeln:

Wie kann ich eine Erweiterung installieren?

Der Instanzname der Erweiterung muss auf „AzurePolicyforWindows“ oder „AzurePolicyforLinux“ festgelegt werden, da die oben genannten Richtlinien diese spezifischen Zeichenfolgen erfordern.

Standardmäßig werden alle Bereitstellungen auf die neueste Version aktualisiert. Der Wert der Eigenschaft autoUpgradeMinorVersion ist standardmäßig auf „true“ festgelegt, sofern nichts anderes angegeben ist. Sie müssen sich keine Gedanken über das Aktualisieren Ihres Codes machen, wenn neue Versionen der Erweiterung veröffentlicht werden.

automatische Upgrade

Die Gastkonfigurationserweiterung unterstützt die Eigenschaft enableAutomaticUpgrade. Wenn diese Eigenschaft auf true festgelegt ist, führt Azure automatisch ein Upgrade auf die neueste Version der Erweiterung durch, sobald zukünftige Releases verfügbar werden. Weitere Informationen finden Sie auf der Seite Automatisches Erweiterungsupgrade für VMs und Skalierungsgruppen in Azure.

Azure Policy

Zum Bereitstellen der neuesten Version der Erweiterung einschließlich der Identitätsanforderungen in großem Umfang weisen Sie die Azure-Richtlinie zu:

Schaffen Sie die Voraussetzungen, um Richtlinien für die Gastkonfiguration auf virtuellen Computern zu aktivieren.

Azure CLI

So stellen Sie die Erweiterung für Linux bereit:

az vm extension set  --publisher Microsoft.GuestConfiguration --name ConfigurationforLinux --extension-instance-name AzurePolicyforLinux --resource-group myResourceGroup --vm-name myVM --enable-auto-upgrade true

So stellen Sie die Erweiterung für Windows bereit:

az vm extension set  --publisher Microsoft.GuestConfiguration --name ConfigurationforWindows --extension-instance-name AzurePolicyforWindows --resource-group myResourceGroup --vm-name myVM --enable-auto-upgrade true

PowerShell

So stellen Sie die Erweiterung für Linux bereit:

Set-AzVMExtension -Publisher 'Microsoft.GuestConfiguration' -Type 'ConfigurationforLinux' -Name 'AzurePolicyforLinux' -TypeHandlerVersion 1.0 -ResourceGroupName 'myResourceGroup' -Location 'myLocation' -VMName 'myVM' -EnableAutomaticUpgrade $true

So stellen Sie die Erweiterung für Windows bereit:

Set-AzVMExtension -Publisher 'Microsoft.GuestConfiguration' -Type 'ConfigurationforWindows' -Name 'AzurePolicyforWindows' -TypeHandlerVersion 1.0 -ResourceGroupName 'myResourceGroup' -Location 'myLocation' -VMName 'myVM' -EnableAutomaticUpgrade $true

Resource Manager-Vorlage

So stellen Sie die Erweiterung für Linux bereit:

{
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "name": "[concat(parameters('VMName'), '/AzurePolicyforLinux')]",
  "apiVersion": "2020-12-01",
  "location": "[parameters('location')]",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', parameters('VMName'))]"
  ],
  "properties": {
    "publisher": "Microsoft.GuestConfiguration",
    "type": "ConfigurationforLinux",
    "typeHandlerVersion": "1.0",
    "autoUpgradeMinorVersion": true,
    "enableAutomaticUpgrade": true, 
    "settings": {},
    "protectedSettings": {}
  }
}

So stellen Sie die Erweiterung für Windows bereit:

{
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "name": "[concat(parameters('VMName'), '/AzurePolicyforWindows')]",
  "apiVersion": "2020-12-01",
  "location": "[parameters('location')]",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', parameters('VMName'))]"
  ],
  "properties": {
    "publisher": "Microsoft.GuestConfiguration",
    "type": "ConfigurationforWindows",
    "typeHandlerVersion": "1.0",
    "autoUpgradeMinorVersion": true,
    "enableAutomaticUpgrade": true, 
    "settings": {},
    "protectedSettings": {}
  }
}

Bicep

So stellen Sie die Erweiterung für Linux bereit:

resource virtualMachine 'Microsoft.Compute/virtualMachines@2021-03-01' existing = {
  name: 'VMName'
}
resource windowsVMGuestConfigExtension 'Microsoft.Compute/virtualMachines/extensions@2020-12-01' = {
  parent: virtualMachine
  name: 'AzurePolicyforLinux'
  location: resourceGroup().location
  properties: {
    publisher: 'Microsoft.GuestConfiguration'
    type: 'ConfigurationforLinux'
    typeHandlerVersion: '1.0'
    autoUpgradeMinorVersion: true
    enableAutomaticUpgrade: true
    settings: {}
    protectedSettings: {}
  }
}

So stellen Sie die Erweiterung für Windows bereit:

resource virtualMachine 'Microsoft.Compute/virtualMachines@2021-03-01' existing = {
  name: 'VMName'
}
resource windowsVMGuestConfigExtension 'Microsoft.Compute/virtualMachines/extensions@2020-12-01' = {
  parent: virtualMachine
  name: 'AzurePolicyforWindows'
  location: resourceGroup().location
  properties: {
    publisher: 'Microsoft.GuestConfiguration'
    type: 'ConfigurationforWindows'
    typeHandlerVersion: '1.0'
    autoUpgradeMinorVersion: true
    enableAutomaticUpgrade: true
    settings: {}
    protectedSettings: {}
  }
}

Terraform

So stellen Sie die Erweiterung für Linux bereit:

resource "azurerm_virtual_machine_extension" "gc" {
  name                       = "AzurePolicyforLinux"
  virtual_machine_id         = "myVMID"
  publisher                  = "Microsoft.GuestConfiguration"
  type                       = "ConfigurationforLinux"
  type_handler_version       = "1.0"
  auto_upgrade_minor_version = "true"
}

So stellen Sie die Erweiterung für Windows bereit:

resource "azurerm_virtual_machine_extension" "gc" {
  name                       = "AzurePolicyforWindows"
  virtual_machine_id         = "myVMID"
  publisher                  = "Microsoft.GuestConfiguration"
  type                       = "ConfigurationforWindows"
  type_handler_version       = "1.0"
  auto_upgrade_minor_version = "true"
}

Einstellungen

Es ist nicht erforderlich, Einstellungen oder Eigenschaften mit geschützten Einstellungen in die Erweiterung aufzunehmen. Alle diese Informationen werden vom Agent aus Ressourcen für die Gastkonfigurationszuweisung abgerufen. Beispielsweise werden die Eigenschaften ConfigurationUri, Mode und ConfigurationSetting pro Konfiguration und nicht in der VM-Erweiterung verwaltet.

Fehlercodes des Gastkonfigurations-Ressourcenanbieters

Unten finden Sie eine Liste der möglichen Fehlermeldungen beim Aktivieren der Erweiterung

Fehlercode BESCHREIBUNG
NoComplianceReport Die VM hat die Compliancedaten nicht gemeldet.
GCExtensionMissing Die Gastkonfigurationserweiterung fehlt.
ManagedIdentityMissing Die verwaltete Identität fehlt.
UserIdentityMissing Die vom Benutzer zugewiesene Identität fehlt.
GCExtensionManagedIdentityMissing Gastkonfigurationserweiterung und verwaltete Identität fehlen.
GCExtensionUserIdentityMissing Die Gastkonfigurationserweiterung und Benutzeridentität fehlen.
GCExtensionIdentityMissing Die Gastkonfigurationserweiterung, verwaltete Identität und Benutzeridentität fehlen.

Nächste Schritte