Criando Chaves SSH para Acesso Seguro a Instancias AWS EC2 com Terraform
Ao trabalhar com infraestrutura de nuvem, a seguranca e de extrema importancia. Um aspecto critico da seguranca e controlar o acesso aos recursos de nuvem...

Ao trabalhar com infraestrutura de nuvem, a seguranca e de extrema importancia. Um aspecto critico da seguranca e controlar o acesso aos recursos de nuvem, e isso e particularmente importante ao trabalhar com instancias AWS EC2. As chaves SSH sao uma forma de proteger o acesso as instancias EC2 e, com o Terraform, e simples criar e gerenciar essas chaves.
As chaves SSH sao usadas para acesso seguro a uma instancia EC2 e consistem em duas partes - uma chave publica e uma chave privada. A chave publica e enviada para a instancia EC2 e a chave privada e usada para autenticar com a instancia. A chave privada deve ser mantida em seguranca e nao compartilhada com mais ninguem.
O Terraform e uma ferramenta poderosa para gerenciar infraestrutura como codigo e pode ser usado para criar e gerenciar chaves SSH para acesso seguro a instancias AWS EC2. Veja como fazer isso.
Primeiro, crie um par de chaves SSH. Isso pode ser feito com o comando ssh-keygen na sua maquina local. Para gerar um par de chaves RSA com tamanho de 4096 bits, execute o seguinte comando:
ssh-keygen -t rsa -b 4096
Isso gerara uma chave publica e uma chave privada no diretorio .ssh no seu diretorio home. A chave publica tem a extensao .pub e deve ser enviada para a instancia EC2.
Em seguida, crie um modulo Terraform para gerenciar a chave SSH. O modulo deve incluir o seguinte codigo:
resource "aws_key_pair" "ssh_key" {
key_name = "ssh_key"
public_key = file("~/.ssh/id_rsa.pub")
}
Isso cria um recurso de par de chaves AWS com o nome "ssh_key" e envia a chave publica da maquina local para a AWS. A funcao file() e usada para ler o conteudo do arquivo de chave publica na maquina local.
O proximo passo e referenciar a chave SSH no recurso da instancia EC2. Isso pode ser feito com o parametro key_name no recurso aws_instance:
resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
key_name = aws_key_pair.ssh_key.key_name
// outras configuracoes da instancia
}
Isso cria uma instancia EC2 com a AMI e o tipo de instancia especificados e associa a chave SSH a instancia usando o parametro key_name. O valor de aws_key_pair.ssh_key.key_name e uma referencia ao nome do recurso de par de chaves criado no passo anterior.
Por fim, inicialize o modulo Terraform com terraform init e aplique as alteracoes com terraform apply. O Terraform criara o recurso de par de chaves SSH e o recurso de instancia EC2 com a chave SSH associada.
Com esta configuracao, voce agora pode acessar com seguranca a instancia EC2 usando a chave privada gerada anteriormente. Para fazer isso, use o comando ssh na sua maquina local:
ssh -i ~/.ssh/id_rsa ec2-user@<ip_publico_da_instancia>
Isso conectara a instancia EC2 usando a chave privada e o usuario padrao ec2-user. Substitua <ip_publico_da_instancia> pelo endereco IP publico da instancia EC2.
Em resumo, usar chaves SSH para acesso seguro a instancias AWS EC2 e uma parte crucial da seguranca da infraestrutura de nuvem. Com o Terraform, e simples criar e gerenciar essas chaves como parte da sua infraestrutura como codigo. Seguindo os passos descritos neste artigo, voce pode garantir acesso seguro as suas instancias EC2 e proteger sua infraestrutura de nuvem.
Mais de Ercan
Mais dois sites, mesmo autor, terreno diferente.
IA, LLMs, agentes, ML aplicado.
Notas de campo sobre cargas de IA. Análise de custos do Bedrock, padrões de agentes, trade-offs de armazenamento vetorial, modos de falha em produção.
Visitar ercan.ai →O hub. Sobre, consultoria, contato.
Hub pessoal para as duas trilhas de escrita. Quem sou eu, como funciona a consultoria, como me contatar.
Visitar ercanermis.com →