25/08/2023
Por Eduardo Martins
Amazon Web Services
(AWS) continua a inovar e aprimorar suas ofertas de serviços, proporcionando ferramentas
mais eficientes e seguras para gerenciar e operar suas infraestruturas. Uma
dessas inovações é a capacidade de se conectar via SSH ou RDP a instâncias
privadas usando o Instance Connect Endpoint.
Este método de conexão é semelhante ao Instance Connect, mas com a adição de um Endpoint.
O Instance Connect
Endpoint permite que você se conecte a instâncias privadas da AWS via SSH/RDP
sem a necessidade de expor a instância à internet pública ou utilizar um
bastion host por exemplo.
Isso é feito criando
um endpoint na sua Virtual Private Cloud (VPC) que permite o acesso SSH seguro
às suas instâncias.
Como os pilares do
Well-Architected Framework da AWS e o Instance Connect Endpoint estão
interligados.
O Instance Connect
Endpoint se encaixa perfeitamente nos pilares do Well-Architected Framework da
AWS, que são: excelência operacional, segurança, confiabilidade, eficiência de
performance e otimização de custos.
Excelência
Operacional: O Instance Connect Endpoint simplifica o gerenciamento de
conexões SSH, permitindo que as equipes de operações executem tarefas de rotina
e respondam a eventos de maneira eficiente.
Segurança: Ao
usar o Instance Connect Endpoint, você não precisa expor suas instâncias à
internet, o que reduz a superfície de ataque e aumenta a segurança geral do seu
ambiente AWS.
Confiabilidade: O
Instance Connect Endpoint é um serviço gerenciado pela AWS, o que significa que
você pode confiar em sua disponibilidade e desempenho.
Eficiência de
Performance: O Instance Connect Endpoint permite que você se conecte
rapidamente às suas instâncias, melhorando a eficiência operacional e
permitindo que você responda rapidamente a qualquer problema que possa afetar o
desempenho do seu aplicativo.
Otimização de
Custos: Como o Instance Connect Endpoint é um serviço gerenciado, você
não precisa investir em hardware adicional ou em software de gerenciamento de
conexão.
Isso pode ajudar a
reduzir os custos operacionais e a otimizar o uso dos recursos da AWS.
O custo do EC2 Instance Connect Endpoint é de 0,01/ USD por hora em us-east-1 e 0,021/USD em sa-east-1.
Fazendo os cálculos
com o valor de 0,01 USD x 24 horas x 30 dias o custo mensal fica em torno de
7.20 USD.
Como configurar e usar o Instance Connect Endpoint
Como pré-requisito é
necessário ter uma VPC com subnet privada e uma instância “Linux” sem IP
Público para garantir que seja possível para efetuar a conexão na nossa
instancia via SSH.
Caso você queira fazer em Windows, basta trocar a porta do security group e efetuar a conexão via RDP.
1 – Crie um
Securiy Group:
Vamos criar um novo
SGs para o Endpoint e é ele que vai permitir a entrada de conexão SSH e vai ter
a saída da conexão para o SGs da nossa instância.
Vá para o console da
VPC, selecione “Security Groups” no painel de navegação e clique em Criar
Security Group.
Coloque a regra de
Entrada para a porta SSH “22” a partir do IP que você deseja utilizar para
efetuar a conexão.
Para demo, vamos
utilizar ipv4 0.0.0.0/0, mas poderíamos usar o ip da VPN e etc.
Na regra de saída, vamos apontar para o Security Group da instância.
2 – Crie um
Endpoint na VPC:
Vá para o console da
VPC, selecione “Endpoints” no painel de navegação e clique em “Create
Endpoint”.
Na tela de criação
do endpoint selecione “EC2 Instance Connect Endpoint” na lista de serviços e
preencha os dados com a VPC e a subnet da instância como também o Security
Group novo que criamos para o Endpoint e clique Create Endpoint.
Após criarmos o
Endpoint leva alguns minutos para AWS provisionar e assim que finalizar já é
possível se conectar a instância.
3 – Como se
conectar na instancia via AWS CLI ou Console:
Console: Vá
até a instância e clicar em Connect e selecionar o modo Instance Connect e
selecionar a opção via EC2 Endpoint:
AWS CLI: Para
conectar via AWS CLI é necessário ter a versão mais atualizada do Command Line
Interface de AWS.
“Seguindo o guia da
AWS você consegue atualizar ou instalar facilmente: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html”
Após isso, vamos
conectar na AWS CLI com as credenciais (Access Key e Secret Key) e utilizar o
comando abaixo para se conectar na instância a partir do nosso endpoint:
aws ec2-instance-connect ssh –instance-id “ID
DA SUA INSTANCIA” –connection-type eice
É preciso usar a
sinopse (–os-user “nome do usuário”) caso sua instancia seja um Ubuntu ou
outro OS que tenha um usuário diferente de ec2-user para acesso ssh.
Exemplo abaixo:
aws
ec2-instance-connect ssh –os-user root –instance-id “ID DA SUA
INSTANCIA” –connection-type eice
Para ver todos as
sinopses basta digitar “aws-ec2-instance-connect ssh help”.
Vale lembrar que
é necessário ter um usuário com permissão de acesso a instância para se
conectar tanto via Console como via CLI.
Em resumo, o
Instance Connect Endpoint é uma ferramenta poderosa que permite conexões
seguras e eficientes às instâncias privadas da AWS. Ele se alinha perfeitamente
com os princípios do Well-Architected Framework da AWS, ajudando as
organizações a operar de forma mais eficiente, segura e econômica.
eduardo.martins@darede.com.br
Eduardo Amaral Martins possui uma vasta experiência em cloud e DevOps, tendo conhecimento em tecnologias como , OpenSource, Linux e na área de observabilidade. Eduardo possui diversas certificações como a AWS Solutions Architect – Associate.