All Products
Search
Document Center

Elastic Compute Service:Hindari login root untuk instans Linux

Last Updated:May 16, 2026

Gunakan ecs-user alih-alih root untuk mengurangi permukaan serangan dan memungkinkan peningkatan hak istimewa yang dapat diaudit.

Risiko keamanan

Akun root memiliki izin sistem tanpa batas. Jika kredensial root (password atau kunci SSH) dikompromikan, penyerang akan mendapatkan kendali penuh atas server. Konsekuensinya meliputi:

  • Penghancuran data: menghapus data bisnis, log, dan backup.

  • Instalasi malware: menginstal ransomware, program penambangan, atau backdoor.

  • Pencurian informasi sensitif: mencuri kode bisnis, data pelanggan, dan informasi pembayaran.

  • Pergerakan lateral: menggunakan server sebagai titik awal untuk menyerang server lain di jaringan internal Anda.

  • Menghapus jejak operasional: memodifikasi atau menghapus file log, sehingga menyulitkan investigasi event keamanan.

Praktik terbaik

Buat instans dengan ecs-user untuk login harian. Hal ini membatasi permukaan serangan dan memastikan semua operasi berhak istimewa dilakukan melalui sudo, sehingga meninggalkan jejak audit yang jelas.

Konsol

Pada Instance Buy page, atur Logon Username menjadi ecs-user.

Pengguna ecs-user hanya didukung pada versi gambar Linux tertentu. Jika gambar Anda tidak mendukungnya, buat pengguna ecs-user dan berikan izin sudo. Lihat Login remote multi-pengguna.

API

Panggil RunInstances atau CreateInstance dengan ImageOptions.LoginAsNonRoot diatur ke true. Instans tersebut kemudian menggunakan ecs-user alih-alih root, dan password root tidak dapat direset.

Jika Anda tidak memiliki pasangan kunci, panggil CreateKeyPair untuk membuat satu.

Kepatuhan

Periksa: temukan instans Linux yang menggunakan login root

  1. Buka ECS Insight.

  2. Pilih tab Security dan klik Use of Non-root Users for Logons to Linux ECS Instances untuk melihat instans yang menggunakan login root.

Blokir: mencegah operasi akun root seperti pembuatan instans

Gunakan kebijakan RAM untuk memblokir operasi akun root seperti membuat instans Linux. Terapkan kebijakan tersebut di tingkat organisasi atau akun.

  • Pengguna perusahaan:

    1. Login ke Konsol Resource Directory dengan Akun Alibaba Cloud Anda. Di panel navigasi, klik Control Policies. Buat kebijakan kustom dan tempel konten JSON berikut.

      Kebijakan ini menolak operasi dengan identitas root seperti membuat instans, menyambungkan disk sistem, dan mengganti disk sistem.

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ecs:RunInstances",
                      "ecs:CreateInstance",
                      "ecs:ReplaceSystemDisk",
                      "ecs:AttachDisk",
                      "ecs:InvokeCommand"
                  ],
                  "Resource": "*",
                  "Condition": {
                      "Bool": {
                          "ecs:LoginAsNonRoot": [
                              "false"
                          ]
                      }
                  },
                  "Effect": "Deny"
              }
          ]
      }
    2. Di Resource Directory, pilih node yang sesuai dan sambungkan kebijakan tersebut. Kebijakan ini memblokir operasi yang ditentukan untuk semua akun dalam direktori.

  • Pengguna non-perusahaan:

    1. Login ke Konsol RAM dengan Akun Alibaba Cloud Anda. Di panel navigasi, klik Permission Policy. Buat kebijakan kustom dengan konten yang sama.

    2. Sambungkan kebijakan tersebut ke Pengguna RAM, Grup pengguna RAM, atau Peran RAM. Lihat Manage access policies.

Perbaiki: nonaktifkan login akun root

  1. Buat pengguna reguler untuk login SSH. Lihat Login remote multi-pengguna.

  2. Login ke instans sebagai root atau pengguna reguler.

  3. Nonaktifkan login SSH untuk root. Jalankan skrip berikut untuk memodifikasi konfigurasi SSH:

    #!/bin/bash
    # Cadangkan file konfigurasi asli
    cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak_$(date +%F)
    
    # Nonaktifkan login SSH untuk pengguna root: Ubah parameter PermitRootLogin menjadi no
    sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
    
    # Restart layanan SSH agar konfigurasi berlaku
    # Catatan: Nama layanan SSH dapat berbeda tergantung distribusi (misalnya, sshd atau ssh). Sesuaikan jika diperlukan.
    systemctl restart sshd || service sshd restart
  4. Verifikasi perubahan. Biarkan sesi saat ini tetap terbuka dan buka terminal baru. Pastikan login root gagal dan pengguna reguler Anda dapat login serta menjalankan perintah sudo. Setelah itu, putuskan semua sesi.

    Setelah verifikasi, hasil periksa mungkin tidak segera diperbarui. Anda dapat mengabaikan penundaan ini.