Bloqueie o tráfego de entrada nas suas máquinas virtuais do Azure com o recurso de acesso à VM (máquina virtual) JIT (just-in-time) do Microsoft Defender para Nuvem. Isso reduz a exposição a ataques e, ao mesmo tempo, fornece acesso fácil quando você precisa se conectar a uma VM.
Para obter uma explicação completa sobre como o JIT funciona e a lógica subjacente, consulte o just-in-time explicado.
Para uma explicação completa dos requisitos de privilégio, confira Quais permissões são necessárias para configurar e usar o JIT?.
Esta página ensina como incluir o JIT em seu programa de segurança. Você aprenderá a:
- Habilitar o JIT em suas VMs: você pode habilitar o JIT com as próprias opções personalizadas para uma ou mais VMs usando o Defender for Cloud, o PowerShell ou a API REST. Como alternativa, você pode habilitar o JIT com parâmetros padrão, embutidos em código, de máquinas virtuais do Azure. Quando habilitada, o JIT bloqueia o tráfego de entrada às suas VMs do Azure criando uma regra no seu grupo de segurança de rede.
- Solicitar acesso a uma VM que tenha o JIT habilitado: o objetivo do JIT é garantir que, embora o tráfego de entrada seja bloqueado, o Defender for Cloud ainda fornece acesso fácil para se conectar às VMs quando necessário. Você pode solicitar acesso a uma VM habilitada para JIT do Defender for Cloud, máquinas virtuais do Azure, PowerShell ou API REST.
- Auditar a atividade: para garantir que suas VMs sejam protegidas adequadamente, examine os acessos às suas VMs habilitadas para JIT como parte de suas verificações de segurança regulares.
Disponibilidade
Aspecto | Detalhes |
---|---|
Estado da versão: | Disponibilidade Geral (GA) |
VMs com suporte: | ![]() ![]() ![]() |
Funções e permissões necessárias: | As funções Reader e SecurityReader podem exibir o status e os parâmetros do JIT. Para criar funções personalizadas que podem funcionar com o JIT, consulte Quais permissões são necessárias para configurar e usar o JIT?. Para criar uma função com privilégios mínimos para usuários que precisam solicitar acesso JIT a uma VM e não executar outras operações JIT, use o script Set-JitLeastPrivilegedRole das páginas da comunidade do GitHub do Defender for Cloud. |
Nuvens: | ![]() ![]() ![]() |
Para qualquer VM protegida pelo Firewall do Azure, o JIT só protegerá totalmente a máquina se ela estiver na mesma VNET que o firewall. As VMs que usam o emparelhamento VNET não serão totalmente protegidas.
Passo a passo
Ambiente existente:
No ambiente existente temos duas máquinas virtuais Cliente-01 (192.168.0.4) com o sistema operacional Linux e Cliente-02 (192.168.0.4) com o sistema operacional Windows, ambas as máquinas estão associadas a Virtual network “vnet-vms” e subnet “subnet-vms”, o Network security groups “nsg-vms” está associado a subnet “subnet-vms” com a liberação Any para RDP (3389) e SSH (22).
Da forma que o Inbound security rules está configurado para o RDP e SSH qualquer endereço IP consegue chegar em nossos servidores nas portas 3389 e 22.
Habilite o Just-in-time VM access
01 – Faça login no portal do Azure.
02 – No portal do Azure pesquise por Microsoft Defender for Cloud.
03 – Na tela Microsoft Defender for Cloud | Overview em Cloud Security selecione Workload protections.
04 – Na tela Microsoft Defender for Cloud | Workload protections clique em Just-in-time VM access.
05 – Na tela Just-in-time VM access clique em Not Configured e selecione as máquinas virtuais “cliente01” e “cliente-02” em seguida clique em Enable JIT on 2 VMs.
06 – Na tela JIT VM access configuration remova as portas 5985 e 5986.
07 – Selecione a porta desejada e perceba que a tela Add port configuration será aberta com as seguintes opções:
- Protocol – o protocolo permitido nesta porta quando uma solicitação for aprovada.
- Allowed source IPs – os intervalos de IP permitidos nesta porta quando uma solicitação for aprovada.
- Max request time – o intervalo de tempo máximo durante o qual uma porta específica pode ficar aberta.
Não vamos realizar nenhuma alteração em Add port configuration, clique Discard e Save.
08 – Como podemos observar o JIT VM access foi habilitado para as máquinas virtuais cliente-01 e cliente-02.
09 – No portal do Azure pesquise por Network security groups.
10 – Na tela Network security groups selecione o nsg que está associado à subnet onde estão as vms.
11 – Após selecionar o nsg que deseja clique em Inbound security rules, observe que foram criadas as regras SecurityCenter_JITRule com maior prioridade para acesso aos servidores cliente-01 (192.168.0.6) e cliente-02 (192.168.0.7) na porta 3389 e 22.
Permissão RBAC para as máquinas virtuais
12 – No portal do pesquise por Subscriptions.
13 – Na tela Subscriptions selecione a assinatura que deseja.
14 – Após selecionar assinatura clique em Access control (IAM).
15 – Na tela Lattine Group | Access control (IAM) clique + Add, em seguida clique em + Add e Add custom role.
16 – Na tela Create a custom role em Custom role name digite um nome para a role “JustinTimeAccess” deixe selecionado Start from scratch em seguida clique em Next.
17 – Na tela Permissions clique em Next.
18 – Na tela Assignable scopes clique em Next.
19 – Na tela JSON clique em Edit, em permissions para a opção actions adicione as seguintes opções, em seguida clique em Save e Next.
“Microsoft.Security/locations/jitNetworkAccessPolicies/initiate/action”,
“Microsoft.Security/locations/jitNetworkAccessPolicies/*/read”,
“Microsoft.Compute/virtualMachines/read”,
“Microsoft.Network/networkInterfaces/*/read”,
“Microsoft.Network/*/read”
Clique no link abaixo para maiores informações:
Understanding just-in-time virtual machine access in Microsoft Defender for Cloud | Microsoft Docs
20 – Na tela Review + create clique em Create.
20 – Clique em OK para finalizar a criação da custom role.
21 – No portal do Azure pesquise por Resource groups.
22 – Na tela Resource groups selecione o RG-teste.
23 – Na tela RG-teste clique em Access control (IAM).
24 – Na tela RG-teste | Access control (IAM) clique em + Add e selecione Add role assignment.
25 – Na tela Add role assignment pesquise por JustinTimeAccess, em seguida selecione JustinTimeAccess e clique em Next.
26 – Para a opção Members clique em + Select members, a tela Select members será aberta selecione preferencialmente um grupo com os usuários que utilizaram os servidores, para nosso exemplo vamos selecione o usuário “userjit@jadsonalvess.com”, em seguida clique em Select.
27 – Após selecionar o usuário clique em Next.
28 – Na tela Review + assign clique em Review + assign.
29 – Como podemos observar a role foi associada ao Resource group “RG-teste”.
Conectando a máquina virtual Cliente-02 utilizando RDP
30 – Faça login no portal do Azure com a conta de usuário userjit@jadsonalvess.com.
31 – No portal do Azure pesquise por Virtual machines.
32 – Na tela Virtual machines selecione a máquina virtual que deseja, observe que temos as máquinas virtuais Cliente-01 e Cliente-02, selecione a vm Cliente-02.
33 – Na tela Cliente-02 clique em Connect e selecione RDP.
34 – Na tela Cliente-02 | Connect em Source selecione My IP em seguida clique em Request access.
35 – Ainda na tela Cliente-02 | Connect percebam que a requisição foi aprovada, clique em Download RDP File.
36 – Após baixar o arquivo RDP da máquina virtual Cliente-02, execute o arquivo.
37 – Na tela Enter your credentials insira o usuário e senha.
38 – Na tela Remote Desktop Connection clique em Yes.
39 – Como podemos observar conectamos na máquina virtual Cliente-02.
40 – Caso tente abrir o arquivo RDP em um outro computador cujo o IP público seja diferente do que liberamos, o arquivo não será aberto.
41 – No nsg-vms percebam que foi criada uma regra com maior prioridade liberando o IP público que fez a solicitação de acesso a máquina virtual Cliente-02 (192.168.0.5) na porta 3389 (RDP).
Conectando a máquina virtual Cliente-01 utilizando SSH
Instalar o PuTTy
PuTTY é um cliente SSH e telnet, desenvolvido originalmente por Simon Tatham para a plataforma Windows. PuTTY é um software de código aberto que está disponível com o código-fonte e é desenvolvido e apoiado por um grupo de voluntários.
O PuTTY pode ser baixado no link abaixo:
42 – O vídeo abaixo mostra o processo de download e instalação do PuTTY no Windows.
43 – No portal do Azure pesquise por Virtual machines.
44 – Na tela Virtual machines selecione a máquina virtual “Cliente-01”.
45 – Na tela Cliente-01 clique em Connect e selecione SSH.
46 – Na tela Cliente-01 | Connect em Source IP selecione MY IP em seguida clique em Request access .
47 – Ainda na tela Cliente-02 | Connect percebam que a requisição foi aprovada, anote o endereço IP na etapa 4.
48 – Abra o PuTTY em Host Name digite o endereço IP da etapa 4, em seguida clique em Open.
49 – A tela PuTTY Security Alert será aberta clique em Accept.
50 – Em seguida forneça as credencias da máquina virtual.
51 – Como podemos observar autenticamos na máquina virtual Cliente-01.
52 – Caso tente conectar à máquina Linux em um outro computador cujo o IP público seja diferente do que liberamos, a conexão não será estabelecida.
53 – No nsg-vms percebam que foi criada uma regra com maior prioridade liberando o IP público que fez a solicitação de acesso a máquina virtual Cliente-01 (192.168.0.4) na porta 22 (SSH).
Comente suas sugestões e observações!
Forte abraço, obrigado e até o próximo post.

Carreira desenvolvida na área de tecnologia da informação, com ampla experiência em Cloud
Computing e Cloud Security.
Forte atuação em projetos de Cloud Security no Microsoft Azure e com tecnologias de
segurança do Microsoft 365.
Tenho Experiência em Microsoft Azure, Microsoft 365, AWS e Windows Server.
Sou Microsoft MVP na categoria Microsoft Azure, AWS Communit Builder Security & Identity e
MCT.
Muito bom meu amigo. Ótimo artigo.
Olá Gilderson,
Fico feliz que tenha gostado do artigo.
Forte abraço!