Linux : donner les privilèges sudo à un utilisateur sur une instance Amazon Web Service EC2

Sur une instance Amazon EC2 sous Linux, les droits sudo dépendent de l’image système utilisée, pas d’un mécanisme sudo propre à AWS. Le compte initial dispose généralement de sudo ; un nouveau compte n’hérite pas automatiquement de ses privilèges.

Identifier le compte et les autorisations actuelles

whoami
id
sudo -l

Les comptes Linux d’une instance sont distincts des utilisateurs IAM. Avant de modifier les permissions, conservez une session d’administration ouverte et vérifiez votre accès de secours. Consultez les règles propres à l’AMI et à votre distribution.

Kinsta: Premium Managed WordPress hosting

Sur Ubuntu : ajouter un compte au groupe sudo

Pour un compte existant nommé matt, si le groupe sudo est bien autorisé par la configuration :

sudo usermod -aG sudo matt

L’option -a conserve les autres groupes du compte. Une nouvelle session est nécessaire pour prendre en compte l’appartenance. Ce mode demande normalement le mot de passe du compte pour sudo ; un compte créé avec mot de passe désactivé nécessite donc une politique adaptée.

N’activez pas l’authentification SSH par mot de passe simplement pour résoudre une demande de mot de passe sudo. Ce sont deux réglages différents.

Créer une règle sudoers dédiée si nécessaire

Utilisez visudo et un fichier local, plutôt que de modifier un fichier géré par cloud-init sans examiner son rôle. Exemple avec demande de mot de passe :

sudo visudo -f /etc/sudoers.d/90-matt
matt ALL=(ALL:ALL) ALL

Si l’exploitation impose une élévation sans mot de passe, la règle suivante accorde un accès très large. Réservez-la à un compte d’administration explicitement approuvé, protégé par clé SSH :

matt ALL=(ALL:ALL) NOPASSWD: ALL

Pour une automatisation, préférez des commandes précisément définies après analyse des possibilités d’escalade. Restreindre à un programme capable de lancer un shell ne constitue pas nécessairement une restriction efficace.

Comprendre les fichiers inclus

La directive @includedir, ou son ancienne forme #includedir, charge les fichiers du répertoire indiqué. Ils sont lus dans l’ordre lexical : 10-premier avant 90-dernier. Le signe # de l’ancienne directive n’est pas un commentaire.

Évitez les noms contenant un point ou terminés par un tilde, qui peuvent être ignorés. Ne supposez pas qu’une règle placée dans un fichier « 90 » est lue avant un fichier « 10 ».

Kinsta: Premium Managed WordPress hosting

Valider sans redémarrer un service sudo

sudo visudo -c
sudo -l -U matt

Il n’est pas nécessaire de redémarrer un service sudo après modification. Testez depuis une seconde session du compte concerné. Vérifiez également les permissions et le propriétaire du fichier selon les conventions de la distribution.

Pour sécuriser l’accès distant, consultez la création d’une clé SSH et le contrôle de la configuration avec SSH-Audit.

Références

AWS : gérer les comptes Linux EC2 ; sudoers : règles et ordre des fichiers inclus.

Laisser un commentaire