Comment puis-je ajouter de nouveaux comptes utilisateur avec accès SSH à mon instance EC2 à l’aide de cloud-init et des données utilisateur ?

Lecture de 4 minute(s)
0

Je souhaite ajouter un nouveau compte utilisateur pouvant se connecter à mon instance Linux Amazon Elastic Compute Cloud (Amazon EC2) à l’aide de SSH. Comment puis-je utiliser cloud-init et les données de l’utilisateur pour y parvenir ?

Brève description

Transmettez un script de données utilisateur à cloud-init qui :

1.    Crée un nouvel utilisateur.

2.    Définit la propriété et les autorisations de fichiers appropriées pour le répertoire SSH et les fichiers qu’il contient.

3.    Ajoute la clé publique SSH au fichier authorized_keys.

Résolution

Avant de commencer, notez les points suivants :

  • L’arrêt et le redémarrage de l’instance effacent toutes les données des volumes de stockage d’instance. Veillez à sauvegarder tous les volumes de stockage d’instances contenant des données que vous souhaitez. Consultez Déterminer le type d’appareil racine de votre AMI pour plus d’informations.
  • Le fait d’arrêter et de redémarrer l’instance modifie l’adresse IP publique de votre instance. Lorsque vous acheminez du trafic externe vers votre instance, une bonne pratique consiste à utiliser une adresse IP Elastic plutôt qu’une adresse IP publique.

1.    Connectez-vous à votre instance EC2 via SSH.

2.    Exécutez la commande suivante pour vérifier que cloud-init est bien installé :

sudo yum list installed cloud-init

Si cloud-init n’est pas installé, exécutez la commande suivante pour l’installer :

sudo yum install cloud-init

3.    Ouvrez la console Amazon EC2, puis sélectionnez l’instance.

4.    Choisissez Actions, sélectionnez État de l’instance, puis choisissez Arrêter.

Remarque : si Arrêter n’est pas disponible, cela signifie que l’instance est déjà arrêtée ou que son appareil racine est un volume de stockage d’instances.

5.    Récupérez la clé publique depuis la paire de clés.

Remarque : vous devez disposer d’une paire de clés ou d’une clé privée pour récupérer une clé publique. Afin de créer une paire de clés, veuillez consulter la section Créer une paire de clés à l’aide d’Amazon EC2. Pour sécuriser le serveur SSH, il est recommandé de créer des paires de clés via la console EC2 ou un outil tiers.

6.    Sélectionnez Actions, Paramètres de l’instance, puis choisissez Afficher/Changer les données utilisateur.

7.    Copiez-collez l’exemple de script suivant dans le champ Données utilisateur. Pour Nom d’utilisateur, saisissez le nom d’utilisateur du nouvel utilisateur. Pour ssh-rsa AB3nzExample, saisissez votre clé publique :

#cloud-config
cloud_final_modules:
- [users-groups,always]
users:
  - name: username
    groups: [ wheel ]
    sudo:     
      - "ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart httpd"
      - "ALL=(ALL) NOPASSWD: /usr/bin/cp /home/username/webserver_configuration.conf /etc/httpd/conf.d/"
    shell: /bin/bash
    ssh-authorized-keys:
    - ssh-rsa AB3nzExample

Cet exemple de script permet au nouvel utilisateur d’effectuer uniquement les actions root suivantes :

  • Copiez le fichier /home/username/webserver_configuration.conf dans /etc/httpd/conf.d/
  • Redémarrer le service du serveur Web

Afin d’accorder à l’utilisateur un accès complet à EC2, remplacez le champ sudo par sudo: [ "ALL=(ALL) NOPASSWD:ALL" ].

Remarque : par défaut, les directives cloud-init ne s’exécutent que lorsqu’une instance est lancée. Toutefois, lorsque vous utilisez ce script de données utilisateur, cloud-init ajoute la clé publique à l’instance chaque fois que cette dernière redémarre. Si vous supprimez le script de données utilisateur, la fonctionnalité par défaut est rétablie.

8.    Choisissez Enregistrer.

9.    Choisissez Actions, sélectionnez État de l’instance, puis choisissez Démarrer.

10.    Lorsque l’instance atteint l’état en cours d’exécution, connectez-vous en tant que nouvel utilisateur. Le nouvel utilisateur a le même comportement par défaut que ec2-user.

Remarque : la modification des données utilisateur d’une instance utilise l’action d’API ModifyInstanceAttribute. Vous pouvez créer une politique AWS Identity and Access Management (IAM) pour restreindre cette action.


Informations connexes

Afficher votre paire de clés

Comment puis-je ajouter de nouveaux comptes utilisateur avec un accès SSH à mon instance Linux Amazon EC2 ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans