Extensão de Configuração de Máquina do Azure
A extensão Configuração da Máquina executa operações de auditoria e configuração dentro de máquinas virtuais (VMs).
Para verificar políticas dentro de VMs, como definições de linha de base de segurança de computação do Azure para Linux e Windows, a extensão Configuração do Computador deve ser instalada.
Pré-requisitos
Para permitir que sua VM se autentique no serviço de Configuração da Máquina, sua VM deve ter uma identidade gerenciada atribuída ao sistema. Você pode satisfazer o requisito de identidade para sua VM definindo a "type": "SystemAssigned"
propriedade:
"identity": {
"type": "SystemAssigned"
}
Sistemas operativos
O suporte do sistema operacional para a extensão de Configuração da Máquina é o mesmo que o suporte documentado do sistema operacional para a solução de ponta a ponta.
Ligação à Internet
O agente instalado pela extensão Configuração da Máquina deve ser capaz de alcançar pacotes de conteúdo listados por atribuições de configuração de convidado e relatar o status para o serviço de Configuração da Máquina. A VM pode se conectar usando HTTPS de saída pela porta TCP 443 ou uma conexão fornecida por meio de rede privada.
Para saber mais sobre redes privadas, consulte os seguintes artigos:
- Azure Mchine Configuration, Comunicar através do Azure Private Link
- Utilizar pontos finais privados para o Armazenamento do Azure
Instalar a extensão
Você pode instalar e implantar a extensão de Configuração do Computador diretamente da CLI do Azure ou do PowerShell. Os modelos de implantação também estão disponíveis para o Azure Resource Manager (ARM), Bíceps e Terraform. Para obter detalhes do modelo de implantação, consulte Microsoft.GuestConfiguration guestConfigurationAssignments.
Nota
Nos exemplos de implantação a seguir, substitua <placeholder>
valores de parâmetro por valores específicos para sua configuração.
Considerações sobre implementação
Antes de instalar e implantar a extensão Configuração do Computador, examine as considerações a seguir.
Nome da instância. Quando você instala a extensão Configuração do Computador, o nome da instância da extensão deve ser definido como
AzurePolicyforWindows
ouAzurePolicyforLinux
. As políticas de definição de linha de base de segurança descritas anteriormente exigem essas cadeias de caracteres específicas.Versões. Por padrão, todas as implantações são atualizadas para a versão mais recente. O valor da propriedade assume como padrão,
autoUpgradeMinorVersion
atrue
menos que especificado de outra forma. Esse recurso ajuda a aliviar as preocupações sobre a atualização do código quando novas versões da extensão de configuração da máquina são lançadas.Atualização automática. A extensão Configuração da Máquina suporta a
enableAutomaticUpgrade
propriedade. Quando essa propriedade é definida comotrue
, o Azure atualiza automaticamente para a versão mais recente da extensão à medida que versões futuras ficam disponíveis. Para obter mais informações, consulte Atualização automática de extensão para VMs e conjuntos de escala de máquina virtual no Azure.Política do Azure. Para implantar a versão mais recente da extensão de Configuração da Máquina em escala, incluindo requisitos de identidade, siga as etapas em Criar uma atribuição de política para identificar recursos não compatíveis. Crie a seguinte atribuição com a Política do Azure:
Outros imóveis. Não é necessário incluir nenhuma configuração ou propriedades de configurações protegidas na extensão Configuração do Computador. O agente recupera essa classe de informações dos recursos de atribuição de Configuração de Convidado da API REST do Azure. Por exemplo, as
ConfigurationUri
propriedades ,Mode
e eConfigurationSetting
são gerenciadas por configuração e não na extensão da VM.
CLI do Azure
Para implantar a extensão para Linux:
az vm extension set --publisher Microsoft.GuestConfiguration --name ConfigurationForLinux --extension-instance-name AzurePolicyforLinux --resource-group <myResourceGroup> --vm-name <myVM> --enable-auto-upgrade true
Para implantar a extensão para 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
Para implantar a extensão para Linux:
Set-AzVMExtension -Publisher 'Microsoft.GuestConfiguration' -ExtensionType 'ConfigurationForLinux' -Name 'AzurePolicyforLinux' -TypeHandlerVersion 1.0 -ResourceGroupName '<myResourceGroup>' -Location '<myLocation>' -VMName '<myVM>' -EnableAutomaticUpgrade $true
Para implantar a extensão para Windows:
Set-AzVMExtension -Publisher 'Microsoft.GuestConfiguration' -ExtensionType 'ConfigurationforWindows' -Name 'AzurePolicyforWindows' -TypeHandlerVersion 1.0 -ResourceGroupName '<myResourceGroup>' -Location '<myLocation>' -VMName '<myVM>' -EnableAutomaticUpgrade $true
Modelo ARM
Para implantar a extensão para 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": {}
}
}
Para implantar a extensão para 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": {}
}
}
Modelo de bíceps
Para implantar a extensão para 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: {}
}
}
Para implantar a extensão para 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: {}
}
}
Modelo Terraform
Para implantar a extensão para 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"
}
Para implantar a extensão para 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"
}
Mensagens de erro
A tabela a seguir lista possíveis mensagens de erro relacionadas à habilitação da extensão Configuração de Convidado.
Código de erro | Description |
---|---|
NoComplianceReport | A VM não relatou os dados de conformidade. |
GCExtensionMissing | A extensão Configuração da Máquina (configuração de convidado) está ausente. |
ManagedIdentityMissing | A identidade gerenciada está ausente. |
UserIdentityMissing | A identidade atribuída pelo usuário está ausente. |
GCExtensionManagedIdentityMissing | A extensão Configuração da Máquina (configuração de convidado) e a identidade gerenciada estão ausentes. |
GCExtensionUserIdentityMissing | A extensão Configuração da Máquina (configuração de convidado) e a identidade atribuída pelo usuário estão ausentes. |
GCExtensionIdentityMissing | A extensão Configuração da Máquina (configuração de convidado), a identidade gerenciada e a identidade atribuída pelo usuário estão ausentes. |
Próximos passos
- Para obter mais informações sobre a extensão Configuração da Máquina, consulte Compreender a Configuração da Máquina do Azure.
- Para obter mais informações sobre como o Agente Linux e as extensões funcionam, consulte Extensões e recursos de máquina virtual para Linux.
- Para obter mais informações sobre como o Windows Guest Agent e as extensões funcionam, consulte Extensões e recursos de máquina virtual para Windows.
- Para instalar o Windows Guest Agent, consulte Visão geral do Agente de Máquina Virtual do Azure.
- Para instalar o Agente Linux, consulte Compreendendo e usando o Agente Linux do Azure.