Extensão de Configuração de Máquina do Azure
A extensão configuração de máquina executa operações de auditoria e configuração dentro de VMs (máquinas virtuais).
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 de Configuração de Máquina deve ser instalada.
Pré-requisitos
Para permitir que sua VM se autentique no serviço de Configuração de Máquina, sua VM deve ter uma identidade gerenciada atribuída pelo sistema. Você pode atender ao requisito de identidade para sua VM definindo a propriedade "type": "SystemAssigned"
:
"identity": {
"type": "SystemAssigned"
}
Sistemas operacionais
O suporte do sistema operacional para a extensão de Configuração de Máquina é o mesmo que o suporte documentado do sistema operacional para a solução de ponta a ponta.
Conectividade com a Internet
O agente instalado pela extensão de Configuração de Máquina deve ser capaz de acessar os pacotes de conteúdo listados por atribuições de configuração de máquina e relatar o status para o serviço de Configuração de Máquina. A VM pode se conectar usando HTTPS de saída via porta TCP 443 ou uma conexão fornecida por meio de uma rede privada.
Para saber mais sobre rede privada, confira os artigos a seguir:
- Configuração de Máquina do Azure, Comunicação pelo Link Privado do Azure
- Usar pontos de extremidade privados para o Armazenamento do Microsoft Azure
Instalar a extensão
Você pode instalar e implantar a extensão de Configuração de Máquina 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), Bicep e Terraform. Para obter detalhes do modelo de implantação, consulte Microsoft.GuestConfiguration guestConfigurationAssignments.
Observação
Nos exemplos de implantação a seguir, substitua os valores de parâmetro <placeholder>
por valores específicos para sua configuração.
Considerações de implantação
Antes de instalar e implantar a extensão de Configuração de Máquina, examine as considerações a seguir.
Nome da instância. Quando você instala a extensão de Configuração de Máquina, 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
autoUpgradeMinorVersion
assumetrue
como padrão, a menos que seja especificado de outra forma. Esse recurso ajuda a aliviar as preocupações com a atualização do código quando novas versões da extensão de Configuração de Máquina são lançadas.Atualização automática. A extensão de Configuração de Máquina dá suporte à propriedade
enableAutomaticUpgrade
. Quando essa propriedade é definida comotrue
, o Azure atualiza automaticamente para a versão mais recente da extensão à medida que versões futuras se tornarem disponíveis. Para obter mais informações, confira a Atualização automática de extensão para VMs e Conjuntos de Dimensionamento de Máquinas Virtuais no Azure.Azure Policy. Para implantar a versão mais recente da extensão de Configuração de 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 o Azure Policy:
Outras propriedades. Não é preciso incluir configurações ou propriedades de configurações protegidas na extensão de Configuração de Máquina. 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 propriedades
ConfigurationUri
,Mode
eConfigurationSetting
são gerenciadas por configuração, não na extensão de 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 de 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 do Bicep
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 do 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 de Configuração de Convidado.
Código do erro | Descrição |
---|---|
NoComplianceReport | A VM não informou os dados de conformidade. |
GCExtensionMissing | A extensão de Configuração de 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 de Configuração de Máquina (configuração de convidado) e a identidade gerenciada estão ausentes. |
GCExtensionUserIdentityMissing | A extensão de Configuração de Máquina (configuração de convidado) e a identidade atribuída pelo usuário estão ausentes. |
GCExtensionIdentityMissing | A extensão de Configuração de Máquina (configuração de convidado), a identidade gerenciada e a identidade atribuída pelo usuário estão ausentes. |
Próximas etapas
- Para obter mais informações sobre a extensão de Configuração de Máquina, consulte Entender a Configuração de Máquina do Azure.
- Para obter mais informações sobre como as extensões e o agente do Linux funcionam, confira extensões de máquina virtual do Azure e recursos para Linux.
- Para obter mais informações sobre como as extensões e o agente convidado do Windows funcionam, confira Extensões de máquina virtual do Azure e recursos para Windows.
- Para instalar o agente convidado do Windows, confira Visão geral do agente de máquina virtual do Azure.
- Para instalar o Agente do Linux, consulte Noções básicas e uso do Agente Linux do Azure.