2017-07-11 11 views
2

私のオープンソースアプリケーションでは、AWSのパラメータストア機能を使用して、アプリケーションの秘密(データベースパスワードなど)の安全なコピーを保持しています。私のアプリがEC2にデプロイされると、スクリプトはこれらの秘密を取得してコードに利用できるようにし、この同じスクリプトをローカルで実行します。オープンソースリポジトリのTravis CIで安全な資格情報を取得することは安全ですか?

私のテストの中には、データベースアクセスが必要なものがあります。そのため、Travisビルドスクリプトにアクセスする必要があります。

私の(public)Travisビルドでそのスクリプトを実行するのは安全ですか?私が言うことができる限り、Travisはビルドアーチファクトをどこにも公開しません(私の秘密を持っていないGitHubのものを超えて)。 .travis.ymlファイルの設定項目を暗号化できますが、理想的にはこのデータが存在する場所が1つしかない場合は、複数の場所で設定キーを更新せずに回転できます。

これを行うには安全な方法がありますか?

答えて

1

プルリクエストを受け入れる場合、プルリクエストを作成してパブリックにダンプしてキーをTravisコンソールにダンプするのは簡単です。 PRが編集、編集などを行うことができる制限はありませんので、誰でも簡単にコード&を修正することができます。

トラビスはこのタイプの攻撃を防止するために、つまりPRに変数を公開しないことによってsecure environment variablesを構築しました。つまり、安全な環境変数を必要とするテストは暗号化された変数では実行できませんが、それはトレードオフです。

+0

偉大な点は、物事のPR側を完全に忘れてしまった。安全な環境変数で遊んでいきます。 –

関連する問題