Passer au contenu

Comment utiliser cloud-init et les données utilisateur pour ajouter de nouveaux comptes AWS utilisateurs avec accès SSH à mon instance Linux EC2 ?

Lecture de 4 minute(s)
0

Je souhaite créer un utilisateur supplémentaire qui puisse se connecter à mon instance Linux Amazon Elastic Compute Cloud (Amazon EC2) via SSH.

Brève description

Incluez la commande de données utilisateur qui exécute les tâches suivantes :

  • Créez un nouvel utilisateur.
  • Accorde des autorisations sudo à l'utilisateur.
  • Ajoute la clé publique SSH au fichier authorized_keys.

Résolution

Important : Avant de modifier une instance, vérifiez les points suivants :

Procédez comme suit :

  1. Connectez-vous à l'instance à l'aide de SSH ou de Session Manager.

  2. Pour vérifier que cloud-init est bien installé, exécutez la commande suivante :

    $ cloud-init -v

    Si la commande renvoie une erreur, exécutez la commande suivante pour installer une instance sur votre distribution Linux :

    Pour les instances basées sur Debian

    $ sudo apt-get install cloud-init

    Pour les instances basées sur RPM

    sudo dnf install cloud-init

    Pour les instances Suse

    zypper install cloud-init
  3. Après avoir confirmé l'installation de cloud-init, continuez à arrêter l'instance.
    Remarque : Si l'option Arrêter n'est pas disponible, cela signifie que l'instance est déjà arrêtée ou que son périphérique racine est un volume de stockage d'instance.

  4. Générez la clé publique à partir de votre clé privée pour vous connecter au nouvel utilisateur.
    Remarque : Vous devez disposer d'une paire de clés ou d'une clé privée pour obtenir la clé publique. Pour créer une paire de clés, consultez la section Créer une paire de clés pour votre instance Amazon EC2. Il est recommandé, pour la sécurité SSH, de créer des paires de clés via la console EC2 ou un outil tiers.
    Pour récupérer la clé publique, exécutez la commande suivante. Si votre clé privée comporte une phrase secrète, saisissez-la lorsque vous y êtes invité.

    $ ssh-keygen -f <private_key_file> -y
  5. Insérez votre clé publique dans la commande suivante, puis mettez à jour le champ des données utilisateur avec cette commande :
    Sélectionnez l’instance.
    Dans le volet de navigation, choisissez Actions, puis Paramètres de l'instance.
    Choisissez Modifier les données utilisateur, puis collez le script dans le champ.
    Remarque : Remplacez le nom d'utilisateur de l'espace réservé par le nom d'utilisateur que vous souhaitez utiliser. Pour ssh-rsa AB3nzExample, saisissez votre clé publique : Si vous utilisez une instance Debian, modifiez la valeur des groupes de wheel à sudo :

    #cloud-config
    cloud_final_modules:
    - [users-groups,always]
    users:
      - name:username
        groups: [ wheel ]
        shell: /bin/bash
        sudo: ["ALL=(ALL) NOPASSWD:ALL"]
         ssh-authorized-keys:
         - ssh-rsa AB3nzExample

    La commande précédente crée un utilisateur avec un accès illimité. Pour bloquer l'accès à sudo pour l'utilisateur, définissez la valeur de sudo sur faux. Pour plus d'informations, consultez la page Exemples de configuration du cloud sur le site Web de cloud-init.
    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.

  6. Sélectionnez Enregistrer.

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

  8. 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 : Utilisez l'action d’API ModifyInstanceAttribute pour modifier les données utilisateur d'une instance. Vous pouvez créer une politique Gestion des identités et des accès AWS (AWS 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 OFFICIELA mis à jour il y a un an