Dockerコンテナの内部へのアクセスを禁止するにはどうすればよいですか?


14

Dockerイメージの形式で顧客にアプリを配信したい。ただし、エンドユーザーがコンテナ内の何かを変更しないようにすることが重要です。ユーザーは、コンテナを実行/停止し、ネットワーク経由でコンテナとやり取りすることのみが可能です。

コンテナの内部へのアクセスを禁止することは可能ですか?コンテナが作成したイメージの整合性を検証することは可能ですか?


2
Dockerホストを管理しない限り、できないと思います。このアクセスを防ぐことで解決できる問題は何ですか?
テンシバイ

Tensibaiが述べているように、それは依存します。コンテナがセキュリティ上の理由で変更されていないことを知る必要がある場合は、基本的に独自のサーバーで実行する必要があります。人々が物事を壊さないように修正することを思いとどまらせたいだけなら、おそらくそれを行う方法があるでしょう。ユースケースの説明がここで役立ちます。
-Aurora0001

回答:


11

つまり、顧客が自身のインフラストラクチャで実行するコンテナを変更できないようにすることはできません。コンテナは、難読化できるバイナリのようなものではありません。これらはランタイム環境です。ただし、コンテナ内で配布するコードは難読化できます。

あなたの質問は、サードパーティのサポートの問題を暗示しています:クライアントは自分の環境で実行するソフトウェアを変更します。提供するコンテナを操作するツール(監視やログなど)を提供する場合、クライアントは(ソフトウェアライセンスの一部として)不正な変更を行わないことに同意する必要があります。これは、コンテナだけでなく、あらゆる種類のサードパーティソフトウェアに適用されます。

状況に応じて、クラウドインフラストラクチャで実行されるSoftware As A Service(SaaS)としてアプリを提供するオプションもあります。

クライアントがコンテナをインフラストラクチャ上で実行することを要求し、変更制限に従うことを拒否する場合、おそらくソフトウェアの使用をサポートしようとは思わないでしょう。


6

Dockerは、コンテナーへのユーザーアクセスを妨げる手段を提供しませんが、イメージ開発者として、いくつかの戦略に従うことができます

  • ソフトウェアを難読化する(Ruby、Pythonなど)
  • シェルを持たないベースイメージと、ユーザーがイメージを改ざんするために使用できるその他のバイナリからイメージを構築します。

もちろん、彼らはいつでもコンテナをエクスポートして再パッケージ化できますが、それらは極端な手段です...


コードを難読化する例としてRubyとPythonが提供されているのはなぜですか?これらの言語のコードは、通常、実行中のOS上でクリアテキストソースファイルとして保持されます。C ++、C#、Javaなどのコンパイルされた言語、またはJSのように「縮小」できる言語を使用することは好ましくないでしょうか。
-AjaxLeung

5

Dockerグループからユーザーを削除し、docker startおよびのsudoを作成できますdocker stop


3
のみ可能/効果的なあなたは、これらのサーバーを所有している場合...
ダンCornilescu

5

クライアントがお金を投資する準備ができている場合は、Dockerエンタープライズ版を使用する必要があります。Docker EEには、UCP(Universal Control Plane) UCPというツールが1つあります。UCPを使用すると、ロールとアクセス権を作成し、コンテナを変更/変更するユーザーを制限できます。

DDC(Docker Data Center)よりもUCPをテストしたい場合は、1か月の試用ライセンスが必要です。これにより、要件に応じて詳細を説明できます。

これが役立つことを願っています!

ありがとうございました!


1
Dockerグループに関するソリューションとして、これは、Dockerホストシステムのみを管理する場合に機能します
。OPは

2

ansibleスクリプトを使用して配信を行います。あらゆる種類の制限とチェックをansibleスクリプトに保持します。


2
これにより、コンテナへのアクセスがどのように防止されますか?あなたの提案が実際にOPの問題をどのように解決するかを説明してみてください。
マイケルルバルビエグリューネ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.