Direkt zum Inhalt

Wie entferne ich das Konto ec2-user von meiner Amazon EC2-Linux-Instance?

Lesedauer: 9 Minute
0

Ich möchte das standardmäßige AWS-Konto ec2-user auf meinen Amazon Elastic Compute Cloud (Amazon EC2)-Linux-Instances sicher entfernen oder sperren.

Kurzbeschreibung

Standardmäßig stellt Amazon EC2 auf Amazon Linux-, Red Hat Enterprise Linux (RHEL)- und SUSE Linux Amazon Machine Images (AMIs) das Konto ec2-user bereit. Es empfiehlt sich, ec2-user für administrative Aufgaben wie Software-Installation, Systemkonfiguration und Paketverwaltung zu verwenden. Wenn du ec2-user deaktivieren (sperren) oder löschen möchtest, stelle sicher, dass du neuen Benutzerkonten die erforderlichen administrativen Berechtigungen gewährst.

Bevor du ec2-user deaktivierst oder löschst, führe die folgenden Aktionen aus:

  • Teste den Zugriff und die Berechtigungen des neuen Benutzers gründlich.
  • Überprüfe und aktualisiere Skripte, Automatisierungswerkzeuge und Anwendungen, die auf ec2-user angewiesen sind.
  • Richte mindestens zwei aktive administrative Benutzerkonten ein, die verfügbar bleiben, bis du alle Änderungen überprüft hast.

Lösung

Wichtig: Um zu verhindern, dass du dich versehentlich aus deiner Instance aussperrst, führe die folgenden Lösungsschritte der Reihe nach und in einer Sitzung aus.

Instances sichern

Bevor du deine Benutzerkonten änderst, empfiehlt es sich, eine Sicherung deiner EC2-Instance zu erstellen. Erstelle ein Amazon Elastic Block Store (Amazon EBS)-AMI. Oder erstelle einen Snapshot des EBS-Volumes, das deiner Instance zugeordnet ist. Du kannst diese Sicherung verwenden, um die Änderungen rückgängig zu machen, wenn Probleme auftreten.

Neues Benutzerkonto erstellen

Führe die folgenden Schritte aus:

  1. Stelle mit dem Konto ec2-user eine Verbindung zu deiner EC2-Instance her.
  2. Führe den folgenden Befehl aus, um ein neues Benutzerkonto mit administrativen Berechtigungen zu erstellen:
     sudo adduser newusername
    Hinweis: Ersetze newusername durch deinen neuen Benutzernamen.
  3. Führe den folgenden Befehl aus, um das neue Benutzerkonto der Gruppe wheel hinzuzufügen, die standardmäßig über sudo-Berechtigungen verfügt:
    sudo usermod -aG wheel newusername
    Hinweis: Ersetze newusername durch deinen neuen Benutzernamen.

SSH-Zugriff für den neuen Benutzer einrichten

Führe die folgenden Schritte aus:

  1. Führe den folgenden Befehl aus, um ein .ssh-Verzeichnis zu erstellen:
    sudo mkdir /home/newusername/.ssh
    Hinweis: Ersetze newusername durch deinen neuen Benutzernamen.
  2. Führe den folgenden Befehl aus, um ein neues SSH-Schlüsselpaar zu generieren:
    ssh-keygen -t ed25519 -C "newusername@example.com" -f ~/.ssh/newusername_key
    Hinweis: Ersetze newusername durch deinen neuen Benutzernamen und example.com durch deine Domain.
  3. Wenn du ein neues SSH-Schlüsselpaar generiert hast, führe den folgenden Befehl aus, um den neuen öffentlichen Schlüssel auf die EC2-Instance zu kopieren:
    cat ~/.ssh/newusername_key.pub | ssh -i current_key.pem ec2-user@your-instance-ip "sudo tee /home/newusername/.ssh/authorized_keys"
    Hinweis: Ersetze newusername durch deinen neuen Benutzernamen und your-instance-ip durch deine Instance-IP-Adresse.
    Wenn du das SSH-Schlüsselpaar direkt auf der Instance generierst, stelle sicher, dass du den privaten Schlüssel sicher auf deinen lokalen Computer kopierst. Du musst den privaten Schlüssel für zukünftigen SSH-Zugriff von außerhalb der Instance verwenden. Um den privaten Schlüssel von der EC2-Instance auf deinen lokalen Computer zu kopieren, führe den folgenden Befehl aus:
    scp -i your-existing-key.pem ec2-user@your-instance-ip:/home/ec2-user/.ssh/newusername_key.pem ~/Downloads/
    Hinweis: Ersetze your-existing-key durch deinen vorhandenen Schlüssel, your-instance-ip durch die IP-Adresse deiner Instance und newusername durch deinen neuen Benutzernamen.
    Es empfiehlt sich, zur Verbesserung der Sicherheit ein neues SSH-Schlüsselpaar zu generieren. Du kannst stattdessen jedoch den SSH-Schlüssel von ec2-user wiederverwenden. Dies ermöglicht eine schnellere, aber weniger sichere Einrichtung. Um den vorhandenen öffentlichen Schlüssel von ec2-user in die autorisierten Schlüssel des neuen Benutzers zu kopieren, führe den folgenden Befehl aus:
    sudo cp /home/ec2-user/.ssh/authorized_keys /home/newusername/.ssh/authorized_keys
    Hinweis: Ersetze newusername durch deinen neuen Benutzernamen und example.com durch deine Domain.
  4. Führe die folgenden Befehle aus, um die erforderlichen Berechtigungen einzurichten:
    sudo chown -R newusername:newusername /home/newusername/.ssh
    sudo chmod 700 /home/newusername/.ssh
    sudo chmod 600 /home/newusername/.ssh/authorized_keys
    Hinweis: Ersetze newusername durch deinen neuen Benutzernamen.

(Nur Amazon Linux, RHEL und SUSE) Stelle sicher, dass dein neuer Benutzer vollständigen sudo-Zugriff hat.

Führe die folgenden Schritte aus:

  1. Um zu überprüfen, ob die aktuelle sudo-Konfiguration gültig ist, führe den folgenden Befehl aus:

    sudo visudo -c
  2. Falls erforderlich, führe den folgenden Befehl aus, um die Datei sudoers zu öffnen.

    sudo EDITOR=vim visudo
  3. Füge der Datei die folgende Zeile hinzu, wenn der neue Benutzer nicht Teil einer Gruppe wie wheel oder sudo ist:

    newusername ALL=(ALL) NOPASSWD:ALL

    Hinweis: Ersetze newusername durch deinen neuen Benutzernamen.

Zugriff des neuen Benutzers testen

Wichtig: Du musst sicherstellen, dass der neue Benutzer sowohl SSH- als auch sudo-Zugriff hat, bevor du andere administrative Benutzer entfernst oder deaktivierst.

Um sicherzustellen, dass der neue Benutzer auf die Instance zugreifen und sie bedienen kann, führe die folgenden Schritte aus:

  1. Öffne ein neues Terminalfenster.

  2. Führe den folgenden Befehl aus, um die SSH-Anmeldung mit dem neuen Schlüssel zu testen:

    ssh -i ~/.ssh/newusername_key newusername@your-instance-ip

    Hinweis: Ersetze newusername durch deinen neuen Benutzernamen und your-instance-ip durch deine Instance-IP-Adresse.

  3. Führe den folgenden Befehl aus, um den sudo-Zugriff zu überprüfen:

    sudo whoami

    Stelle sicher, dass du root in der Ausgabe erhältst. Beispielausgabe:

    root
  4. (Optional) Um sicherzustellen, dass du vollständigen Zugriff hast, führe einen typischen sudo-Befehl aus. Beispielbefehl:

    sudo yum update -y

Abhängigkeiten prüfen

Führe die folgenden Schritte aus:

  1. Stelle sicher, dass keine Anwendungen oder Prozesse Dateien aus dem Home-Verzeichnis /home/ec2-user verwenden. Um nach offenen Dateien oder Prozessen zu suchen, führe den folgenden Befehl aus:

    sudo lsof +D /home/ec2-user
  2. Wenn du Prozesse oder Anwendungen findest, die Dateien aus dem Home-Verzeichnis von ec2-user verwenden, musst du die Dateien und Berechtigungen migrieren. Um ein temporäres Verzeichnis für migrierte Dateien zu erstellen, führe den folgenden Befehl aus:

    sudo mkdir -p /home/newusername/moved_files

    Hinweis: Ersetze newusername durch deinen neuen Benutzernamen.

  3. Um Dateien in das Home-Verzeichnis des neuen Benutzers zu kopieren oder zu verschieben, führe den folgenden Befehl aus:

    sudo cp -rp /home/ec2-user/some_app/home/newusername/moved_files/

    Hinweis: Ersetze some_app durch deinen Anwendungsnamen und newusername durch deinen neuen Benutzernamen.

  4. Um Eigentümerschaft und Berechtigungen zu aktualisieren, führe den folgenden Befehl aus:

    sudo chown -R newusername:newusername /home/newusername/moved_files

    Hinweis: Ersetze newusername durch deinen neuen Benutzernamen.

Wenn du crontab-Einträge hast, führe die folgenden Schritte aus:

  1. Um crontab-Einträge von ec2-user zu exportieren, führe den folgenden Befehl aus:

    sudo crontab -u ec2-user -l > /tmp/ec2-user-crontab
  2. Um crontab-Einträge für den neuen Benutzer zu importieren, führe den folgenden Befehl aus:

    sudo crontab -u newusername /tmp/ec2-user-crontab

    Hinweis: Ersetze newusername durch deinen neuen Benutzernamen.

System- und Anwendungskonfigurationen aktualisieren

Überprüfe und ändere System- oder Dienstkonfigurationsdateien, die auf ec2-user verweisen. Um in Konfigurationsdateien nach Vorkommen von ec2-user zu suchen, führe den folgenden Befehl aus:

sudo grep -r "ec2-user" /etc/

Stelle sicher, dass du anwendungsspezifische Einstellungen und Skripte aktualisierst, die ec2-user verwenden, damit sie den neuen Benutzernamen widerspiegeln.

Standardmäßig wird AWS-Systems-Manager-Agent (SSM-Agent) als ec2-user ausgeführt oder verwendet ec2-user-Berechtigungen und Umgebungseinstellungen. Erstelle eine Arbeitssitzung oder Sicherungsmethode für den Zugriff, bis du überprüft hast, dass SSM Agent mit der neuen Benutzerkonfiguration korrekt funktioniert. Bevor du ec2-user entfernst oder änderst, überprüfe, ob SSM Agent die folgenden Konfigurationen hat:

  • Er wird unter einem Benutzer auf Systemebene (root) oder unter dem neuen Benutzer ausgeführt.
  • Er kann auf erforderliche Systemdateien und Umgebungsvariablen zugreifen.
  • Du hast ihn korrekt in der Datei /etc/amazon/ssm/amazon-ssm-agent.json konfiguriert.

Wichtig: Wenn du SSM Agent nicht konfigurierst, bevor du ec2-user deaktivierst oder löschst, verlierst du möglicherweise den Zugriff auf die folgenden Funktionen.

  • Session Manager, eine Funktion von AWS Systems Manager
  • Session Manager-Befehle und Automatisierung
  • Inventory, eine Funktion von AWS Systems Manager
  • Patch Manager, eine Funktion von AWS Systems Manager

Konto ec2-user deaktivieren

Wenn du ec2-user deaktivierst, kannst du es nicht für die Anmeldung oder andere Prozesse verwenden. Um ec2-user zu deaktivieren, führe die folgenden Schritte aus:

  1. Stelle mit dem neuen Benutzerkonto eine Verbindung zu deiner EC2-Instance her.

  2. Führe den folgenden Befehl aus, um die Passwortanmeldung für ec2-user zu deaktivieren:

    sudo passwd -l ec2-user
  3. Führe den folgenden Befehl aus, um ec2-user aus der Gruppe sudo oder wheel zu entfernen.

    sudo gpasswd -d ec2-user wheel
  4. (Optional) Um den SSH-Zugriff für ec2-user zu entfernen, führe den folgenden Befehl aus:

    sudo rm /home/ec2-user/.ssh/authorized_keys

Wenn du ec2-user wieder aktivieren musst, stelle eine Verbindung zu deiner EC2-Instance her und führe den folgenden Befehl aus:

sudo passwd -u ec2-user

Benutzerkonto ec2-user löschen

Wichtig: Wenn du ec2-user löschst, entfernst du das Konto und sein Home-Verzeichnis von deiner Instance. Du kannst ec2-user nicht wieder aktivieren, wenn du es löschst.

Um ec2-user zu löschen, führe die folgenden Schritte aus:

  1. Stelle mit dem neuen Benutzerkonto eine Verbindung zu deiner EC2-Instance her.
  2. Führe den folgenden Befehl aus, um ec2-user zu löschen:
    sudo userdel -r ec2-user

Wenn du ec2-user löschst, wirkt sich das auf die folgenden automatisierten Prozesse aus:

  • Benutzerdefinierte Skripte, die davon ausgehen, dass ec2-user vorhanden ist, schlagen fehl.
  • Cron-Jobs, die du unter ec2-user eingerichtet hast, werden nicht mehr ausgeführt.

Eine Instance wiederherstellen, auf die du nicht zugreifen kannst

Wenn du den sudo-Zugriff verlierst, verwende EC2 Instance Connect oder Session Manager, um eine Verbindung zu deiner Instance herzustellen. Oder du kannst einen Amazon EBS-Snapshot oder ein AMI verwenden, um deine Instance wiederherzustellen.

Bewährte Sicherheitsmethoden einhalten

Ergreife die folgenden Maßnahmen:

  • Rotiere SSH-Schlüssel regelmäßig, um die Sicherheit zu verbessern und das Risiko eines kompromittierten Zugriffs zu verringern.
  • Erstelle eindeutige SSH-Schlüssel für jeden administrativen Benutzer, um individuelle Nachvollziehbarkeit einzurichten.
  • Aktiviere die Protokollierung aller sudo-Aktivitäten, um administrative Aktionen nachzuverfolgen und zu prüfen.
  • Verwende für bessere kryptografische Stärke und Leistung starke, moderne Schlüsseltypen wie ed25519.
  • Führe eine aktuelle Liste aller Benutzer mit administrativen Berechtigungen, um eine ordnungsgemäße Zugriffskontrolle und Überprüfung sicherzustellen.
  • Überwache Anmeldeversuche, um unbefugten Zugriff oder Brute-Force-Angriffe zu erkennen.

Wichtig: Stelle sicher, dass du jederzeit auf mindestens ein vollständig funktionsfähiges administratives Benutzerkonto zugreifen kannst. Teste alle Änderungen gründlich, bevor du vorhandenen Zugriff deaktivierst oder änderst.

AWS OFFICIALAktualisiert vor einem Jahr