Tous les produits
Search
Centre de documentation

Elastic Compute Service:Avoid root logon for Linux instances

Dernière mise à jour :Aug 18, 2026

Utilisez ecs-user plutôt que l'utilisateur root pour réduire la surface d'attaque et permettre une élévation de privilèges auditable.

Risques de sécurité

Le compte root dispose de permissions système illimitées. Si les identifiants root (mot de passe ou clé SSH) sont compromis, un attaquant obtient un contrôle total sur le serveur. Les conséquences incluent :

  • Destruction des données : suppression des données métier, des journaux et des sauvegardes.

  • Installation de logiciels malveillants : déploiement de ransomwares, de programmes de minage ou de portes dérobées.

  • Vol d'informations sensibles : exfiltration du code métier, des données clients et des informations de paiement.

  • Mouvement latéral : utilisation du serveur comme point de départ pour attaquer d'autres serveurs de votre réseau interne.

  • Effacement des traces opérationnelles : modification ou suppression des fichiers de journalisation, ce qui complique l'enquête sur les événements de sécurité.

Bonnes pratiques

Créez des instances avec ecs-user pour les connexions quotidiennes. Cette approche limite la surface d'attaque et garantit que toutes les opérations privilégiées passent par sudo, laissant ainsi une piste d'audit claire.

Console

Sur la page d'achat d'instance, définissez Logon Username sur ecs-user.

L'utilisateur ecs-user n'est pris en charge que sur certaines versions d'images Linux. Si votre image ne le prend pas en charge, créez l'utilisateur ecs-user et accordez-lui les autorisations sudo. Consultez la rubrique Connexion à distance multi-utilisateurs.

API

Appelez RunInstances ou CreateInstance en définissant ImageOptions.LoginAsNonRoot sur true. L'instance utilise alors ecs-user au lieu de root, et le mot de passe root ne peut pas être réinitialisé.

Si vous ne disposez pas de paire de clés, appelez CreateKeyPair pour en créer une.

Conformité

Vérification : identifier les instances Linux utilisant une connexion root

  1. Accédez à ECS Insight.

  2. Sélectionnez l'onglet Security et cliquez sur Use of Non-root Users for Logons to Linux ECS Instances pour afficher les instances utilisant une connexion root.

Blocage : empêcher les opérations du compte root telles que la création d'instances

Utilisez une politique RAM pour bloquer les opérations du compte root, telles que la création d'instances Linux. Appliquez la politique au niveau de l'organisation ou du compte.

  • Utilisateurs entreprise :

    1. Connectez-vous à la console Resource Directory avec votre compte Alibaba Cloud. Dans le volet de navigation, cliquez sur Control Policies. Créez une politique personnalisée et collez le contenu JSON suivant.

      Cette politique refuse les opérations d'identité root telles que la création d'instances, l'attachement de disques système et le remplacement de disques système.

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ecs:RunInstances",
                      "ecs:CreateInstance",
                      "ecs:ReplaceSystemDisk",
                      "ecs:AttachDisk",
                      "ecs:InvokeCommand"
                  ],
                  "Resource": "*",
                  "Condition": {
                      "Bool": {
                          "ecs:LoginAsNonRoot": [
                              "false"
                          ]
                      }
                  },
                  "Effect": "Deny"
              }
          ]
      }
    2. Dans Resource Directory, sélectionnez un nœud approprié et attachez la politique. La politique bloque les opérations spécifiées pour tous les comptes du répertoire.

  • Utilisateurs non entreprise :

    1. Connectez-vous à la console RAM avec votre compte Alibaba Cloud. Dans le volet de navigation, cliquez sur Permission Policy. Créez une politique personnalisée avec le même contenu.

    2. Attachez la politique aux utilisateurs RAM, aux groupes d'utilisateurs RAM ou aux rôles RAM. Consultez la rubrique Gérer les politiques d'accès.

Correction : désactiver la connexion au compte root

  1. Créez un utilisateur standard pour la connexion SSH. Consultez la rubrique Connexion à distance multi-utilisateurs.

  2. Connectez-vous à l'instance en tant qu'utilisateur root ou en tant qu'utilisateur standard.

  3. Désactivez la connexion SSH root. Exécutez le script suivant pour modifier la configuration SSH :

    #!/bin/bash
    # Back up the original configuration file
    cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak_$(date +%F)
    
    # Disable SSH logon for the root user: Change the PermitRootLogin parameter to no
    sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
    
    # Restart the SSH service for the configuration to take effect
    # Note: The SSH service name may vary by distribution (for example, sshd or ssh). Modify it as needed.
    systemctl restart sshd || service sshd restart
  4. Vérifiez la modification. Maintenez la session actuelle ouverte et ouvrez un nouveau terminal. Confirmez que la connexion root échoue et que votre utilisateur standard peut se connecter et exécuter des commandes sudo. Déconnectez ensuite toutes les sessions.

    Après la vérification, le résultat de la vérification peut ne pas être mis à jour immédiatement. Vous pouvez ignorer ce délai.