Visão geral da segurança dos servidores habilitados para Azure Arc

Este artigo descreve a configuração de segurança e as considerações que você deve avaliar antes de implantar servidores habilitados para Azure Arc em sua empresa.

Identidade e controlo de acesso

O controle de acesso baseado em função do Azure é usado para controlar quais contas podem ver e gerenciar seu servidor habilitado para Azure Arc. Na página Controle de Acesso (IAM) no portal do Azure, você pode verificar quem tem acesso ao seu servidor habilitado para Azure Arc.

Azure Arc-enabled server access control

Os usuários e aplicativos com acesso à função de colaborador ou administrador podem fazer alterações no recurso, incluindo a implantação ou exclusão de extensões na máquina. As extensões podem incluir scripts arbitrários que são executados em um contexto privilegiado, portanto, considere qualquer colaborador no recurso do Azure como um administrador indireto do servidor.

A função de Integração de Máquina Conectada do Azure está disponível para integração em escala e só pode ler ou criar novos servidores habilitados para Azure Arc no Azure. Ele não pode ser usado para excluir servidores já registrados ou gerenciar extensões. Como prática recomendada, recomendamos atribuir apenas essa função à entidade de serviço Microsoft Entra usada para integrar máquinas em escala.

Os usuários como membros da função Administrador de Recursos de Máquina Conectada do Azure podem ler, modificar, reintegrar e excluir uma máquina. Essa função foi projetada para dar suporte ao gerenciamento de servidores habilitados para Azure Arc, mas não outros recursos no grupo de recursos ou assinatura.

Segurança e permissões do agente

Para gerenciar o agente de Máquina Conectada do Azure (azcmagent) no Windows, sua conta de usuário precisa ser membro do grupo Administradores local. No Linux, você deve ter permissões de acesso root.

O agente Azure Connected Machine é composto por três serviços, que são executados na sua máquina.

  • O serviço Hybrid Instance Metadata Service (himds) é responsável por todas as funcionalidades principais do Arc. Isso inclui enviar pulsações para o Azure, expor um serviço de metadados de instância local para outros aplicativos aprenderem sobre a ID de recurso do Azure da máquina e recuperar tokens do Microsoft Entra para autenticar em outros serviços do Azure. Este serviço é executado como uma conta de serviço virtual sem privilégios (NT SERVICE\himds) no Windows e como o usuário himds no Linux. A conta de serviço virtual requer o direito Fazer logon como serviço no Windows.

  • O serviço de Configuração de Convidado (GCService) é responsável por avaliar a Política do Azure no computador.

  • O serviço Guest Configuration Extension (ExtensionService) é responsável pela instalação, atualização e exclusão de extensões (agentes, scripts ou outro software) na máquina.

Os serviços de configuração e extensão de convidado são executados como Sistema Local no Windows e como root no Linux.

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, mas também significa que alterar a configuração é mais difícil se você decidir alterá-los posteriormente. Este recurso destina-se a servidores confidenciais (por exemplo, Controladores de Domínio 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ões e listas de bloqueio de extensões

Para limitar quais extensões podem ser instaladas no seu servidor, você pode configurar listas das extensões que deseja permitir e bloquear no servidor. O gerenciador de extensões avalia todas as solicitações para instalar, atualizar ou atualizar extensões em relação à lista de permissões e à lista de bloqueio para determinar se a extensão pode ser instalada no servidor. Solicitações de exclusão são sempre 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. Para configurar o agente da 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"

Você pode bloquear uma ou mais extensões adicionando-as à lista de bloqueio. Se uma extensão estiver presente na lista de permissões e na lista de bloqueios, ela será bloqueada. Para bloquear a extensão Script Personalizado para Linux, execute o seguinte comando:

azcmagent config set extensions.blocklist "Microsoft.Azure.Extensions/CustomScript"

Especifique extensões com seu editor e tipo, separados por uma barra /. Consulte a lista das extensões mais comuns nos documentos ou liste as extensões de VM já instaladas no 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.

Operação 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
Extensão de atualização (reconfigurar) 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/Nonede 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. Essa é a configuração recomendada ao usar o Azure Arc para fornecer as 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"

Habilitar ou desabilitar a Configuração de Convidado

O recurso Configuração de Convidado da Política do Azure permite que você audite e defina configurações em seu servidor a partir do Azure. Você pode desabilitar a configuração de convidado em execução no servidor se não quiser permitir essa funcionalidade executando o seguinte comando:

azcmagent config set guestconfiguration.enabled false

Quando a Configuração de Convidado está desabilitada, todas as políticas de Configuração de Convidado atribuídas à máquina no Azure são mostradas como não compatíveis. Considere criar uma isenção para essas máquinas ou alterar o escopo de suas atribuições de política se não quiser ver essas máquinas relatadas como não compatíveis.

Habilitar ou desabilitar o gerenciador de extensões

O gerenciador de extensões é responsável por instalar, atualizar e remover extensões de VM em seu servidor. Você pode desativar o gerenciador de extensões para impedir o gerenciamento de extensões em seu servidor, mas recomendamos usar as listas de permissão e bloqueio para um controle mais granular.

azcmagent config set extensions.enabled false

A desativação do gerenciador de extensões não removerá 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, 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 são executadas se a manjedoura de extensão estiver desabilitada. 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.

Práticas recomendadas de máquinas bloqueadas

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

Análise de log e dependência (Azure Monitor VM Insights) somente

Essa configuração é para os agentes herdados do Log Analytics e o agente de dependência.

Em seus servidores Windows, execute os seguintes comandos em um console elevado:

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentWindows"
azcmagent config set guestconfiguration.enabled false

Em seus servidores Linux, execute os seguintes comandos:

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentLinux"
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 de Configuração de Convidado personalizada pode ser usada para desfazer as limitações do agente, você deve avaliar cuidadosamente se precisa ou não do recurso de conformidade regulatória e, como resultado, da Configuração de Convidado para ser habilitado 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 de 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 forem disponibilizadas para permitir cenários de monitoramento, a Microsoft atualizará 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:

  1. full - o modo padrão. Isso permite todas as funcionalidades do agente.
  2. 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 extensão allowlist ou blocklist. 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

Usando uma identidade gerenciada com servidores habilitados para Azure Arc

Por padrão, a identidade atribuída ao sistema Microsoft Entra usada pelo Arc só pode ser usada para atualizar o status do servidor habilitado para Azure Arc no Azure. Por exemplo, o estado de batimento cardíaco visto pela última vez . Opcionalmente, você pode atribuir outras funções à identidade se um aplicativo em seu servidor usar a identidade atribuída ao sistema para acessar outros serviços do Azure. Para saber mais sobre como configurar uma identidade gerenciada atribuída pelo sistema para acessar recursos do Azure, consulte Autenticar em recursos do Azure com servidores habilitados para Azure Arc.

Embora o Serviço de Metadados de Instância Híbrida possa ser acessado por qualquer aplicativo em execução na máquina, somente aplicativos autorizados podem solicitar um token Microsoft Entra para a identidade atribuída ao sistema. Na primeira tentativa de acessar o URI do token, o serviço gera um blob criptográfico gerado aleatoriamente em um local no sistema de arquivos que apenas chamadores confiáveis podem ler. O chamador deve então ler o arquivo (provando que ele tem permissão apropriada) e tentar novamente a solicitação com o conteúdo do arquivo no cabeçalho de autorização para recuperar com êxito um token do Microsoft Entra.

  • No Windows, o chamador deve ser membro do grupo local Administradores ou do grupo Aplicativos de Extensão de Agente Híbrido para ler o blob.

  • No Linux, o chamador deve ser um membro do grupo himds para ler o blob.

Para saber mais sobre como usar uma identidade gerenciada com servidores habilitados para Arc para autenticar e acessar recursos do Azure, consulte o vídeo a seguir.

Usando criptografia de disco

O agente Azure Connected Machine usa a autenticação de chave pública para se comunicar com o serviço do Azure. Depois de integrar um servidor ao Azure Arc, uma chave privada é salva no disco e usada sempre que o agente se comunica com o Azure. Se roubada, a chave privada pode ser usada em outro servidor para se comunicar com o serviço e agir como se fosse o servidor original. Isso inclui obter acesso à identidade atribuída ao sistema e a quaisquer recursos aos quais a identidade tenha acesso. O arquivo de chave privada é protegido para permitir que apenas a conta himds acesse para lê-lo. Para evitar ataques offline, recomendamos vivamente a utilização de encriptação total do disco (por exemplo, BitLocker, dm-crypt, etc.) no volume do sistema operativo do servidor.

Próximos passos

  • Antes de avaliar ou habilitar servidores habilitados para Azure Arc em várias máquinas híbridas, revise a visão geral do agente de Máquina Conectada para entender os requisitos, os detalhes técnicos sobre o agente e os métodos de implantação.

  • Revise o guia de planejamento e implantação para planejar a implantação de servidores habilitados para Azure Arc em qualquer escala e implementar gerenciamento e monitoramento centralizados.