Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo descreve os fundamentos das extensões de VM para servidores habilitados para Azure Arc e detalha como as configurações de extensão podem ser personalizadas.
Noções básicas de extensão
As extensões de máquina virtual (VM) para servidores habilitados para Azure Arc são complementos opcionais que habilitam outras funcionalidades, como monitoramento, gerenciamento de patches e execução de scripts. As extensões são publicadas pela Microsoft e por terceiros selecionados no Azure Marketplace e armazenadas em contas de armazenamento gerenciadas pela Microsoft. Todas as extensões são verificadas em busca de malware como parte do processo de publicação. As extensões suportadas para servidores habilitados para Azure Arc são idênticas às disponíveis para VMs do Azure, garantindo consistência em todos os seus ambientes operacionais.
As extensões são baixadas diretamente do Armazenamento do Azure (*.blob.core.windows.net) à medida que são instaladas ou atualizadas, a menos que você configure pontos de extremidade privados. As contas de armazenamento mudam regularmente e não podem ser previstas com antecedência. Quando pontos de extremidade privados são usados, as extensões são intermediadas por proxy por meio da URL regional para o serviço Azure Arc.
Um arquivo de catálogo assinado digitalmente é baixado separadamente do pacote de extensão e usado para verificar a integridade de cada extensão antes que o gerenciador de extensões abra ou execute o pacote de extensão. Se o arquivo ZIP baixado para a extensão não corresponder ao conteúdo do arquivo de catálogo, a operação de extensão será anulada.
As extensões podem ter configurações para personalizar ou configurar a instalação, como URLs de proxy ou chaves de API que conectam um agente de monitoramento ao seu serviço de nuvem. As configurações de extensão se enquadram em duas categorias: configurações regulares e configurações protegidas. As configurações protegidas não persistem no Azure e são criptografadas em repouso em sua máquina local.
Todas as operações de extensão são originadas do Azure por meio de uma chamada de API, CLI, PowerShell ou ação do portal do Azure. Esse design garante que qualquer ação para instalar, atualizar ou atualizar uma extensão em um servidor seja registrada no Log de Atividades do Azure Monitor. O agente Azure Connected Machine permite que as extensões sejam removidas localmente para fins de solução de problemas e limpeza. No entanto, se a extensão for removida localmente e o serviço ainda esperar que a máquina tenha essa extensão, a extensão será reinstalada na próxima vez que o gerenciador de extensões sincronizar com o Azure.
Execução de scripts
O gestor de extensões pode ser usado para executar scripts em máquinas usando a Extensão de Script Personalizado ou o Executar Comando. Por padrão, esses scripts são executados no contexto de usuário do gerenciador de extensões – Sistema Local no Windows ou raiz no Linux – o que significa que esses scripts têm acesso irrestrito à máquina. Se não pretendes usar estas funcionalidades, podes bloqueá-las usando uma lista de permissão ou lista de bloqueios. Por exemplo, a menos que você planeje usar a extensão Script Personalizado para execução remota de código, você deve desabilitar seu uso, pois ele pode ser usado por invasores para executar remotamente comandos que implantam código mal-intencionado.
Controles de segurança do agente local
Opcionalmente, você pode limitar as extensões que podem ser instaladas no servidor e desabilitar a Configuração de Convidado. Esses controles podem ser úteis ao conectar servidores ao Azure para uma única finalidade, como coletar logs de eventos, sem permitir que outros recursos de gerenciamento sejam usados no servidor.
Esses controles de segurança só podem ser configurados executando um comando no próprio servidor e não podem ser modificados do Azure. Essa abordagem preserva a intenção do administrador do servidor ao habilitar cenários de gerenciamento remoto com o Azure Arc, mas também significa que é mais difícil alterar essas opções posteriormente. Esses controles destinam-se a servidores confidenciais, como controladores de domínio do Ative Directory, servidores que lidam com dados de pagamento e servidores sujeitos a medidas rigorosas de controle de alterações). Na maioria dos outros casos, não é necessário modificar essas configurações.
Listas de permissão e listas de bloqueio
O agente Azure Connected Machine suporta uma lista de permissão e uma lista de blocos para restringir que extensões podem ser instaladas na sua máquina. As listas de permissão são exclusivas, o que significa que apenas as extensões específicas que inclui na lista podem ser instaladas. As listas de bloqueio são exclusivas, o que significa que qualquer coisa que não seja essas extensões pode ser instalada. As listas de permissão são preferíveis às listas de bloqueio porque bloqueiam inerentemente quaisquer novas extensões que fiquem disponíveis no futuro.
Listas de permissão e listas de blocos são configuradas localmente por servidor. Isso garante que ninguém, nem mesmo um usuário com permissões de Proprietário ou Administrador Global no Azure, possa substituir suas regras de segurança tentando instalar uma extensão não autorizada. Se alguém tentar instalar uma extensão não autorizada, o gerenciador de extensões se recusará a instalá-la e marcará o relatório de instalação da extensão como uma falha no Azure.
Listas de permissão e listas de blocos podem ser configuradas a qualquer momento após a instalação do agente, incluindo antes de este ser ligado ao Azure.
Se não houver lista de permissões ou listas de bloqueios configuradas no agente, todas as extensões são permitidas.
A opção mais segura é permitir explicitamente as extensões que você espera que sejam instaladas. Qualquer extensão que não esteja na lista de autorização é automaticamente bloqueada. Por exemplo, para configurar o agente de Máquina Conectada do Azure para permitir apenas o Agente do Azure Monitor para Linux, execute o seguinte comando em cada servidor:
azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
Por exemplo, este comando bloqueia extensões que têm a capacidade de executar scripts arbitrários:
azcmagent config set extensions.blocklist "Microsoft.Cplat.Core/RunCommandHandlerWindows, Microsoft.Cplat.Core/RunCommandHandlerLinux,Microsoft.Compute/CustomScriptExtension,Microsoft.Azure.Extensions/CustomScript,Microsoft.Azure.Automation.HybridWorker/HybridWorkerForWindows,Microsoft.Azure.Automation/HybridWorkerForLinux,Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent, Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux"
Especifique extensões com seus publicadores e tipos, separados por uma barra /. Veja os detalhes das extensões mais comuns nos documentos.
Você pode listar as extensões de VM que já estão instaladas em seu servidor no portal, Azure PowerShell ou Azure CLI.
A tabela descreve o comportamento das operações de extensão aplicadas a um agente que tem a lista de permissão ou lista de bloqueios configurada.
| Operation | Na lista de autorização | Na lista de bloqueio | Tanto na lista de permissões como na lista de bloqueio | Não está em nenhuma lista, mas uma lista de permissão está configurada |
|---|---|---|---|---|
| Instalar a extensão | Allowed | Blocked | Blocked | Blocked |
| Atualizar (reconfigurar) extensão | Allowed | Blocked | Blocked | Blocked |
| Extensão de atualização | Allowed | Blocked | Blocked | Blocked |
| Excluir extensão | Allowed | Allowed | Allowed | Allowed |
Important
Se uma extensão já estiver instalada no seu servidor antes de configurar uma lista de permissões ou lista de bloqueios, ela não é removida. É sua responsabilidade excluir a extensão do Azure para removê-la totalmente da máquina. As solicitações de exclusão são sempre aceitas para acomodar esse cenário. Depois de eliminados, a lista de autorizações e a lista de bloqueios determinam se permitem ou não futuras tentativas de instalação.
O valor Allow/None da lista de permitir instrui o gestor de extensões a executar, mas não permite a instalação de quaisquer extensões. Esse valor é recomendado ao usar o Azure Arc para fornecer Atualizações de Segurança Estendidas (ESU) do Windows Server 2012 sem a intenção de usar outras extensões.
azcmagent config set extensions.allowlist "Allow/None"
Azure Policy
Outra opção para restringir quais extensões podem ser instaladas é usar a Política do Azure. As políticas têm a vantagem de serem configuráveis na nuvem, portanto, uma alteração em cada servidor individual não é necessária se você precisar alterar a lista de extensões aprovadas. No entanto, qualquer pessoa com permissão para modificar atribuições de política pode substituir ou remover essa proteção. Se você optar por usar a Política do Azure para restringir extensões, verifique quais contas em sua organização têm permissão para editar atribuições de política e se as medidas apropriadas de controle de alterações estão em vigor.
Modo de monitorização do agente
Por defeito, o agente Connected Machine corre em modo completo, o que permite instalar e usar todas as extensões (a menos que seja restringido por listas de permissão, listas de blocos ou Política Azure). Uma maneira simples de configurar controles de segurança locais para cenários de monitoramento e segurança é habilitar o modo de monitoramento para o agente de Máquina Conectada.
Quando o agente está no modo de monitor, apenas extensões relacionadas ao monitoramento e à segurança, como o Azure Monitor Agent e o Microsoft Defender for Cloud, podem ser implantadas. O agente bloqueia quaisquer extensões que possam alterar a configuração do sistema ou executar scripts arbitrários e desativa o agente de política de configuração convidado.
À medida que novas extensões se tornam disponíveis, a Microsoft atualiza a lista de permitidos em modo monitor. Você pode revisar a lista atual de extensões permitidas executando azcmagent config list.
Para ativar o modo de monitor, execute o seguinte comando:
azcmagent config set config.mode monitor
Você pode verificar o modo atual do agente e as extensões permitidas com o seguinte comando:
azcmagent config list
Enquanto estiver em modo monitor, não pode modificar a lista de permissões ou a lista de bloqueios da extensão. Se precisares de alterar qualquer uma das listas, muda o agente de volta para o modo completo e especifica a tua própria lista de permissão e lista de bloqueio em vez de usares o modo monitor.
Para alterar o agente de volta ao modo completo, execute o seguinte comando:
azcmagent config set config.mode full
Práticas recomendadas para máquinas protegidas
Ao configurar o agente do Azure Connected Machine com um conjunto reduzido de recursos, é importante considerar os mecanismos que alguém pode usar para remover essas restrições e implementar os controles apropriados. Qualquer pessoa capaz de executar comandos como administrador ou usuário raiz no servidor pode alterar a configuração do agente da Máquina Conectada do Azure. As extensões e as políticas de configuração de convidado são executadas em contextos privilegiados no servidor e, como tal, podem alterar a configuração do agente. Se você aplicar controles de segurança do agente local para bloquear o agente, a Microsoft recomendará as seguintes práticas recomendadas para garantir que apenas os administradores do servidor local possam atualizar a configuração do agente:
- Use listas de permissão para extensões em vez de listas de blocos sempre que possível.
- Não permita a Extensão de Script Personalizado, a menos que você precise dela para uma finalidade específica.
- Desative a Configuração de Convidado para impedir o uso de políticas personalizadas de Configuração de Convidado que possam alterar a configuração do agente.
Exemplo de configuração para cenários de monitoramento e segurança
É comum usar o Azure Arc para monitorar seus servidores com o Azure Monitor e o Microsoft Sentinel e protegê-los com o Microsoft Defender for Cloud. Esta seção contém exemplos de como bloquear o agente para oferecer suporte apenas a cenários de monitoramento e segurança.
Somente Agente do Azure Monitor
Em servidores Windows, execute os seguintes comandos em um console de comando elevado:
azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorWindowsAgent"
azcmagent config set guestconfiguration.enabled false
Em servidores Linux, execute os seguintes comandos:
sudo azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
sudo azcmagent config set guestconfiguration.enabled false
Monitorização e segurança
O Microsoft Defender for Cloud implanta extensões em seu servidor para identificar software vulnerável em seu servidor e habilitar o Microsoft Defender for Endpoint (se configurado). O Microsoft Defender for Cloud também usa a Configuração de Convidado para seu recurso de conformidade regulamentar. Como uma atribuição personalizada de Guest Configuration pode ser utilizada para desfazer as limitações do agente, deve-se avaliar cuidadosamente se necessita do recurso de conformidade regulamentar e, portanto, se a Guest Configuration deve estar habilitada na máquina.
Em servidores Windows, execute os seguintes comandos em um console de comando elevado:
azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Qualys/WindowsAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Windows,Microsoft.Azure.AzureDefenderForSQL/AdvancedThreatProtection.Windows"
azcmagent config set guestconfiguration.enabled true
Em servidores Linux, execute os seguintes comandos:
sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Qualys/LinuxAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Linux"
sudo azcmagent config set guestconfiguration.enabled true
Desative o gerenciador de extensões
Se você não precisar usar extensões com o Azure Arc, também poderá desabilitar totalmente o gerenciador de extensões. Você pode desativar o gerenciador de extensões usando o azcmagent config set comando (executar localmente em cada máquina):
azcmagent config set extensions.enabled false
A desativação do gerenciador de extensões não remove nenhuma extensão já instalada no servidor. As extensões hospedadas em seus próprios serviços Windows ou Linux, como o Log Analytics Agent herdado, podem continuar a ser executadas mesmo se o gerenciador de extensões estiver desativado. Outras extensões hospedadas pelo próprio gerenciador de extensões, como o Azure Monitor Agent, não serão executadas se o gerenciador de extensões estiver desabilitado. Para garantir que nenhuma extensão continue a ser executada no servidor, remova todas as extensões antes de desativar o gerenciador de extensões.