おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

Travis CI から heroku にデプロイするのってセキュリティ的に問題ないのか調べた

Travis CI べんりですね。「テストが通ったらherokuにデプロイする」ということもできるようなのでやってみました。すでに Travis CI の基本の設定は済んでいる前提です。

gem i travis # travis gem を入れていなかったら
cd YOUR_APP_PATH
travis setup heroku

とすると、アプリケーションルートにある.travis.yml に必要な設定を追記してくれます。これをコミットしてプッシュするだけ。とても簡単でした。

でも少し気になることがありました。

疑問1

ここでは heroku のトークンを暗号化したものを.travis.ymlに記述しているようです。github に公開して、別の誰かにトークンを複合されたりしないでしょうか?

回答1

公開鍵で暗号化されていて、秘密鍵はtravisが保持しているのでとりあえず大丈夫そう。

疑問2

元のトークンに戻せなさそうなのはわかった。でも第三者がこの暗号化したトークンを Travis CI に渡したら、僕の heroku アプリに勝手にデプロイできるのでは?

回答2

リポジトリごとに公開鍵/秘密鍵のペアが存在しているので、同じキーを使って別のリポジトリからデプロイはできません。つまり自分のリポジトリへの書き込み権限がなければ大丈夫。

ちなみに公開鍵は https://api.travis-ci.org/repos/willnet/gimei/key のような URL で確認できます。

まとめ

考えてみれば当たり前だし、Travis CI ほどのサービスがそんなこと考えてないはずがないんだけど、ちょっと心配になって調べたので書きました。

参考

Travis CI: Heroku Deployment