Azure Otomatik Yönetim makine yapılandırma uzantısı

Makine yapılandırma uzantısı, sanal makineler (VM' ler) içinde denetim ve yapılandırma işlemleri gerçekleştiren bir Azure Otomatik Yönetim özelliğidir.

Linux ve Windows için Azure işlem güvenliği temel tanımları gibi VM'lerin içindeki ilkeleri denetlemek için makine yapılandırma uzantısının yüklenmesi gerekir.

Önkoşullar

VM'nizin makine yapılandırma hizmetinde kimlik doğrulaması yapmasını sağlamak için vm'nizin sistem tarafından atanan yönetilen bir kimliği olmalıdır. Özelliğini ayarlayarak VM'nizin kimlik gereksinimini "type": "SystemAssigned" karşılayabilirsiniz:

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

İşletim sistemleri

Makine yapılandırma uzantısı için işletim sistemi desteği, uçtan uca çözüm için belgelenmiş işletim sistemi desteğiyle aynıdır.

İnternet bağlantısı

Makine yapılandırma uzantısı tarafından yüklenen aracının konuk yapılandırma atamaları tarafından listelenen içerik paketlerine ulaşabilmesi ve makine yapılandırma hizmetine durum bildirebilmesi gerekir. VM, 443 numaralı TCP bağlantı noktası üzerinden giden HTTPS'yi veya özel ağ üzerinden sağlanan bir bağlantıyı kullanarak bağlanabilir.

Özel ağ hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın:

Uzantıyı yükleme

Makine yapılandırma uzantısını doğrudan Azure CLI veya PowerShell'den yükleyebilir ve dağıtabilirsiniz. Dağıtım şablonları Azure Resource Manager (ARM), Bicep ve Terraform için de kullanılabilir. Dağıtım şablonu ayrıntıları için bkz . Microsoft.GuestConfiguration guestConfigurationAssignments.

Not

Aşağıdaki dağıtım örneklerinde, parametre değerlerini yapılandırmanız için belirli değerlerle değiştirin <placeholder> .

Dağıtma konuları

Makine yapılandırma uzantısını yüklemeden ve dağıtmadan önce aşağıdaki noktaları gözden geçirin.

  • Örnek adı. Makine yapılandırma uzantısını yüklediğinizde, uzantının örnek adı veya AzurePolicyforLinuxolarak AzurePolicyforWindows ayarlanmalıdır. Daha önce açıklanan güvenlik temeli tanım ilkeleri bu belirli dizeleri gerektirir.

  • Sürümler. Varsayılan olarak, tüm dağıtımlar en son sürüme güncelleştirilir. Özelliğin autoUpgradeMinorVersion değeri, aksi belirtilmedikçe varsayılan olarak true belirtilir. Bu özellik, makine yapılandırma uzantısının yeni sürümleri yayımlandığında kodunuzu güncelleştirmeyle ilgili endişeleri hafifletmeye yardımcı olur.

  • Otomatik yükseltme. Makine yapılandırma uzantısı özelliğini destekler enableAutomaticUpgrade . Bu özellik olarak trueayarlandığında, gelecekteki sürümler kullanıma sunulduklarında Azure uzantının en son sürümüne otomatik olarak yükseltilir. Daha fazla bilgi için bkz. Azure'da VM'ler ve Sanal Makine Ölçek Kümeleri için Otomatik Uzantı Yükseltme.

  • Azure İlkesi. Makine yapılandırma uzantısının kimlik gereksinimleri de dahil olmak üzere en son sürümünü uygun ölçekte dağıtmak için Uyumsuz kaynakları tanımlamak için İlke ataması oluşturma'daki adımları izleyin. Azure İlkesi ile aşağıdaki atamayı oluşturun:

  • Diğer özellikler. Makine yapılandırma uzantısına herhangi bir ayar veya protected-settings özelliği eklemeniz gerekmez. Aracı, Azure REST API Konuk Yapılandırması atama kaynaklarından bu bilgi sınıfını alır. Örneğin, ConfigurationUri, Modeve ConfigurationSetting özellikleri vm uzantısı yerine yapılandırma başına yönetilen özelliklerdir.

Azure CLI

Linux uzantısını dağıtmak için:

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

Windows uzantısını dağıtmak için:

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 uzantısını dağıtmak için:

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

Windows uzantısını dağıtmak için:

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

ARM şablonu

Linux uzantısını dağıtmak için:

{
  "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 uzantısını dağıtmak için:

{
  "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 şablonu

Linux uzantısını dağıtmak için:

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 uzantısını dağıtmak için:

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 şablonu

Linux uzantısını dağıtmak için:

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 uzantısını dağıtmak için:

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

Hata iletileri

Aşağıdaki tabloda Konuk Yapılandırması uzantısını etkinleştirmeyle ilgili olası hata iletileri listelenmektedir.

Hata kodu Açıklama
NoComplianceReport VM uyumluluk verilerini bildirmedi.
GCExtensionMissing Makine yapılandırması (konuk yapılandırması) uzantısı eksik.
ManagedIdentityMissing Yönetilen kimlik eksik.
UserIdentityMissing Kullanıcı tarafından atanan kimlik eksik.
GCExtensionManagedIdentityMissing Makine yapılandırması (konuk yapılandırması) uzantısı ve yönetilen kimlik eksik.
GCExtensionUserIdentityMissing Makine yapılandırması (konuk yapılandırması) uzantısı ve kullanıcı tarafından atanan kimlik eksik.
GCExtensionIdentityMissing Makine yapılandırması (konuk yapılandırması) uzantısı, yönetilen kimlik ve kullanıcı tarafından atanan kimlik eksik.

Sonraki adımlar

  • Makine yapılandırma uzantısı hakkında daha fazla bilgi için bkz . Azure Otomatik Yönetim'in makine yapılandırma özelliğini anlama.
  • Linux Aracısı ve uzantılarının nasıl çalıştığı hakkında daha fazla bilgi için bkz . Linux için sanal makine uzantıları ve özellikleri.
  • Windows Konuk Aracısı ve uzantılarının nasıl çalıştığı hakkında daha fazla bilgi için bkz . Windows için sanal makine uzantıları ve özellikleri.
  • Windows Konuk Aracısı'nı yüklemek için bkz . Azure Sanal Makine Aracısı'na genel bakış.
  • Linux Aracısı'nı yüklemek için bkz . Azure Linux Aracısı'nı anlama ve kullanma.