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

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

Identidade e controle 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 colaborador ou administrador ao recurso podem fazer alterações no recurso, incluindo a implantação ou exclusão de extensões no computador. As extensões podem incluir scripts arbitrários que são executados em um contexto privilegiado, portanto, considere qualquer colaborador no recurso do Azure para ser um administrador indireto do servidor.

A função de Integração do Azure Connected Machine está disponível para a integração em escala e só é capaz de 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 melhor prática, recomendamos atribuir apenas essa função à entidade de serviço do Microsoft Entra usada para integrar computadores em escala.

Usuários como membro da função Administrador de Recursos do Azure Connected Machine pode ler, modificar, reintegrar e excluir um computador. Essa função foi projetada para dar suporte ao gerenciamento de servidores habilitados para Azure Arc, mas não a outros recursos no grupo de recursos ou na assinatura.

Agente de Segurança e permissões

Para gerenciar o agente do Azure Connected Machine (azcmagent) no Windows, a conta de usuário deve ser um membro do grupo local de administradores. No Linux, você deve ter permissões de acesso à raiz.

O agente do computador conectado do Azure é composto por três serviços, que são executados em seu computador.

  • O Hybrid Instance Metadata Service (himds) é responsável por todas as principais funcionalidades do Arc. Isso inclui o envio de pulsações para o Azure, a exposição de um serviço de metadados de instância local para que outros aplicativos saibam mais sobre a ID de recurso do Azure do computador e a recuperação de tokens do Microsoft Entra ID para autenticação em outros serviços do Azure. Esse 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 GCService (serviço de configuração de convidado) é responsável por avaliar Azure Policy no computador.

  • O ExtensionService (serviço de extensão de configuração de convidado) é responsável por instalar, atualizar e excluir extensões (agentes, scripts ou outros softwares) no computador.

Os serviços de configuração e extensão de convidado são executados como sistema local no Windows e como raiz no Linux.

Controles de segurança do agente local

A partir do Agent versão 1,16, você pode, opcionalmente, limitar as extensões que podem ser instaladas em seu 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 no 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 a alteração da configuração será mais difícil se você decidir posteriormente alterá-las. Esse recurso é destinado a servidores confidenciais (por exemplo, controladores de Domínio do Active 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.

Extensão listas de permitidos e bloqueio

Para limitar quais extensões podem ser instaladas em 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 de instalação, atualização ou upgrade de extensões em relação à lista de permitidos e à lista de bloqueios para determinar se a extensão pode ser instalada no servidor. As solicitações Excluir sempre 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 permissão é bloqueada automaticamente. Para configurar o agente Azure Connected Machine 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 bloqueados. Se uma extensão estiver presente tanto na lista de permissões quanto na lista de bloqueios, ela será bloqueada. Para bloquear a extensão de script personalizado para Linux, execute o seguinte comando:

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

Especifique as extensões com seu editor e tipo, separados por uma barra /. Consulte a lista das Extensões mais comuns no docs ou liste as extensões de VM já instaladas no seu servidor no Portal, Azure PowerShellou CLI do Azure.

A tabela descreve o comportamento ao executar uma operação de extensão em um agente que tenha a lista de permissões ou a lista de bloqueios configurada.

Operação Na lista de permissões Na lista de bloqueados Nos modos de permissão e de bloqueio Não está em nenhuma lista, mas uma lista de permissão está configurada
Instalar a extensão Permitido Bloqueado Bloqueado Bloqueado
Atualizar a extensão (reconfigurar) Permitido Bloqueado Bloqueado Bloqueado
Atualizar a extensão Permitido Bloqueado Bloqueado Bloqueado
Exclui a extensão Permitido Permitido Permitido Permitido

Importante

Se uma extensão já estiver instalada em seu servidor antes de você configurar uma lista de permissões ou uma lista de bloqueios, ela não será removida automaticamente. É sua responsabilidade excluir a extensão do Azure para removê-la totalmente do computador. As solicitações de exclusão são sempre aceitas para acomodar esse cenário. Uma vez excluídas, a lista de permissões e a lista de bloqueios determinam se devem ou não permitir futuras tentativas de instalação.

A partir da versão 1.35 do agente, há um valor especial da lista de permissões Allow/None, 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 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 de configuração de convidado do Azure Policy permite que você faça auditoria e defina as configurações em seu servidor do Azure. Você pode desabilitar a execução da configuração de convidado 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 ao computador no Azure são mostradas como sem conformidade. Considere criar uma isenção para esses computadores ou alterar o escopo de suas atribuições de política se não quiser que esses computadores sejam relatados como sem conformidade.

Habilitar ou desabilitar o gerenciador de extensões

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

azcmagent config set extensions.enabled false

A desabilitação do gerenciador de extensões não removerá nenhuma extensão já instalada em seu servidor. As extensões hospedadas em seus próprios serviços Windows ou Linux, como o Agente do Log Analytics, podem continuar a ser executadas mesmo que o gerenciador de extensões esteja desabilitado. Outras extensões que são hospedadas pelo próprio gerenciador de extensões, como o Agente do Azure Monitor, não são executadas se o gerenciador de extensões estiver desabilitado. Você deve remover todas as extensões antes de desabilitar o gerenciador de extensões a fim de garantir que nenhuma extensão continue sendo executada no servidor.

Práticas recomendadas do computador bloqueadas

Ao configurar o agente Azure Connected Machine com um conjunto reduzido de recursos, é importante considerar os mecanismos que alguém poderia 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 do Azure Connected Machine. As extensões e as políticas de configuração de convidados são executadas em contextos privilegiados em seu servidor e, portanto, podem alterar a configuração do agente. Se você aplicar controles de segurança do agente local para bloquear o agente, a Microsoft recomenda as seguintes melhores práticas para garantir que somente os administradores do servidor local possam atualizar a configuração do agente:

  • Use as listas de permitidos para extensões em vez de bloqueio sempre que possível.
  • Não inclua a extensão de script personalizado na extensão de permissão para impedir a execução de scripts arbitrários que poderiam alterar a configuração do agente.
  • Desabilite a configuração de convidado para impedir o uso de políticas de configuração de convidado personalizadas que podem alterar a configuração do agente.

Exemplo de configuração para cenários de segurança e monitoramento

É comum usar o Azure ARC para monitorar seus servidores com o Azure Monitor e o Microsoft Sentinel e protegê-los com o Microsoft Defender para nuvem. Esta seção contém exemplos de como bloquear o agente para dar suporte apenas a cenários de monitoramento e segurança.

Somente agente do Azure Monitor

Em seus servidores de Windows, execute os seguintes comandos em um console de comandos com privilégios elevados:

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorWindowsAgent"
azcmagent config set guestconfiguration.enabled false

Em todos os servidores Linux, execute os seguintes comandos:

sudo azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
sudo azcmagent config set guestconfiguration.enabled false

Log Analytics e dependência (Azure Monitor Insights VM) somente

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

Em seus servidores de Windows, execute os seguintes comandos em um console com privilégios elevados:

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

Em todos os 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

Monitoramento e segurança

O Microsoft Defender para Nuvem implanta extensões em seu servidor para identificar softwares vulneráveis em seu servidor e habilitar o Microsoft Defender para Ponto de Extremidade (se configurado). O Microsoft Defender para Nuvem também usa a configuração de convidado para seu recurso de conformidade regulatória. 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, a configuração do convidado a ser habilitada no computador.

Em seus servidores de Windows, execute os seguintes comandos em um console de comandos com privilégios elevados:

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 todos os 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 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 forem disponibilizadas novas extensões que permitem 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.

Existem dois modos para escolher:

  1. cheio - o modo padrão. Isso permite todas as funcionalidades do agente.
  2. monitor - um modo restrito que desabilita o agente de política de configuração de convidado e permite apenas o uso de extensões relacionadas a monitoramento e segurança.

Para habilitar o modo 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 monitor, você não poderá modificar a lista de permissões ou a lista de bloqueios de extensão. Se você precisar alterar qualquer uma das listas, 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 para o modo completo, execute o seguinte comando:

azcmagent config set config.mode full

Usar uma identidade gerenciada com servidores habilitados para Azure Arc

Por padrão, a identidade atribuída pelo sistema do Microsoft Entra usada pelo Arc só pode ser usada para atualizar o status do servidor habilitado para Azure Arc no Azure. Por exemplo, o último status de pulsação visto. Opcionalmente, atribua outras funções à identidade se um aplicativo no servidor usa a identidade atribuída pelo sistema para acessar outros serviços do Azure. Para saber mais sobre como configurar uma identidade gerenciada atribuída pelo sistema para acessar os recursos do Azure, consulte Autenticar em recursos do Azure com servidores habilitados para o Azure Arc.

Embora o Hybrid Instance Metadata Service possa ser acessado por qualquer aplicativo em execução no computador, somente aplicativos autorizados podem solicitar um token do Microsoft Entra para a identidade atribuída pelo sistema. Na primeira tentativa de acessar o URI do token, o serviço gera um blob criptográfico gerado aleatoriamente em um local do sistema de arquivos que somente chamadores confiáveis podem fazer a leitura. O chamador deve então fazer a leitura do arquivo (provando que ele tem a permissão apropriada) e repetir 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 de Administradores ou do grupo de 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 os recursos do Azure, consulte o vídeo a seguir.

Utilizar criptografia de disco

O agente do computador conectado do Azure usa a autenticação de chave pública para se comunicar com o serviço do Azure. Depois de integrar um servidor ao Arc do Azure, uma chave privada é salva no disco e usada sempre que o agente se comunica com o Azure. Se for roubado, a chave privada poderá 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 todos os recursos aos quais a identidade tem acesso. O arquivo de chave privada é protegido para permitir somente o acesso de conta do himds para lê-lo. Para evitar ataques offline, recomendamos enfaticamente o uso de criptografia de disco completo (por exemplo, BitLocker, DM-cript, etc.) no volume do sistema operacional do seu servidor.

Próximas etapas

  • Antes de avaliar ou habilitar servidores habilitados para Azure Arc em vários computadores híbridos, examine Visão geral do agente do Computador Conectado para entender os requisitos, os detalhes técnicos sobre o agente e os métodos de implantação.

  • Examine o Guia de planejamento e implantação para planejar a implantação de servidores habilitados para Azure Arc em qualquer escala e implemente o gerenciamento e o monitoramento centralizados.