Lorsque vous travaillez avec l'infrastructure cloud, la securite est primordiale. Un aspect critique de la securite est le controle d'acces aux ressources cloud, et c'est particulierement important avec les instances AWS EC2. Les cles SSH sont un moyen de securiser l'acces aux instances EC2, et avec Terraform, il est simple de creer et de gerer ces cles.

Les cles SSH sont utilisees pour l'acces securise a une instance EC2, et elles se composent de deux parties : une cle publique et une cle privee. La cle publique est telechargee sur l'instance EC2, et la cle privee est utilisee pour s'authentifier aupres de l'instance. La cle privee doit rester securisee et ne pas etre partagee.

Terraform est un outil puissant pour gerer l'infrastructure en tant que code, et il peut etre utilise pour creer et gerer des cles SSH pour l'acces securise aux instances AWS EC2. Voici comment faire.

D'abord, creez une paire de cles SSH. Cela peut etre fait avec la commande ssh-keygen sur votre machine locale. Pour generer une paire de cles RSA avec une taille de cle de 4096 bits, lancez la commande suivante :

ssh-keygen -t rsa -b 4096

Cela generera une cle publique et une cle privee dans le repertoire .ssh de votre repertoire personnel. La cle publique a une extension .pub et doit etre telechargee sur l'instance EC2.

Ensuite, creez un module Terraform pour gerer la cle SSH. Le module doit inclure le code suivant :

resource "aws_key_pair" "ssh_key" {
  key_name   = "ssh_key"
  public_key = file("~/.ssh/id_rsa.pub")
}

Cela cree une ressource de paire de cles AWS avec le nom "ssh_key" et telecharge la cle publique de la machine locale vers AWS. La fonction file() est utilisee pour lire le contenu du fichier de cle publique sur la machine locale.

L'etape suivante consiste a referencer la cle SSH dans la ressource d'instance EC2. Cela peut etre fait avec le parametre key_name dans la ressource aws_instance :

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
  key_name      = aws_key_pair.ssh_key.key_name

// autre configuration de l’instance }

Cela cree une instance EC2 avec l'AMI et le type d'instance specifies, et associe la cle SSH a l'instance en utilisant le parametre key_name. La valeur de aws_key_pair.ssh_key.key_name est une reference au nom de la ressource de paire de cles creee a l'etape precedente.

Enfin, initialisez le module Terraform avec terraform init, et appliquez les changements avec terraform apply. Terraform creera la ressource de paire de cles SSH et la ressource d'instance EC2 avec la cle SSH associee.

Avec cette configuration, vous pouvez maintenant acceder en toute securite a l'instance EC2 en utilisant la cle privee generee precedemment. Pour ce faire, utilisez la commande ssh sur votre machine locale :

ssh -i ~/.ssh/id_rsa ec2-user@<ip_publique_instance>

Cela se connectera a l'instance EC2 en utilisant la cle privee et l'utilisateur par defaut ec2-user. Remplacez <ip_publique_instance> par l'adresse IP publique de l'instance EC2.

En resume, utiliser des cles SSH pour l'acces securise aux instances AWS EC2 est une partie cruciale de la securite de l'infrastructure cloud. Avec Terraform, il est simple de creer et de gerer ces cles dans le cadre de votre infrastructure en tant que code. En suivant les etapes decrites dans cet article, vous pouvez garantir un acces securise a vos instances EC2 et proteger votre infrastructure cloud.