質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

Q&A

解決済

1回答

3683閲覧

コンテナ運用におけるSSH認証はどうすべきか

keisukesatomi

総合スコア87

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

0グッド

0クリップ

投稿2015/09/03 02:12

###経緯
DockerとCoreOSを使ってローカルマシン上でWebアプリケーションを構築中の者です。

現在以下3種類のコンテナを利用しています。

  • PHPコンテナ
  • Nginxコンテナ
  • MySQLコンテナ

問題

このうちPHPコンテナではdocker run時に独自のシェルスクリプトを走らせ、gitリポジトリからソースをcloneして開発しています。

ここで毎回リポジトリとのSSH認証が必要になるのですが、コンテナ起動の度に公開鍵を作成してリポジトリ側へ登録して、、、といったことが難しかったため、ホストマシンの認証情報をマウントして利用しています。具体的には以下のような感じで。

Docker

1docker run -v /root/.ssh:/root/.ssh:ro myphp:latest /root/start.sh

今はローカルだからよいのですが、これがサービス環境へ移行していくときに、SSH認証系の情報をどのように共有すべきか、いい方法がありましたらご教授頂きたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

サービス環境とは、実際にサービスを運用するいわゆる本番系のことでしょうか?
サービス環境としてDockerのホスティングサービスを採用する場合は話が違ってきますが、仮にEC2などroot権限が握れる仮想マシンサービスを利用する場合は、ローカル環境と同等の環境を構築できるのではないでしょうか?

仮にdockerを使わなかったとしましょう。そのホストからgithubにアクセスするために、ホストでキー作成し、githubに登録するはずです。今回の場合は、そのホスト上のコンテナからもキーを参照できるようにしている、という話です。どちらにしろサービスが動く環境からgithubにアクセスできるキーが必要なので、ローカル環境同様の設定で十分ではないでしょうか?

ただ、気をつけてほしい事があります。サービス運用時にやってはならない事の1つは、開発時に使っている秘密鍵を運用環境にコピーしてしまうことでしょう。仮にその運用環境が乗っ取られた場合、開発時に使っている秘密鍵でアクセス可能なサイト全てに何らかの操作が行えてしまうのが問題です。

逆にDockerfileでキー作成と公開鍵の登録も含めてしまう考えもあるかもしれません。しかし、そうすると今度はGitHubなどのサービスを利用できるキーが増えてしまうので、それはそれでアカウントを乗っ取る口を増やしてしまうことになります。

サービス運用開始時に気をつけることの1つに最低限のものを利用可能にする、という考えがありますが、ここで述べたのはそういうことです。期待されていた回答と違っていたらごめんなさい。

投稿2015/09/03 03:26

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

keisukesatomi

2015/09/03 03:46

ご回答ありがとうございます! はい、サービス環境とは本番環境の意味でした。 root権限が握れるなら確かに今と同じ手法でできそうです。 そして説明不足ですみません。 自分が知りたかったのは、「この運用方法はセキュリティ観点でOKなのか?」ということでした。 提案して頂いた「Dockerfileにキー情報を含める」は、確かに危なそうですね。 その「最低限のものを利用可能にする」という考えに則れば、これも無難な方法なのですかね。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問