2017-02-17 4 views
0

私は2台のコンピュータを持ち、1台はfedoraを使用しています。このコマンドをfedoraで使用する場合:ホストのファイルシステムを書き込むためにドッカーのコンテナを拒否する

docker run -ti -v /tmp/test:/host/tmp/test ubuntu /bin/bash 

ホストからファイルを読み書きできません。 これは私が望むふるまいですです。

問題は次のとおりです。同じコマンドを使用するとubuntuで。コンテナは、ホスト上のすべてのファイルを読み書きできます。私はこれを望んでいない。

私はFedoraでSELINUXが私のシステムを保護していると思います。 AppArmorでどうすればいいですか?

私は、インターネット上の多くの研究をしましたが、私は唯一のホストのファイルシステムへの書き込みを許可する方法についてのトピックを見つけました... /:事前に

感謝。

よろしく、

EDIT

コンピュータは、私は、ユーザーがドッキングウィンドウの実行を実行する方法を制御することはできませんので、自由にアクセスされています。私はホストとapparmorデーモンからの保護が必要です。

+1

あなたがシステムをファイルに書き込みを拒否しますAppArmorのプロファイルを持っていますか?もしそうなら、[this:](https://docs.docker.com/engine/security/apparmor/) 'docker run --rm -it --security-opt apparmor = your_profile hello-world'を使用することができます – jrbeverly

+0

他にも、この[プロジェクト](https://github.com/jessfraz/bane)が役に立つかもしれません。具体的には、ファイルアクセスと特定のコマンドツールを拒否するための[this](https://github.com/jessfraz/bane/blob/master/docker-nginx-sample)apparmorプロファイル – jrbeverly

+0

私はそれを忘れてしまいました。しかし、これらのコンピュータはオープンなので、ユーザーがドッカーを実行する方法を制御することはできません –

答えて

1

1つのオプションは、バインドは読み取り専用としてマウントマークすることです:

docker run -ti -v /tmp/test:/host/tmp/test:ro ubuntu /bin/bash 
+1

これはまた、他のDocker環境(selinux/apparmorは特定のセットアップでは利用できないかもしれません)に移植可能であるという利点があります。 –

+0

または...コンテナプロセスをルートとして実行せず、従来の方法でホスト上のアクセスを制御します。ルートアクセスで適切に動作するようにコンテナに依存することは面倒です。 – user2105103

+1

読み取り専用バインドマウントはコンテナの機能ではなく、カーネルの機能です。つまり、本当に安全なシステムの場合は、3つすべてを実行します。1.読み取り専用でマウントします。2.非rootとしてコンテナを実行し、ファイルのアクセス権でアクセスを拒否します。*および* 3. SELinux/AppArmorを使用します。不正な行為を防止する。 – mwp

関連する問題