2017-12-29 20 views
0

私はubuntuイメージからドッカーコンテナを作成しました。他のユーザーはdocker exec -it CONTAINER_ID bashでこのコンテナに接続できます。このコマンドにユーザー名とパスワードを追加する方法はありますか?私は自分のコンテナに他のユーザーがアクセスしたくないのです。ユーザーがdocker execコマンドを実行してコンテナに添付すると、ユーザー名とパスワードを尋ねるプロンプトが表示されます。ユーザは、正しいユーザ名とパスワードを入力した後でしかそれにアタッチできません。ちょうどsshと同じように。`docker exec`コマンドの資格情報を追加するには

+0

あなたは正確に何をしようとしていますか? –

+0

申し訳ありませんが私は明確にしていません。私は自分の投稿を更新したし、 'docker exec'コマンドがユーザ名とパスワードを要求するようにしたい。 'ssh'や' telnet'コマンドと同じです。 –

+0

Docker execはSSHと非常に異なっています。シェルを開いていないので、文字通り任意のプロセスを実行しています。他のユーザーが最初にコンテナに触れるようにしてはいけないように思えます。 –

答えて

1

(ドッカーのコマンドラインで使用される)ドッカーソケットへのアクセスは、そのホストで実行されているホストとすべてのコンテナに対するsysadminレベルのアクセスとして扱われます。

TLSクレデンシャルとクライアント証明書の検証を使用して、ポートでリッスンするようにドッカーデーモンを設定できます。ただし、ユーザーが任意のドッカーAPI呼び出しにアクセスすると、ログインプロンプトが表示されずにアクセスできます。

dockerのauthzプラグインを実装したTwistlockが提供するサードパーティのプラグインを試すことができます。これにより、特定のTLSクライアント証明書へのexec呼び出しへのアクセスを制限できます。ただし、どのコンテナにアクセスできるかは制限されません。

おそらくあなたが望むものに最も近いものは、DockerのEE製品、特にUCPにあります。これは商用ツールですが、Webベースのリクエストを使用するユーザー/パスワードのオプションや、execといった特定のユーザーや特定のコレクションへのアクセスを制限するRBACセキュリティなど、独自の認証を実行するさまざまなAPIエントリポイントを提供しますコンテナ。

これをコンテナ側から実行する場合は、うまくいかないことがあります。 Execは、コンテナのネームスペースの中に直接Linuxのexecシステムとして実行されるので、その種のアクセスを防ぐためにできるコンテナの中には何もありません。最良の選択肢は、コンテナ内で誰かが実行できないようにするコマンドをイメージから削除することです。

関連する問題