Extension de configuration d’ordinateur Azure Automanage

L’extension Configuration d’ordinateur est une fonctionnalité d’Azure Automanage qui effectue des opérations d’audit et de configuration sur des machines virtuelles (VM).

Pour examiner les stratégies à l’intérieur de machines virtuelles, telles que les définitions de base de référence de sécurité du calcul Azure pour Linux et Windows, l’extension Configuration d’ordinateur doit être installée.

Prérequis

Pour permettre à votre machine virtuelle de s’authentifier auprès du service Configuration d'ordinateur, celle-ci doit disposer d’une identité managée affectée par le système. Vous pouvez répondre à l’exigence d’identité pour votre machine virtuelle en définissant la propriété "type": "SystemAssigned" :

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

Systèmes d’exploitation

La prise en charge du système d'exploitation de l’extension Configuration d’ordinateur est identique à celle du système d’exploitation pour la solution de bout en bout documentée.

Connectivité Internet

L’agent installé par l’extension Configuration d’ordinateur doit être en mesure d’atteindre les packages de contenu répertoriés par les attributions de Configuration d’ordinateur et de signaler l’état au service Configuration d’ordinateur. La machine virtuelle peut se connecter à l’aide du protocole HTTPS sortant sur le port TCP 443 ou d’une connexion fournie via un réseau privé.

Pour en savoir plus sur la mise en réseau privée, consultez les articles suivants :

Installer l’extension

Vous pouvez installer et déployer l’extension de configuration d’ordinateur directement à partir d’Azure CLI ou de PowerShell. Les modèles de déploiement sont également disponibles pour Azure Resource Manager (ARM), Bicep et Terraform. Pour plus d’informations sur le modèle de déploiement, consultez Microsoft.GuestConfigurationAssignments.

Notes

Dans les exemples de déploiement suivants, remplacez les valeurs du paramètre <placeholder> par des valeurs adaptées à votre configuration.

Points à prendre en considération pour le déploiement

Avant d’installer et de déployer l’extension de configuration d’ordinateur, passez en revue les considérations suivantes.

  • Nom d’instance. Lorsque vous installez l’extension de configuration de l’ordinateur, le nom d’instance de l’extension doit être défini sur AzurePolicyforWindows ou AzurePolicyforLinux. Les stratégies de définition de base de référence de sécurité décrites précédemment nécessitent ces chaînes spécifiques.

  • Versions. Par défaut, tous les déploiements sont mis à jour vers la version la plus récente. La valeur de la propriété autoUpgradeMinorVersion est définie sur true par défaut, sauf spécification contraire. Cette fonctionnalité permet d’atténuer les préoccupations relatives à la mise à jour de votre code lorsque de nouvelles versions de l’extension de configuration de machine sont publiées.

  • Mise à niveau automatique. L’extension de configuration de l’ordinateur prend en charge la propriété enableAutomaticUpgrade. Lorsque cette propriété est définie sur true, Azure effectue automatiquement une mise à niveau vers la version la plus récente de l’extension au fur et à mesure que les versions ultérieures sont disponibles. Pour plus d’informations, consultez Mise à niveau automatique des extensions pour les machines virtuelles et les groupes de machines virtuelles identiques dans Azure.

  • Azure Policy. Pour déployer la dernière version de l’extension de configuration de l’ordinateur à grande échelle, y compris les exigences d’identité, suivez les étapes décrites dans Créer une affectation de stratégie pour identifier les ressources non conformes. Créez l’affectation suivante avec Azure Policy :

  • Autres propriétés. Il n’est pas nécessaire d’inclure des paramètres ou des propriétés de paramètre protégés sur l’extension Configuration d'ordinateur. L’agent récupère cette classe d’informations à partir des ressources Attribution de configuration invité de l’API REST Azure. Par exemple, les propriétés ConfigurationUri, Mode et ConfigurationSetting sont toutes gérées par configuration plutôt que sur l’extension de machine virtuelle.

Azure CLI

Pour déployer l’extension pour Linux :

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

Pour déployer l’extension pour 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

Pour déployer l’extension pour Linux :

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

Pour déployer l’extension pour Windows :

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

Modèle ARM

Pour déployer l’extension pour 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": {}
  }
}

Pour déployer l’extension pour 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": {}
  }
}

Modèle Bicep

Pour déployer l’extension pour 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: {}
  }
}

Pour déployer l’extension pour 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: {}
  }
}

Modèle Terraform

Pour déployer l’extension pour 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"
}

Pour déployer l’extension pour 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"
}

Messages d’erreur

Le tableau suivant répertorie les messages d’erreur possibles liés à l’activation de l’extension Configuration invité.

Code d'erreur Description
NoComplianceReport La machine virtuelle n’a pas signalé de données de conformité.
GCExtensionMissing L’extension de configuration d’ordinateur (configuration invité) est manquante.
ManagedIdentityMissing L’identité managée est manquante.
UserIdentityMissing L’identité affectée par l’utilisateur est manquante.
GCExtensionManagedIdentityMissing L’extension de configuration d’ordinateur (configuration invité) et l’identité managée sont manquantes.
GCExtensionUserIdentityMissing L’extension de configuration d’ordinateur (configuration invité) et l’identité affectée par l’utilisateur sont manquantes.
GCExtensionIdentityMissing L’extension de configuration d’ordinateur (configuration invité), l’identité managée et l’identité affectée par l’utilisateur sont manquantes.

Étapes suivantes