Para muitos administradores de TI ao redor do mundo, a conexão segura do ambiente externo com as suas cargas de trabalho e máquina virtuais na nuvem podem se tornar um grande desafio. A exposição de máquinas virtuais com endereços públicos, para promover acessos administrativos seja utilizando RDP ou SSH, pode reduzir significativamente a segurança e comprometer todo o seu ambiente na nuvem.
Os protocolos RDP e SSH são fundamentais para a administração das cargas de trabalho, principalmente os ambientes provisionados no Azure. Atualmente para uma conexão segura os administradores tem usado algumas ferramentas e técnicas para minimizar esses riscos, como pro exemplo o Just in Time Access (vou falar mais sobre ele em outro post, OK!!) ou usando o um Jump Server ou Jump Box – que resumidamente é um servidor provisionado em uma rede isolada do ambiente de produção do Azure, e é utilizado como ponto de entrada.
E pensando neste desafio que muitos administradores enfrentam diariamente, a Microsoft anunciou recentemente em versão Public Preview o Azure Bastion. O Azure Bastion é um PaaS (Plataform-as-a-Service), que realiza a conexão com os servidores provisionados no Azure. Ele atua de maneira semelhante a um Jump Server, promovendo uma conexão RDP ou SSH de forma mais segura. Porém o Azure Bastion realiza esta conexão utilizando um browser.
Vantagens do Azure Bastion
- RDP e SSH diretamente no portal do Azure: Uma sessão RDP ou SSH é disponibilizada diretamente através do portal do Azure.
- Sessão remota sobre SSL e passagem de firewall para RDP/SSH: O Azure Bastion utiliza um cliente Web baseado em HTML5 que é automaticamente transmitido para o seu dispositivo, você obtém uma sessão RDP/SSH sobre o protocolo SSL utilizando a porta 443
- Não é necessário IP público na VM do Azure: Com o Azure Bastion você pode ser conectar utilizando diretamente o IP privado da sua máquina virtual, portanto dispensando o uso do IP público.
- Gerenciamento de NSG facilitado: O Azure Bastion é um serviço PaaS de plataforma totalmente gerenciado do Azure que não necessita aplicar qualquer NSG na sub-rede do Azure Bastion.
- Proteção conta varredura de portas: Sem a necessidade de expor suas máquinas virtuais a internet através de um IP público, você tem um incremento significante na proteção contra tentativas de varredura de portas vindas de fora da sua rede virtual.
- Funciona em basicamente todos os browsers modernos e em múltiplos sistemas operacionais: O Azure Bastion permite o acesso as suas máquinas virtuais a partir dos principais browser e sistemas operacionais disponíveis (Chrome, Edge, etc) (Windows, MacOs, Linux).
- Dispensa a necessidade de um Jump Server: Como vimos anteriormente o acesso se da através do browser, sem a necessidade de provisionar uma máquina virtual para controlar este acesso externo.
Pré-requisitos
O Azure Bastion necessita de alguns pré-requisitos e também possui algumas limitações enquanto ainda está disponibilizado em Public Preview.
O Azure Bastion por hora, só esta disponível em algumas regiões, que estão listadas logo abaixo:
- West US
- East US
- West Europe
- South Central US
- Australia East
- Japan East
Enquanto o Azure Bastion não é liberado para uso em produção, você precisa acessar Portal Azure Preview pelo link https://aka.ms/BastionHost
Configurando o Azure Bastion
Agora que já falamos bastante sobre o Azure Bastion chegou a hora de por a mão na massa e configurar esse serviço que vai facilitar muito a administração do seu ambiente no Azure.
O primeiro passo é configurar a subnet que o Azure Bastion irá utilizar. Esta subnet deve ser /27 ou maior, e o nome deve ser obrigatoriamente AzureBastionSubnet. Na imagem abaixo criei uma Subnet /27 para esta demonstração.
Se você não estiver utilizando o portal do Azure pelo link que postei anteriormente, chegou a hora de acessar o portal Azure – Preview, caso contrário o recurso não será apresentado pra você.
- Vamos clicar na opção + Create a resource;
- No campo de busca da Marketplace, digite Bastion;
- Bastion (Preview) será o primeiro resultado;
- Na página de criação do Bastion, vamos preencher todos os campos necessários.
*ATENÇÃO não esqueça de provisionar o Azure Bastion na mesma região da Vnet.*
Abaixo segue a explicação dos principais campos:
- Virtual Network: É a rede virtual que criamos anteriormente.
- Subnet: Aqui vamos definir a subrede que criamos anteriormente, lembre-se que está subrede deve ter o nome de AzureBastionSubnet e ela deve ser pelo menos /27 ou maior (/27, /26, /25, etc)
- Public IP address: O Azure Bastion utiliza um IP público para liberar o acesso RDP/SSH via SSL (sobre a porta 443).
Conectando em suas máquinas virtuais
O próximo passo é finalmente conectar nas nossas máquinas virtuais utilizando o Azure Bastion.
Para utilizar o Azure Bastion mantenha-se logado no portal através do link https://aka.ms/BastionHost.
Windows (RDP)
Navegue até a máquina virtual que você deseja acessar, então selecione a opção Connect.
Após você selecionar a opção Connect, uma nova aba irá aparecer, nela vamos ter as opções convencionais de RDP e SSH, e também é apresentado a opção Bastion.
Agora basta inserir as credenciais de acesso da máquina virtual e clicar em Connect. Uma conexão RDP com a máquina virtual é iniciada dentro do seu browser no Portal do Azure (utilizando HTML5) usando a porta 443 e protegida pela criptografia do protocolo SSL.
Linux (SSH)
A grande diferença no uso do Azure Bastion, para acessar máquinas virtuais Linux, está na forma de autenticação disponível que além de permitir o acesso utilizando usuário e senha, também permite o acesso utilizando chave privada.
- A chave privada pode ser inserida manualmente
- Podemos utilizar o arquivo da que contém a chave privada.
Trabalhando com sessões do Azure Bastion
Copiar e colar
Nos navegadores que suportam a API de área de transferência, você vai conseguir copiar e colar textos entre sua estação de trabalho local e a máquina virtual da mesma forma que você faz em um ambiente local. Nos browser que não tem esse suporte, podemos usar o assistente de área de transferência.
Copiando para a sessão remota
Para copiar um texto (somente texto é suportado) do seu computador local para a máquina virtual no Azure. Basta acessar a ferramenta de área de transferência, localizada a esquerda da sessão remota.
Todo o texto que você inserir nesta ferramenta será copiando para a área de transferência da sessão remota.
Copiando da sessão remota
Para copiar um texto da máquina virtual do Azure, para o seu dispositivo local, podemos realizar o mesmo processo que normalmente utilizamos localmente (Crtl-C), e automaticamente o texto será direcionado para a ferramenta de área de transferência, a partir dela podemos tratar a informação localmente.
Trabalhando em tela cheia
Além de todos os recursos que falamos até aqui, também é possível realizar o acesso remoto em tela cheia, tornando o acesso muito próximo ao que estamos acostumados através de clientes RDP convencionais.
Para isso, voltamos a ferramenta de área de transferência, e logo abaixo do quadro em que utilizamos para realizar procedimentos de Copiar e colar, podemos observar o ícone de FULLSCREEN, ao clicar neste ícone a sessão remota é maximizada utilizando toda a área útil da tela.
Conclusão
O Azure Bastion tem o potencial de simplificar o acesso as máquinas virtuais provisionadas no Azure, aumentando significativamente a segurança do ambiente. A conectividade atualmente esta limitada ao HTML5.
O preço deste serviço também é algo que devemos considerar. Durante o período de preview, o Azure Bastion irá custar US$0.095 por hora e um adicional sobre a transferência de dados. Você pode verificar a tabela de preço diretamente neste link.
Como falamos diversas vezes ao longo deste post o Azure Bastion foi recentemente liberado para Preview Público, e algumas funcionalidades podem ser alteradas antes da versão final ser publicada.
Por fim, eu acredito que o Azure Bastion é uma ótima ferramenta para acessar os ambientes provisionados no Azure, sem a utilização de VPNs, ExpressRoute, Jump Servers ou expondo as suas máquinas virtuais publicamente na internet.
Confira logo abaixo um vídeo que gravei explicando todo o processo de configuração do Azure Bastion.
Diretor técnico na Supreme Tecnologia.
MVP Azure, MTAC e Azure Administrator Associate