Wie füge ich mithilfe von cloud-init und Benutzerdaten neue Benutzerkonten mit SSH-Zugriff zu meiner EC2-Instance hinzu?

Lesedauer: 3 Minute
0

Ich möchte einen weiteren Benutzer hinzufügen, der über SSH eine Verbindung zu meiner Amazon Elastic Compute Cloud (Amazon EC2) Linux-Instance herstellen kann. Wie kann ich dazu cloud-init und Benutzerdaten verwenden?

Kurzbeschreibung

Übergeben Sie ein Benutzerdatenskript an cloud-init, das Folgendes ausführt:

1.    Erzeugt einen neuen Benutzer.

2.    Legt die entsprechenden Besitzrechte und Dateiberechtigungen für das SSH-Verzeichnis und die darin enthaltenen Dateien fest.

3.    Hängt den öffentlichen SSH-Schlüssel an die Datei authorized_keys an.

Lösung

Beachten Sie vor Beginn Folgendes:

  • Durch das Stoppen und Neustarten der Instance werden alle Daten auf Instance-Speicher-Volumes gelöscht. Stellen Sie sicher, dass Sie alle Instance-Speicher-Volumes sichern, die Daten enthalten, die Sie behalten möchten. Weitere Informationen finden Sie unter Ermitteln des Root-Gerätetyps Ihrer AMI.
  • Wenn Sie die Instance stoppen und neu starten, wird die öffentliche IP-Adresse Ihrer Instance geändert. Es empfiehlt sich, beim Weiterleiten von externem Datenverkehr an Ihre Instance eine Elastic-IP-Adresse anstelle einer öffentlichen IP-Adresse zu verwenden.

1.    Stellen Sie eine SSH-Verbindung zu Ihrer EC2-Instance her.

2.    Führen Sie den folgenden Befehl aus, um zu bestätigen, dass cloud-init installiert ist:

sudo yum list installed cloud-init

Wenn cloud-init nicht installiert ist, führen Sie den folgenden Befehl aus, um es zu installieren:

sudo yum install cloud-init

3.    Öffnen Sie die Amazon-EC2-Konsole und wählen Sie dann Ihre Instance aus.

4.    Wählen Sie Aktionen, Instance-Status und dann Beenden.

Hinweis: Wenn Beenden nicht verfügbar ist, ist die Instance entweder bereits gestoppt oder ihr Root-Gerät ist ein Instance-Speicher-Volume.

5.    Rufen Sie den öffentlichen Schlüssel aus dem Schlüsselpaar ab.

Hinweis: Sie benötigen ein Schlüsselpaar oder einen privaten Schlüssel, um einen öffentlichen Schlüssel abzurufen. Informationen zum Erstellen eines Schlüsselpaars finden Sie unter Erstellen eines Schlüsselpaars mit Amazon EC2. Aus Gründen der SSH-Sicherheit empfiehlt es sich, Schlüsselpaare über die EC2-Konsole oder ein Drittanbieter-Tool zu erstellen.

6.    Wählen Sie Aktionen, Instance-Einstellungen und dann Benutzerdaten anzeigen/ändern.

7.    Kopieren Sie das folgende Beispielskript und fügen Sie es in das Feld Benutzerdaten ein. Geben Sie als Benutzername den Benutzernamen des neuen Benutzers ein. Geben Sie für ssh-rsa AB3nzExample Ihren öffentlichen Schlüssel ein:

#cloud-config
cloud_final_modules:
- [users-groups,always]
users:
  - name: username
    groups: [ wheel ]
    sudo:     
      - "ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart httpd"
      - "ALL=(ALL) NOPASSWD: /usr/bin/cp /home/username/webserver_configuration.conf /etc/httpd/conf.d/"
    shell: /bin/bash
    ssh-authorized-keys:
    - ssh-rsa AB3nzExample

Mit diesem Beispielskript kann der neue Benutzer nur die folgenden Root-Aktionen ausführen:

  • Kopieren Sie die Datei /home/username/webserver_configuration.conf nach /etc/httpd/conf.d/
  • Neustarten des Webserverdienstes

Um dem Benutzer vollen Zugriff auf EC2 zu gewähren, ersetzen Sie das Feld sudodurch sudo: [ "ALL=(ALL) NOPASSWD:ALL" ].

Hinweis: Standardmäßig werden cloud-init-Verzeichnisse nur ausgeführt, wenn eine Instance gestartet wird. Wenn Sie jedoch dieses Benutzerdatenskript verwenden, fügt cloud-init der Instance den öffentlichen Schlüssel jedes Mal hinzu, wenn die Instance neu gebootet oder neu gestartet wird. Wenn Sie das Benutzerdatenskript entfernen, wird die Standardfunktionalität wiederhergestellt.

8.    Wählen Sie Speichern aus.

9.    Wählen Sie Aktionen, dann Instance-Status und anschließend Start aus.

10.    Wenn die Instance den Status Läuft erreicht, melden Sie sich als neuer Benutzer an. Der neue Benutzer hat das gleiche Standardverhalten wie der ec2-Benutzer.

Hinweis: Das Ändern der Benutzerdaten einer Instance verwendet die ModifyInstanceAttribute-API-Aktion. Sie können eine AWS Identity and Access Management (IAM)-Richtlinie erstellen, um diese Aktion einzuschränken.


Verwandte Informationen

Anzeigen Ihres Schlüsselpaars

Wie füge ich meiner Amazon EC2 Linux-Instance neue Benutzerkonten mit SSH-Zugriff hinzu?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren