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 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
) no momento em que são instaladas ou atualizadas, a menos que você tenha configurado 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 usar configurações para personalizar ou configurar a instalação, como URLs de proxy ou chaves de API para conectar um agente de monitoramento ao seu serviço de nuvem. As configurações de extensão vêm em dois tipos: 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 a extensão instalada, na próxima vez que o gestor de extensões sincronizar com o Azure, ela será reinstalada.
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 você não pretende usar esses recursos, você pode bloqueá-los usando uma lista de permissões ou lista de bloqueio. Um exemplo é fornecido na próxima seção.
Você pode usar os controles disponíveis para restringir ou desabilitar recursos de gerenciamento desnecessários. Por exemplo, a menos que você pretenda usar uma extensão de script personalizada para execução remota de código, é melhor desativar seu uso, pois ela pode ser usada por invasores para executar comandos remotamente para colocar malware ou outro código mal-intencionado em sua máquina virtual. Pode utilizar o mecanismo de lista de permissões para desativar o uso da extensão de script personalizado se o seu uso não cumprir os seus requisitos de segurança.
Controles de segurança do agente local
A partir da versão 1.16 do agente, você pode, opcionalmente, 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. No entanto, isso também significa que alterar a configuração é mais difícil se você decidir alterá-los mais tarde. Esta funcionalidade destina-se a servidores sensíveis (por exemplo, controladores de domínio do Ative Directory, servidores que lidam com dados de pagamento e servidores sujeitos a medidas rigorosas de controlo de alterações). Na maioria dos outros casos, não é necessário modificar essas configurações.
Listas de permissões e listas de bloqueio
O agente do Azure Connected Machine dá suporte a uma lista de permissões e uma lista de bloqueio para restringir quais extensões podem ser instaladas em sua máquina. As listas de permissões são exclusivas, o que significa que apenas as extensões específicas que você inclui na lista podem ser instaladas. As listas de bloqueio são exclusivas, o que significa que qualquer coisa, exceto essas extensões, pode ser instalada. As listas de permissões são preferíveis às listas de bloqueio porque bloqueiam inerentemente quaisquer novas extensões que fiquem disponíveis no futuro.
As listas de permissões e as listas de bloqueio 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.
As listas de permissões e as listas de bloqueio podem ser configuradas a qualquer momento após a instalação do agente, inclusive antes de o agente estar conectado ao Azure.
Se nenhuma lista de permissões ou lista de bloqueio estiver configurada no agente, todas as extensões serã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 permissões é 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"
Aqui está um exemplo de lista de bloqueio que bloqueia todas as extensões com 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 a lista 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 ao executar uma operação de extensão em relação a um agente que tenha a lista de permissões ou a lista de bloqueio configurada.
Funcionamento | Na lista de permissões | Na lista de bloqueio | Tanto na lista de permissões como na lista de bloqueio | Não em qualquer lista, mas uma lista de permissões está configurada |
---|---|---|---|---|
Instalar a extensão | Permitido | Bloqueado | Bloqueado | Bloqueado |
Atualizar (reconfigurar) extensão | Permitido | Bloqueado | Bloqueado | Bloqueado |
Extensão de atualização | Permitido | Bloqueado | Bloqueado | Bloqueado |
Excluir extensão | Permitido | Permitido | Permitido | Permitido |
Importante
Se uma extensão já estiver instalada no servidor antes de configurar uma lista de permissões ou uma lista de bloqueio, ela não será removida automaticamente. É 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. Uma vez excluída, a lista de permissões e a lista de bloqueio determinam se devem ou não permitir futuras tentativas de instalação.
A partir da versão 1.35 do agente, há um valor Allow/None
de lista de permissões especial, que instrui o gerenciador de extensões a ser executado, mas não permite que nenhuma extensão seja instalada. 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"
As Políticas do Azure também podem ser usadas para restringir quais extensões podem ser instaladas. As Políticas do Azure 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 optar por utilizar as Políticas do Azure para restringir extensões, certifique-se de que analisa quais as contas na sua organização que têm permissão para editar atribuições de política e de que estão em vigor as medidas de controlo de alterações adequadas.
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ões para extensões em vez de listas de bloqueio sempre que possível.
- Não inclua a Extensão de Script Personalizada na lista de permissões de extensão para impedir a execução de scripts arbitrários que possam alterar a configuração do agente.
- 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
Nos 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 seus 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.
Nos 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 seus 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
Modos do agente
Uma maneira mais simples de configurar controles de segurança locais para monitoramento e cenários de segurança é usar o modo de monitor, disponível com o agente versão 1.18 e mais recente. Os modos são configurações predefinidas da lista de permissões de extensão e do agente de configuração de convidado mantidos pela Microsoft. À medida que novas extensões se tornam disponíveis para permitir cenários de monitoramento, a Microsoft atualiza a lista de permissões e a configuração do agente para incluir ou excluir a nova funcionalidade, conforme apropriado.
Há dois modos para escolher:
- full - o modo padrão. Este modo permite todas as funcionalidades do agente.
- Monitor - Um modo restrito que desativa o agente de política de configuração de convidado e só permite o uso de extensões relacionadas ao monitoramento e à segurança.
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 no modo de monitor, você não pode modificar a lista de permissões ou a lista de bloqueio da extensão. Se você precisar alterar qualquer lista, altere o agente de volta para o modo completo e especifique sua própria lista de permissões e lista de bloqueio.
Para alterar o agente de volta ao modo completo, execute o seguinte comando:
azcmagent config set config.mode full
Desativando 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 com o seguinte comando (executado 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 gestor de extensões, como o Azure Monitor Agent, não serão executadas se o gestor de extensões estiver desativado. Você deve remover todas as extensões antes de desativar o gerenciador de extensões para garantir que nenhuma extensão continue a ser executada no servidor.