The Beginning Of The End

そこはかとなく技術的なことを

coreosで、Docker Remote APIを有効にした際のセキュリティについて

remoteからdockerのimageを起動できるのは便利!

ただ、有効にしてしまうとIPアドレスとport番号がバレたら誰でもバンバンimageを起動できてしまいます。。。
それはやっぱり困るので、自分以外のアクセスは制限したい

どうするか

ぱっと思いついたのは、iptablesで特定のIPからのみ接続を受け入れるようにする
ただ、自宅はDHCPなので、いろいろと面倒そうと思い調べていたら、TLS!! 本家のサイトでは、ここらへんに書かれている。
参考にしたのは、このサイト

terraformの設定を変更して試しに接続

  • TLS用に設定を変更
 provider "docker" {
-    host = "tcp://153.126.155.210:2375/"
+    host = "tcp://153.126.155.210:2376/"
+    cert_path  = "/Users/t-shuichi/Dropbox/Public/docker_tls"
 }
  • 変更後の設定ファイル

gist.github.com

  • ついでにアカウントとパスワードの部分を環境変数に変更
 # Configure the Docker provider
+variable "user" {}
+variable "passwd" {}

-    env  = ["USER=ユーザ名", "PASSWORD=パスワード"]
+    env  = ["USER=${var.user}", "PASSWORD=${var.passwd}"]
# こんな感じで、起動時に指定するようにしました
$ terraform apply -var 'user=ユーザ名' -var 'passwd=パスワード'