2016-09-17 14 views
0

私はRailsアプリケーションを作成しており、秘密鍵を伴うセキュリティを理解しようとしています。セキュリティと秘密鍵の理解

私のプロジェクトでは、Rails 5とDevise gemを使用しています。

いくつかの場所では、セキュリティ上の理由からセキュリティ上の理由から、secrets.ymlなどのファイルをgithubに入れたくないと読んでいました。しかし、私の秘密鍵は環境変数です(私の開発と鍵はそうではありませんが、それらは見えます)。

私が今調べてみたいことは、秘密のようなファイル(私はdatabase.ymlについてもいくつか聞いたことがあります)が、githubで終わったということです。 (秘密鍵のような)環境変数は、幸いなことにRailsはデフォルトで考えていたようです。または、これらのファイルを削除する作業を行う必要がありますか?

答えて

0

機密情報を(環境変数に置き換えることによって)削除すると、ファイルをコミットできます。それだけではないsecrets.yml。どの暗号化キー、APIキー、資格情報もGitにコミットするべきではありません。

この情報を既にGitにプッシュしている場合は、Rebaseを実行して削除できますが、すべてのコピーが削除されるとは限りません。秘密を変える方が良いでしょう。

これは、環境変数を使用して環境内の既存の値を設定し、次に特定の時点で秘密の新しい値を生成し、環境変数を変更することを意味します。

秘密情報を変更すると、既存のユーザーセッションが無効になるため、ユーザーにあらかじめ通知し、ユーザーがサイトを使用している時間が最短になるようにするのが最適です。

秘密の値を変更するまで、あなたのサイトは脆弱です。

+0

私が別のコメントで述べたように、私の秘密のファイル(と私は他の重要なファイルも信じています)は、このコメントの最後にリストしたようなものです。あなたの答えからわかるように、私は安全でなければならないと思われます。secret_key_baseのプロダクトが環境変数である限り、secrets.ymlのような情報をプッシュするのが一般的です。これが私の秘密です。ymlのように見える>>>開発:secret_key_base:abc123youcanseethiskeyテスト:secret_key_base:123456ghgyoucanseethiskeyプロダクション:secret_key_base:<%= ENV ["SECRET_KEY_BASE"]%> – mc92

+0

実際のプロダクションシークレットは含まれていません。開発キーとテストキーは機密情報ではありません。そのファイルについて心配する必要はなく、Gitにチェックインされることを意図しています。 –

0

を「私は今把握しようとしています何が、それはそれは大丈夫secrets.ymlのようなファイルが(私も同様database.ymlのについていくつかのことを聞いた)、githubの上で終わっているということです」あなたのGithubリポジトリに個人情報や機密情報を絶対に伝えないでください。

ファイル名は関係ありません。それが機密情報を持っている場合は、リモートのRepoにプッシュしないでください。

+0

すでにプッシュされていますが、いくつかのコミットを経てそこに移動した後に削除する必要があるかどうかを確認する必要があります。それ(secrets.yml)は、本質的に次のようになります。 開発: secret_key_base:abc123youcanseethiskey テスト: secret_key_base:123456ghgyoucanseethiskey 生産: secret_key_base:<%= ENV [ "SECRET_KEY_BASE"]%>私は何 この特定の方法が十分に安全であるかどうかは、あなたの答えが私にはっきりとしていないかどうかです。 – mc92

+0

あなたがすでにそれをコミットしているなら、私は自分の鍵をできるだけ早く変更するでしょう。リベースすることもできますが、あなたの鍵はすでに掻き取られている可能性があります。 – hetre85