2017-05-25 7 views
0

ruby​​ on railsアプリケーションのdatabase.ymlファイルに表示されるデータベースのパスワードを暗号化する方法を探しています。 ?このような 何か:あなたはあなたが暗号化された秘密を追加するためにhttps://github.com/Shopify/ejsonを使用することができますルビーのテキストファイルのパスワードを暗号化する方法を探している

+0

Railsアプリケーションがベストプラクティスに従っていて、ファイルを静的ファイルとして扱うことができず、サーバーが安全である場合は、暗号化する必要はありません。ある時点でシステムの管理とセキュリティを信頼する必要があります。それ以外の場合は、考えられるすべての問題を処理しようとしているウサギの穴に落ちます。 –

答えて

2

あなたはEnvironment variables

development: 
    adapter: sqlserver 
    mode: dblib 
    database: db name 
    host: host 
    port: xxxx 
    username: <%= ENV['DATABASE_USERNAME'] %> 
    password: <%= ENV['DATABASE_PASS'] %> 

を使用することができ、良い宝石dotenvありますあなたのアプリ。公開鍵/秘密鍵のペアを使用して、デプロイメント環境だけが秘密鍵を読み取れるように秘密鍵を暗号化できるようにします。

鍵を生成したら、平文の文字列にsecrets.production.ejsonファイルを置き、ejson encrypt <path/to/secrets.production.ejson>を実行すると、暗号化されていない値が暗号化されます。結果を安全にソース管理に追加することができます。

ejsonファイルを読み込み、その内容をENVで利用可能にし、YAMLファイルでkey: <%= ENV['...'] %>を使用して解読された値を読み取ることができます。

+0

どのようにですか?あなたは私をトゥルーリアルにリンクできますか? –

+0

は 'erb'形式でなければなりませんか? '<%= ... %> '? –

+0

はい、私はルビーコードの中でそれを暗号化しようとしています –

0

ENV変数の多くを管理する必要がある場合

development: 
    adapter: sqlserver 
    mode: dblib 
    database: db name 
    host: host 
    port: xxxx 
    username: teste 
    password: encryptedpass 
関連する問題