Erweiterung für die Azure-Computerkonfiguration

Die Erweiterung „Computerkonfiguration“ führt Überprüfungs- und Konfigurationsvorgänge auf VMs (virtuellen Computern) durch.

Zum Überprüfen von Richtlinien auf VMs, z. B. Definitionen für Sicherheitsbaselines von Azure Compute für Linux und Windows, muss die Computerkonfigurationserweiterung installiert sein.

Voraussetzungen

Damit sich Ihre VM beim Computerkonfigurationsdienst authentifizieren kann, muss Ihre VM über eine systemseitig zugewiesene verwaltete Identität verfügen. Sie können die Identitätsanforderung für Ihre VM erfüllen, indem Sie die "type": "SystemAssigned"-Eigenschaft festlegen:

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

Betriebssysteme

Die Betriebssystemunterstützung für die Computerkonfigurationserweiterung ist identisch mit der dokumentierten Betriebssystemunterstützung für die End-to-End-Lösung.

Internetkonnektivität

Der von der Computerkonfigurationserweiterung installierte Agent muss Inhaltspakete erreichen können, die unter Gastkonfigurationszuweisungen aufgeführt sind, und den Status an den Computerkonfigurationsdienst melden. Die VM kann eine Verbindung über ausgehenden HTTPS-Datenverkehr über TCP-Port 443 herstellen, oder über eine Verbindung, die über private Netzwerke bereitgestellt wird.

Weitere Informationen zu privaten Netzwerken finden Sie in folgenden Artikeln:

Installieren der Erweiterung

Sie können die Computerkonfigurationserweiterung direkt über die Azure-Befehlszeilenschnittstelle oder PowerShell installieren und bereitstellen. Bereitstellungsvorlagen sind auch für Azure Resource Manager (ARM), Bicep und Terraform verfügbar. Informationen zur Bereitstellungsvorlage finden Sie unter Microsoft.GuestConfiguration guestConfigurationAssignments.

Hinweis

Ersetzen Sie in den folgenden Bereitstellungsbeispielen <placeholder>-Parameterwerte durch bestimmte Werte für Ihre Konfiguration.

Überlegungen zur Bereitstellung

Bevor Sie die Computerkonfigurationserweiterung installieren und bereitstellen, lesen Sie die folgenden Überlegungen.

  • Instanzname. Wenn Sie die Computerkonfigurationserweiterung installieren, muss der Instanzname der Erweiterung auf AzurePolicyforWindows oder AzurePolicyforLinux festgelegt werden. Die zuvor beschriebenen Richtlinien für die Definition der Sicherheitsbaseline erfordern diese spezifischen Zeichenfolgen.

  • Versionen. Standardmäßig werden alle Bereitstellungen auf die neueste Version aktualisiert. Der Wert der autoUpgradeMinorVersion-Eigenschaft ist standardmäßig auf „true“ festgelegt, sofern nichts anderes angegeben ist. Diese Funktion hilft, Bedenken hinsichtlich der Aktualisierung Ihres Codes zu zerstreuen, wenn neue Versionen der Computerkonfigurationserweiterung veröffentlicht werden.

  • Automatisches Upgrade. Die Computerkonfigurationserweiterung unterstützt die enableAutomaticUpgrade-Eigenschaft. 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 unter Automatisches Erweiterungsupgrade für VMs und VM-Skalierungsgruppen in Azure.

  • Azure Policy. Führen Sie die Schritte unter Erstellen einer Richtlinienzuweisung zum Identifizieren nicht konformer Ressourcen aus, um die neueste Version der Computerkonfigurationserweiterung im großen Stil bereitzustellen, einschließlich Identitätsanforderungen. Erstellen Sie die folgende Zuweisung mit Azure Policy:

  • Weitere Eigenschaften. Sie müssen keine Einstellungen oder Eigenschaften mit geschützten Einstellungen in die Computerkonfigurationserweiterung aufnehmen. Der Agent ruft diese Klasse von Informationen aus den Azure REST-API-Gastkonfigurationszuweisungressourcen ab. Beispielsweise werden die Eigenschaften ConfigurationUri, Mode und ConfigurationSetting pro Konfiguration und nicht in der VM-Erweiterung verwaltet.

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' -ExtensionType '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' -ExtensionType 'ConfigurationforWindows' -Name 'AzurePolicyforWindows' -TypeHandlerVersion 1.0 -ResourceGroupName '<myResourceGroup>' -Location '<myLocation>' -VMName '<myVM>' -EnableAutomaticUpgrade $true

ARM-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-Vorlage

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-Vorlage

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"
}

Fehlermeldungen

In der folgenden Tabelle sind mögliche Fehlermeldungen im Zusammenhang mit der Aktivierung der Gastkonfigurationserweiterung aufgeführt.

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

Nächste Schritte