Azure 機器設定延伸模組
機器設定延伸模組會在虛擬機器 (VM) 內執行稽核與設定作業。
若要檢查 VM 內部的原則,例如適用於 Linux 和 Windows 的 Azure 計算安全性基準定義,必須安裝機器設定延伸模組。
必要條件
若要讓您的 VM 能夠向機器設定服務進行驗證,該 VM 必須具有系統指派的受控識別。 您可以藉由設定 "type": "SystemAssigned"
屬性,以滿足 VM 的身分識別需求:
"identity": {
"type": "SystemAssigned"
}
作業系統
機器設定延伸模組的作業系統支援與端對端解決方案的作業系統支援 (部分機器翻譯) 記錄相同。
網際網路連線能力
機器設定延伸模組所安裝的代理程式必須能夠連線至來賓設定指派所列出的內容套件,並向機器設定服務回報狀態。 VM 可以使用透過 TCP 連接埠 443 的輸出 HTTPS 或透過專用網提供的連線來連線。
若要深入了解私人網路,請參閱下列文章:
安裝延伸模組
您可以直接從 Azure CLI 或 PowerShell 安裝及部署機器設定延伸模組。 部署範本也適用於 Azure Resource Manager (ARM)、Bicep 及 Terraform。 如需部署範本詳細資料,請參閱 Microsoft.GuestConfiguration guestConfigurationAssignments。
注意
在下列部署範例中,將 <placeholder>
參數值取代為您設定的特定值。
部署考量
在安裝及部署機器設定延伸模組之前,請先檢閱下列考量事項。
執行個體名稱。 當您安裝機器設定延伸模組時,延伸模組的執行個體名稱必須設定為
AzurePolicyforWindows
或AzurePolicyforLinux
。 稍早所述的安全性基準定義原則需要這些特定的字串。版本。 根據預設,所有的部署都會更新為最新版本。 除非另有指定,否則
autoUpgradeMinorVersion
屬性值預設為true
。 此功能有助於緩解在發行新版機器設定延伸模組時更新程式碼的顧慮。自動升級。 機器設定延伸模組支援
enableAutomaticUpgrade
屬性。 當此屬性設定為true
時,Azure 會在未來有新版本可供使用時,自動升級至最新版本的擴充功能。 如需詳細資訊,請參閱 Azure 中的 VM 和虛擬機器擴展集自動延伸模組升級。Azure 原則。 若要大規模部署最新版本的機器設定延伸模組,包括身分識別需求,請遵循建立原則指派,以識別不相容資源中的步驟。 使用 Azure 原則建立下列指派:
其他屬性。 您不需要在機器設定延伸模組中包含任何設定或受保護的設定屬性。 代理程式會從 Azure REST API 客體設定指派資源擷取此類別的資訊。 例如,
ConfigurationUri
、Mode
及ConfigurationSetting
屬性都是每個設定管理的,而不是在 VM 延伸模組上。
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 | VM 尚未回報合規性資料。 |
GCExtensionMissing | 遺失機器設定 (來賓設定) 延伸模組。 |
ManagedIdentityMissing | 遺失受控識別。 |
UserIdentityMissing | 缺少使用者指派的身分識別。 |
GCExtensionManagedIdentityMissing | 遺失機器設定 (來賓設定) 延伸模組和受控識別。 |
GCExtensionUserIdentityMissing | 遺失機器設定 (來賓設定) 延伸模組和使用者指派的身分識別。 |
GCExtensionIdentityMissing | 遺失機器設定 (來賓設定) 延伸模組、受控識別和使用者指派的身分識別。 |
下一步
- 如需機器設定延伸模組的詳細資訊,請參閱了解 Azure 機器設定 (部分機器翻譯)。
- 如需有關 Linux 代理程式和擴充功能運作方式的詳細資訊,請參閱適用於 Linux 的虛擬機器擴充功能和功能。
- 如需 Windows 客體代理程式和擴充功能運作方式的詳細資訊,請參閱 Windows 的虛擬機擴充功能和功能。
- 若要安裝 Windows 客體代理程式,請參閱 Azure 虛擬機器代理程式概觀。
- 若要安裝 Linux 代理程式,請參閱瞭解和使用 Azure Linux 代理程式。