Rozszerzenie konfiguracji maszyny automatycznej platformy Azure

Rozszerzenie konfiguracji maszyny to funkcja usługi Azure Automanage, która wykonuje operacje inspekcji i konfiguracji na maszynach wirtualnych.

Aby sprawdzić zasady wewnątrz maszyn wirtualnych, takie jak definicje punktów odniesienia zabezpieczeń obliczeń platformy Azure dla systemów Linux i Windows, należy zainstalować rozszerzenie konfiguracji maszyny.

Wymagania wstępne

Aby umożliwić maszynie wirtualnej uwierzytelnianie w usłudze konfiguracji maszyny, maszyna wirtualna musi mieć tożsamość zarządzaną przypisaną przez system. Możesz spełnić wymagania dotyczące tożsamości maszyny wirtualnej, ustawiając "type": "SystemAssigned" właściwość :

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

Systemy operacyjne

Obsługa systemu operacyjnego dla rozszerzenia konfiguracji maszyny jest taka sama jak udokumentowana obsługa systemu operacyjnego dla kompleksowego rozwiązania.

Łączność z Internetem

Agent zainstalowany przez rozszerzenie konfiguracji maszyny musi być w stanie uzyskać dostęp do pakietów zawartości wymienionych przez przypisania konfiguracji gościa i zgłosić stan do usługi konfiguracji maszyny. Maszyna wirtualna może łączyć się przy użyciu wychodzącego protokołu HTTPS za pośrednictwem portu TCP 443 lub połączenia udostępnianego za pośrednictwem sieci prywatnej.

Aby dowiedzieć się więcej o sieci prywatnej, zobacz następujące artykuły:

Instalowanie rozszerzenia

Rozszerzenie konfiguracji maszyny można zainstalować i wdrożyć bezpośrednio z poziomu interfejsu wiersza polecenia platformy Azure lub programu PowerShell. Szablony wdrażania są również dostępne dla usługi Azure Resource Manager (ARM), Bicep i Terraform. Aby uzyskać szczegółowe informacje na temat szablonu wdrożenia, zobacz Microsoft.GuestConfiguration GuestConfigurationAssignments.

Uwaga

W poniższych przykładach wdrożenia zastąp <placeholder> wartości parametrów określonymi wartościami konfiguracji.

Uwagi dotyczące wdrażania

Przed zainstalowaniem i wdrożeniem rozszerzenia konfiguracji maszyny zapoznaj się z poniższymi zagadnieniami.

  • Nazwa wystąpienia. Podczas instalowania rozszerzenia konfiguracji maszyny nazwa wystąpienia rozszerzenia musi być ustawiona na AzurePolicyforWindows lub AzurePolicyforLinux. Opisane wcześniej zasady definicji punktu odniesienia zabezpieczeń wymagają tych określonych ciągów.

  • Wersje. Domyślnie wszystkie wdrożenia są aktualizowane do najnowszej wersji. Wartość autoUpgradeMinorVersion właściwości jest domyślnie ustawiona, true chyba że określono inaczej. Ta funkcja pomaga złagodzić obawy dotyczące aktualizowania kodu po wydaniu nowych wersji rozszerzenia konfiguracji maszyny.

  • Automatyczne uaktualnianie. Rozszerzenie konfiguracji maszyny enableAutomaticUpgrade obsługuje właściwość . Gdy ta właściwość jest ustawiona na truewartość , platforma Azure automatycznie uaktualnia do najnowszej wersji rozszerzenia, ponieważ przyszłe wersje staną się dostępne. Aby uzyskać więcej informacji, zobacz Automatyczne uaktualnianie rozszerzeń dla maszyn wirtualnych i zestawów skalowania maszyn wirtualnych na platformie Azure.

  • Azure Policy. Aby wdrożyć najnowszą wersję rozszerzenia konfiguracji maszyny na dużą skalę, w tym wymagania dotyczące tożsamości, wykonaj kroki opisane w temacie Tworzenie przypisania zasad, aby zidentyfikować niezgodne zasoby. Utwórz następujące przypisanie za pomocą usługi Azure Policy:

  • Inne właściwości. Nie musisz uwzględniać żadnych ustawień ani właściwości ustawień chronionych w rozszerzeniu konfiguracji maszyny. Agent pobiera tę klasę informacji z zasobów przypisywania konfiguracji gościa interfejsu API REST platformy Azure. Na przykład ConfigurationUriwłaściwości , Modei ConfigurationSetting są zarządzane dla każdej konfiguracji, a nie w rozszerzeniu maszyny wirtualnej.

Interfejs wiersza polecenia platformy Azure

Aby wdrożyć rozszerzenie dla systemu Linux:

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

Aby wdrożyć rozszerzenie dla systemu Windows:

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

PowerShell

Aby wdrożyć rozszerzenie dla systemu Linux:

Set-AzVMExtension -Publisher 'Microsoft.GuestConfiguration' -ExtensionType 'ConfigurationForLinux' -Name 'AzurePolicyforLinux' -TypeHandlerVersion 1.0 -ResourceGroupName '<myResourceGroup>' -Location '<myLocation>' -VMName '<myVM>' -EnableAutomaticUpgrade $true

Aby wdrożyć rozszerzenie dla systemu Windows:

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

Szablon ARM

Aby wdrożyć rozszerzenie dla systemu Linux:

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

Aby wdrożyć rozszerzenie dla systemu Windows:

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

Szablon Bicep

Aby wdrożyć rozszerzenie dla systemu Linux:

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: {}
  }
}

Aby wdrożyć rozszerzenie dla systemu Windows:

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: {}
  }
}

Szablon narzędzia Terraform

Aby wdrożyć rozszerzenie dla systemu Linux:

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

Aby wdrożyć rozszerzenie dla systemu Windows:

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

Komunikaty o błędach

W poniższej tabeli wymieniono możliwe komunikaty o błędach związane z włączaniem rozszerzenia Konfiguracji gościa.

Kod błędu opis
NoComplianceReport Maszyna wirtualna nie zgłosiła danych zgodności.
GCExtensionMissing Brak rozszerzenia konfiguracji maszyny (konfiguracji gościa).
ManagedIdentityMissing Brak tożsamości zarządzanej.
UserIdentityMissing Brak tożsamości przypisanej przez użytkownika.
GCExtensionManagedIdentityMissing Brak rozszerzenia konfiguracji komputera (konfiguracji gościa) i tożsamości zarządzanej.
GCExtensionUserIdentityMissing Brak rozszerzenia konfiguracji komputera (konfiguracji gościa) i tożsamości przypisanej przez użytkownika.
GCExtensionIdentityMissing Brak rozszerzenia konfiguracji maszyny (konfiguracji gościa), tożsamości zarządzanej i tożsamości przypisanej przez użytkownika.

Następne kroki