Расширение конфигурации компьютера для автоматического управления Azure

Расширение конфигурации компьютера — это функция автоматического управления Azure, которая выполняет операции аудита и настройки в виртуальных машинах.

Для проверка политик на виртуальных машинах, таких как определения базовых показателей безопасности вычислений Azure для Linux и Windows, необходимо установить расширение конфигурации компьютера.

Предварительные требования

Чтобы позволить виртуальной машине проходить проверку подлинности в службе конфигурации компьютера, она должна иметь управляемое удостоверение, назначаемое системой. Вы можете удовлетворить требования к удостоверению для виртуальной машины, задав "type": "SystemAssigned" свойство :

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

Операционные системы

Поддержка операционной системы для расширения конфигурации компьютера аналогична задокументированной поддержке операционной системы для комплексного решения.

Подключение к Интернету

Агент, установленный расширением конфигурации компьютера, должен иметь возможность получать доступ к пакетам содержимого, перечисленным в назначениях гостевой конфигурации, и сообщать о состоянии в службу конфигурации компьютера. Виртуальная машина может подключаться по исходящему протоколу HTTPS через TCP-порт 443 или через частную сеть.

Дополнительные сведения о частных сетях см. в следующих статьях.

Установка расширения

Вы можете установить и развернуть расширение конфигурации компьютера непосредственно из Azure CLI или PowerShell. Шаблоны развертывания также доступны для Azure Resource Manager (ARM), Bicep и Terraform. Сведения о шаблоне развертывания см. в статье Microsoft.GuestConfiguration guestConfigurationAssignments.

Примечание

В следующих примерах развертывания замените <placeholder> значения параметров конкретными значениями для вашей конфигурации.

Рекомендации по развертыванию

Перед установкой и развертыванием расширения конфигурации компьютера ознакомьтесь со следующими рекомендациями.

Azure CLI

Чтобы развернуть расширение для Linux, выполните следующие действия.

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

Чтобы развернуть расширение для 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

Чтобы развернуть расширение для Linux, выполните следующие действия.

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

Чтобы развернуть расширение для Windows, выполните следующие действия.

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

Шаблон ARM

Чтобы развернуть расширение для 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": {}
  }
}

Чтобы развернуть расширение для 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": {}
  }
}

Шаблон Bicep

Чтобы развернуть расширение для 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: {}
  }
}

Чтобы развернуть расширение для 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: {}
  }
}

Шаблон Terraform

Чтобы развернуть расширение для 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"
}

Чтобы развернуть расширение для 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"
}

Сообщения об ошибках

В следующей таблице перечислены возможные сообщения об ошибках, связанные с включением расширения гостевой конфигурации.

Код ошибки Описание
NoComplianceReport Виртуальная машина не сообщила данные о соответствии.
GCExtensionMissing Отсутствует расширение конфигурации компьютера (гостевой конфигурации).
ManagedIdentityMissing Отсутствует управляемое удостоверение.
UserIdentityMissing Отсутствует назначаемое пользователем удостоверение.
GCExtensionManagedIdentityMissing Отсутствуют расширение конфигурации компьютера (гостевая конфигурация) и управляемое удостоверение.
GCExtensionUserIdentityMissing Отсутствуют расширение конфигурации компьютера (гостевая конфигурация) и удостоверение, назначаемое пользователем.
GCExtensionIdentityMissing Отсутствуют расширение конфигурации компьютера (гостевой конфигурации), управляемое удостоверение и удостоверение, назначаемое пользователем.

Дальнейшие действия