Proteção multicamada para acesso a máquinas virtuais do Azure

Microsoft Entra ID
Azure Bastion
Controle de acesso baseado em função do Azure
Microsoft Defender para Nuvem

Ideias de soluções

Esse artigo é uma ideia de solução. Caso deseje que ampliemos o conteúdo com mais informações, como possíveis casos de uso, serviços alternativos, considerações sobre implementação ou diretrizes de preços, fale conosco enviando seus comentários no GitHub.

Esta solução fornece uma abordagem multicamadas para proteger VMs (máquinas virtuais) no Azure. Os usuários precisam se conectar a VMs para fins administrativos e de gerenciamento. É essencial minimizar a superfície de ataque criada pela conectividade.

Essa solução obtém acesso granular não persistente a VMs incorporando vários mecanismos de proteção. Ela está alinhada com o PoLP (princípio de privilégio mínimo) e com o conceito de separação de funções. Para reduzir a exposição a ataques, essa solução bloqueia o tráfego de entrada para VMs, mas torna as conexões de VM acessíveis quando necessário. A implementação desse tipo de proteção minimiza o risco de vários ataques cibernéticos conhecidos em VMs, como ataques de força bruta e ataques DDoS (distribuídos de negação de serviço).

Esta solução utiliza muitos serviços e recursos do Azure, como:

  • Microsoft Entra Privileged Identity Management (PIM).
  • O recurso JIT (just-in-time) de acesso à VM do Microsoft Defender para Nuvem.
  • Azure Bastion.
  • Funções personalizadas do controle de acesso baseado em função do Azure (RBAC do Azure).
  • Acesso condicional do Microsoft Entra, opcionalmente.

Possíveis casos de uso

A defesa em profundidade é a ideia essencial subjacente a essa arquitetura. Essa estratégia desafia os usuários com várias linhas de defesa antes de conceder aos usuários o acesso a VMs. A meta é garantir que:

  • Cada usuário seja legítimo.
  • Cada usuário tenha intenções legais.
  • A comunicação seja segura.
  • O acesso a VMs no Azure é fornecido apenas quando necessário.

A estratégia de defesa em profundidade e a solução neste artigo se aplicam a diversos cenários:

  • Um administrador precisa acessar uma VM do Azure nas seguintes circunstâncias:

    • O administrador precisa solucionar um problema, investigar o comportamento ou aplicar uma atualização importante.
    • O administrador usa o protocolo RDP (Remote Desktop Protocol) para acessar uma VM do Windows ou um SSH (shell seguro) para acessar uma VM do Linux.
    • O acesso deve incluir o número mínimo de permissões exigido pelo trabalho.
    • O acesso deve ser válido por tempo limitado.
    • Quando o acesso expirar, o sistema deverá bloquear o acesso à VM para evitar tentativas de acesso mal-intencionadas.
  • Os funcionários precisam de acesso a uma estação de trabalho remota hospedada no Azure como uma VM. As seguintes condições se aplicam:

    • Os funcionários devem acessar a VM somente no horário de trabalho.
    • O sistema de segurança deve considerar as solicitações de acesso à VM fora do horário de trabalho desnecessárias e mal-intencionadas.
  • Os usuários desejam se conectar às cargas de trabalho de VM do Azure. O sistema deve aprovar conexões que são somente de dispositivos gerenciados e compatíveis.

  • Um sistema sofreu muitos ataques de força bruta:

    • O alvo desses ataques eram VMs do Azure nas portas 3389 e 22 de RDP e SSH.
    • Os ataques tentaram adivinhar as credenciais.
    • A solução deve impedir a exposição de portas de acesso como 3389 e 22 à Internet ou a ambientes locais.

Arquitetura

Architecture diagram showing how a user gains temporary access to an Azure V M.

Baixe um Arquivo Visio dessa arquitetura.

Fluxo de dados

  1. Decisões de autenticação e acesso: o usuário é autenticado no Microsoft Entra ID para acesso ao portal do Azure, APIs REST do Azure, Azure PowerShell ou CLI do Azure. Se a autenticação for bem-sucedida, uma política de Acesso Condicional do Microsoft Entra entrará em vigor. Essa política verifica se o usuário atende a certos critérios. Os exemplos incluem o uso de um dispositivo gerenciado ou o login de um local conhecido. Se o usuário atender aos critérios, o Acesso Condicional concederá a ele o acesso ao Azure usando o portal do Azure ou outra interface.

  2. Acesso just-in-time baseado em identidade: durante a autorização, o Microsoft Entra PIM atribui ao usuário uma função personalizada de tipo qualificado. A qualificação é limitada aos recursos necessários e é uma função de tempo limitado, não permanente. Dentro de um período especificado, o usuário solicita a ativação dessa função via interface do PIM do Azure. Essa solicitação pode disparar outras ações, como iniciar um fluxo de trabalho de aprovação ou solicitar ao usuário a autenticação multifator para verificar a identidade. Em um fluxo de trabalho de aprovação, outra pessoa precisa aprovar a solicitação. Caso contrário, o usuário não receberá a função personalizada e não poderá passar para a etapa seguinte.

  3. Acesso just-in-time baseado em rede: após a autenticação e autorização, a função personalizada é vinculada à identidade do usuário de forma temporária. O usuário solicita acesso à VM JIT. Esse acesso abre uma conexão da sub-rede do Azure Bastion na porta 3389 para RDP ou na porta 22 para SSH. A conexão é executada diretamente para a NIC (placa de interface de rede) da VM ou a sub-rede de NIC da VM. O Azure Bastion abre uma sessão RDP interna usando essa conexão. A sessão é limitada à rede virtual do Azure e não está exposta à Internet pública.

  4. Conectando-se à VM do Azure: o usuário acessa o Azure Bastion usando um token temporário. Por meio desse serviço, o usuário estabelece uma conexão RDP indireta com a VM do Azure. A conexão funciona por um período limitado de tempo.

Componentes

Esta solução usa os seguintes componentes:

  • As Máquinas Virtuais do Azure são um produto de infraestrutura como serviço (IaaS). Você pode usar as Máquinas Virtuais para implantar, sob demanda, recursos de computação escalonáveis. Em ambientes de produção que usam essa solução, implante suas cargas de trabalho em VMs do Azure. Elimine a exposição desnecessária às suas VMs e a ativos do Azure.

  • O Microsoft Entra ID é um serviço de identidade baseado em nuvem que controla o acesso ao Azure e a outros aplicativos de nuvem.

  • O PIM é um serviço do Microsoft Entra que gerencia, controla e monitora o acesso a recursos importantes. Nesta solução, este serviço:

    • Limita o acesso permanente do administrador a funções privilegiadas padrão e personalizadas.
    • Fornece acesso baseado em identidade just-in-time a funções personalizadas.
  • O acesso à VM JIT é um recurso do Defender para Nuvem que fornece acesso just-in-time baseado em rede a VMs. Esse recurso adiciona uma regra de negação ao grupo de segurança de rede do Azure que protege a interface de rede da VM ou a sub-rede contendo a interface de rede da VM. Essa regra minimiza a superfície de ataque da VM ao bloquear a comunicação desnecessária com a VM. Quando um usuário solicita acesso à VM, o serviço adiciona uma regra de permissão temporária ao grupo de segurança da rede. Como a regra de permissão tem prioridade mais alta do que a regra de negação, o usuário pode se conectar à VM. O Azure Bastion funciona melhor para se conectar à VM. Mas o usuário também pode usar uma sessão direta de RDP ou SSH.

  • O Azure RBAC é um sistema de autorização que oferece gerenciamento de acesso refinado de recursos do Azure.

  • As funções personalizadas do RBAC do Azure fornecem um meio de expandir as funções internas do RBAC do Azure. Você pode usá-las para atribuir permissões em níveis que atendam às necessidades da sua organização. Essas funções dão suporte a PoLP. Elas concedem apenas as permissões que um usuário precisa para uma finalidade. Para acessar uma VM nesta solução, o usuário obtém permissões para:

    • Usar o Azure Bastion.
    • Solicitar acesso à VM JIT no Defender para Nuvem.
    • Ler ou listar VMs.
  • O Acesso Condicional do Microsoft Entra é uma ferramenta que o Microsoft Entra ID usa para controlar o acesso a recursos. As políticas de Acesso Condicional dão suporte ao modelo de segurança de confiança zero. Nesta solução, as políticas garantem que somente usuários autenticados tenham acesso a recursos do Azure.

  • O Azure Bastion fornece conectividade RDP e SSH segura e contínua para VMs em uma rede. Nesta solução, o Azure Bastion conecta usuários que usam o Microsoft Edge ou outro navegador da Internet para HTTPS, ou tráfego seguro na porta 443. O Azure Bastion configura a conexão RDP com a VM. As portas RDP e SSH não são expostas à Internet ou à origem do usuário.

    O Azure Bastion é opcional nesta solução. Os usuários podem se conectar diretamente às VMs do Azure por meio do protocolo RDP. Se você configurar o Azure Bastion em uma rede virtual do Azure, configure uma sub-rede separada denominada AzureBastionSubnet. Associe um grupo de segurança de rede a essa sub-rede. Nesse grupo, especifique uma origem para o tráfego HTTPS, como o bloco CIDR (roteamento entre domínios) sem classe IP local do usuário. Por meio dessa configuração, você bloqueia conexões não obtidas do ambiente local do usuário.

    Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

  • Husam Hilal | Arquiteto Sênior de Soluções na Nuvem

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas