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" }
- 変更後の設定ファイル
- ついでにアカウントとパスワードの部分を環境変数に変更
# Configure the Docker provider +variable "user" {} +variable "passwd" {} - env = ["USER=ユーザ名", "PASSWORD=パスワード"] + env = ["USER=${var.user}", "PASSWORD=${var.passwd}"]
# こんな感じで、起動時に指定するようにしました $ terraform apply -var 'user=ユーザ名' -var 'passwd=パスワード'