2017-12-29 6 views
0

Ich habe einen Docker Container von ubuntu Bild erstellt. Andere Benutzer können diesen Container unter docker exec -it CONTAINER_ID bash anhängen. Gibt es eine Möglichkeit, Benutzernamen und Passwort für diesen Befehl hinzuzufügen? Ich möchte nicht, dass andere Benutzer auf meinen Container zugreifen. Ich möchte, wenn Benutzer docker exec Befehl ausführen, um an meinen Container anfügen, fordert es auf, einen Benutzernamen und ein Passwort zu stellen. Benutzer können nur nach der Eingabe einen korrekten Benutzernamen und ein Passwort anhängen. Genau wie das, was SSH macht.Wie Anmeldeinformationen für `Docker exec` Befehl hinzufügen

+0

Was genau versuchen Sie zu tun? –

+0

Sorry, ich habe es nicht klar gemacht. Ich habe meinen Beitrag aktualisiert und möchte mit dem 'docker exec' Befehl einen Benutzernamen und ein Passwort eingeben. Genau wie 'ssh' oder' telnet' Befehl. –

+0

Docker exec unterscheidet sich sehr von SSH - Sie öffnen keine Shell, Sie führen buchstäblich nur einen willkürlichen Prozess aus. Es hört sich so an, als ob Sie nicht zulassen sollten, dass andere Benutzer Ihren Container anfassen. –

Antwort

1

Der Zugriff auf den Docker-Socket (der von der Befehlszeile des Docker verwendet wird) sollte als Zugriff auf dem Host und allen auf diesem Host ausgeführten Containern behandelt werden.

Sie können den Andockdämon so konfigurieren, dass er auf einem Port mit TLS-Anmeldeinformationen und der Überprüfung von Clientzertifikaten wartet. Sobald ein Benutzer jedoch Zugriff auf alle Docker-API-Aufrufe hat, hat er Zugriff auf alle und ohne Anmeldeaufforderungen.

Sie könnten ein von Twistlock bereitgestelltes Plugin von Drittanbietern ausprobieren, das das authz-Plugin für docker implementiert. Dadurch können Sie den Zugriff auf den exec-Aufruf für bestimmte TLS-Clientzertifikate beschränken. Es wird jedoch nicht begrenzt, in welche Container sie ausgeführt werden können.

Wahrscheinlich am ehesten, was Sie wollen, kommt mit Docker EE Angebot, insbesondere UCP. Es ist ein kommerzielles Tool, aber sie bieten einen anderen API-Einstiegspunkt, der eine eigene Authentifizierung durchführt, einschließlich der Option für einen Benutzer/Passwort mit webbasierten Anfragen und RBAC-Sicherheit, mit der Sie den Zugriff auf Anrufe wie exec auf bestimmte Benutzer und bestimmte Sammlungen beschränken können Behälter.

Wenn Sie dies von der Containerseite aus tun wollten, befürchte ich, dass das nicht funktioniert. Exec wird als Linux-Exec-Syscall direkt im Container-Namespace ausgeführt. Es gibt also im Container keine Möglichkeit, diese Art von Zugriff zu verhindern. Die beste Option besteht darin, alle Befehle aus Ihrem Image zu entfernen, die nicht in dem Container ausgeführt werden dürfen.