Обзор расширения гостевой конфигурации

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

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

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

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

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

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

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

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

Как установить расширение?

Имя экземпляра расширения должно иметь значение AzurePolicyforWindows или AzurePolicyforLinux, так как указанные выше политики зависят от этих строк.

По умолчанию все развертывания обновляются до последней версии. Если не указано иное, свойство autoUpgradeMinorVersion по умолчанию имеет значение true. Вам не нужно беспокоиться об обновлении кода при выпуске новых версий расширения.

Автоматическое обновление

Расширение гостевой конфигурации поддерживает свойство enableAutomaticUpgrade. Если для этого свойства задано значение true, Azure будет автоматически обновляться до последней версии расширения по мере появления следующих выпусков. Дополнительные сведения см. на странице Автоматическое обновление расширений для виртуальных машин и масштабируемых наборов в Azure

Политика Azure

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

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

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' -Type 'ConfigurationforLinux' -Name 'AzurePolicyforLinux' -TypeHandlerVersion 1.0 -ResourceGroupName 'myResourceGroup' -Location 'myLocation' -VMName 'myVM' -EnableAutomaticUpgrade $true

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

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

Шаблон Resource Manager

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

Параметры

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

Коды ошибок поставщика ресурсов гостевой конфигурации

Ниже приведен список возможных сообщений об ошибках при включении расширения.

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

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