2016-12-04 15 views
2

JockkinsがDockerイメージ自体を構築できるようにDockerコンテナ内で動作するJenkinsの設定については、this articleを読んでいました。このソリューションは機能しますが、著者によって指摘されているようなセキュリティ上の問題もあります。Dockerコンテナ内で実行されるJenkinsでDockerイメージを構築する

主なセキュリティ問題は、JenkinsがJockkinsコンテナ内にDockerソケットのマウントを必要とするDockerコマンドを実行する必要があることにあります(JenkinsはDockerコマンドを実行できるようにsudoが必要です)。したがって、Jenkins Webインターフェイスにアクセスできるユーザーは、ホストシステムへの完全なアクセス権を持つ任意のコマンドを(ドッカーコンテナを使用して)実行できます。

したがって、私は誰かがこの設定をより安全にするいくつかのアイデアを持っているのだろうかと思っています。 JenkinsがDockerコマンド(sudoを使用)を実行して新しいイメージを構築してJenkinsユーザーを起動できるようにする必要があるため、Dockerコンテナ内のJenkinsを実行しないでください任意のコンテナ。ファイアウォールを使用すると、JenkinsのIPアドレスを制限することができますが、セキュリティリスクを軽減するための他の解決策があることを期待していました。

編集 ジェンキンスは、(新しく作成された)コンテナを同じマシンでも開始できることを忘れていました。

答えて

0

DockerリモートAPIは、作成、リスティング、検査などのイメージを処理するためにさまざまなエンドポイントを公開します。https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/imagesを参照してください。

ビルドステップとしてエンドポイントhttps://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/create-an-imageを呼び出すと、Dockerfileからイメージを構築するのに役立ちます。

+0

に従ってください – Koningh

0

あなたはこのような人物だと思います。

イメージを実行している間にドッカー靴をマウントできます。 -v /var/run/docker.sock:/var/run/docker.sock -v $(ドッキング・ステーション):/ usr/bin/docker jenkinsコンテナ内のドッカーにアクセスできます。

私は、このアプローチは、コンテナを作成するために、ジェンキンスを可能にし、その後、このようなボリュームのマウントなどなど、様々なパラメータを同じホストマシン上のイメージを実行するかどうかわからない、下のリンク http://container-solutions.com/running-docker-in-jenkins-in-docker/

関連する問題