Todos os produtos
Search
Central de documentação

Elastic Compute Service:Avoid root logon for Linux instances

Última atualização: Jul 03, 2026

Use o ecs-user em vez do root para reduzir a superfície de ataque e permitir a elevação de privilégios auditável.

Riscos de segurança

A conta root tem permissões irrestritas no sistema. Se as credenciais do root (senha ou chave SSH) forem comprometidas, um invasor obterá controle total do servidor. As consequências incluem:

  • Destruição de dados: exclusão de dados comerciais, logs e backups.

  • Instalação de malware: implantação de ransomware, programas de mineração ou backdoors.

  • Roubo de informações sensíveis: subtração de código-fonte comercial, dados de clientes e informações de pagamento.

  • Movimentação lateral: uso do servidor como ponto de partida para atacar outros servidores na rede interna.

  • Apagamento de rastros operacionais: modificação ou exclusão de arquivos de log, o que dificulta a investigação de eventos de segurança.

Melhores práticas

Crie instâncias com o usuário ecs-user para login diário. Essa prática limita a superfície de ataque e garante que todas as operações privilegiadas passem pelo sudo, deixando um rastro de auditoria claro.

Console

Na página de compra de instância, defina o Logon Username como ecs-user.

O usuário ecs-user é compatível apenas com versões específicas de imagens Linux. Se a sua imagem não oferecer suporte, crie o usuário ecs-user e conceda permissões de sudo . Consulte Login remoto multiusuário .

API

Chame a operação RunInstances ou CreateInstance com o parâmetro ImageOptions.LoginAsNonRoot definido como true. Assim, a instância usa o ecs-user em vez do root, e a senha do root não pode ser redefinida.

Caso não tenha um par de chaves, chame a operação CreateKeyPair para criar um.

Conformidade

Verificação: identificar instâncias Linux com login root

  1. Acesse o ECS Insight.

  2. Selecione a aba Security e clique em Use of Non-root Users for Logons to Linux ECS Instances para visualizar as instâncias que usam login root.

Bloqueio: impedir operações da conta root, como criação de instâncias

Use uma política do RAM para bloquear operações da conta root, como a criação de instâncias Linux. Aplique a política no nível organizacional ou da conta.

  • Usuários corporativos:

    1. Faça login no console do Resource Directory com sua conta Alibaba Cloud. No painel de navegação, clique em Control Policies. Crie uma política personalizada e cole o seguinte conteúdo JSON.

      Esta política nega operações da identidade root, como criação de instâncias, anexação de discos de sistema e substituição de discos de sistema.

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ecs:RunInstances",
                      "ecs:CreateInstance",
                      "ecs:ReplaceSystemDisk",
                      "ecs:AttachDisk",
                      "ecs:InvokeCommand"
                  ],
                  "Resource": "*",
                  "Condition": {
                      "Bool": {
                          "ecs:LoginAsNonRoot": [
                              "false"
                          ]
                      }
                  },
                  "Effect": "Deny"
              }
          ]
      }
    2. No Resource Directory, selecione um nó apropriado e anexe a política. A política bloqueará as operações especificadas para todas as contas no diretório.

  • Usuários não corporativos:

    1. Faça login no console do RAM com sua conta Alibaba Cloud. No painel de navegação, clique em Permission Policy. Crie uma política personalizada com o mesmo conteúdo.

    2. Anexe a política a usuários RAM, grupos de usuários RAM ou funções RAM. Consulte Gerenciar políticas de acesso.

Correção: desativar login da conta root

  1. Crie um usuário comum para login SSH. Consulte Login remoto multiusuário.

  2. Faça login na instância como root ou como usuário comum.

  3. Desative o login SSH do root. Execute o script a seguir para modificar a configuração do 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. Verifique a alteração. Mantenha a sessão atual aberta e abra um novo terminal. Confirme se o login do root falha e se o usuário comum consegue fazer login e executar comandos sudo. Em seguida, desconecte todas as sessões.

    Após a verificação, o resultado da verificação pode não ser atualizado imediatamente. Ignore esse atraso.