2010-11-29 14 views
0

、私はここに私の質問をすると、誰もが何か提案/勧告を持っているかどうかを確認しますので、このテーマに何か良いリソースを見つけることができませんでした。アクティブレコード(Railsの)MySQLのセキュア接続今

すぐにRuby on Railsアプリケーション(アクティブレコードORM)を配備し、データベース(MySQLまたはPostgreSQL)は外部の場所(127.0.0.1の範囲外)に配置されます。

外部のMySQLデータベースに接続するには、/etc/mysql/my.confのアドレスをバインド解除し、外部の場所から接続するユーザーを追加するだけです。しかし、データはアプリケーションサーバーからMySQLサーバーに転送されているので、これはどのように安全ですか?

何らかの暗号化を行う必要がありますか? Active Recordは、転送中にデータがハイジャックされるのを防ぐために何かをバックグラウンドで実行しますか?または、外部の場所でデータベースを操作する場合、MySQLおよび/またはPostgreSQLでデフォルトで十分な安全性が確保されていますか?

私は、MySQLまたはPostgreSQLデータベースがローカルホストの範囲ではなく、外部の場所にある場合、何かがありますか(余分に)ですか?でしょうか?

任意の提案、ポインタ、お薦めやリソースがはるかに高く評価されるだろう!

ありがとうございます!

+0

この質問によく答えるには、展開先のホスティングベンダーの名前/タイプを教えてください。 – Brian

+0

どちらもAmazon EC2上で、異なるインスタンスのみ。 –

答えて

2

それは強く、アプリケーションサーバとデータベースサーバが接続されている方法によって異なります。

トラフィックが野生でルーティングされた場合(つまり、あなたがあなたのサーバーを接続する仮想プライベートネットワークを持っていけない)、あなたはRailsのアプリとMySQLの間のSSL接続を設定することができます

  • MySQLは、セキュアサポートしています( Secure Sockets Layer(SSL)プロトコルを使用してMySQLクライアントとサーバ間の接続を暗号化します。 Reference
  • ActiveRecordのは、SSLセキュリティ(database.yml:sslkeyなど)のためのオプションがあります。 Reference

低特権ユーザーのために特定のIPからMySQLへの外部接続を制限しても適用されます。

+0

ありがとう!これは間違いなく私を始めさせるでしょう。 :) –

+1

私はあなたが "仮想プライベートネットワーク"とは何を意味するのか分かりません。アプリケーションサーバーとデータベースサーバーは、別々のAmazon EC2インスタンスに展開されます。あなたは「安全な」ネットワーク内でこれを検討するか、この場合にSSLを使用することを推奨しますか? –

1

SSLを介して実行するオプションだけでなく、特定のIPアドレスからの接続のみを受け入れるようにデータベースサーバーをロックすることもできます。

パフォーマンスに影響を与える可能性があるため、接続が完全に信頼できない場合は、通常SSLを実行します。

+0

ありがとうございます。問題は私がEC2でこれを実行しているので、私はこれを行うためのIPアドレスを持っていないと信じています。パブリックDNSホストだけで、それは当てはまりません。または私は間違っていますか? (したがって、私はSSLが有効な選択肢であると信じています。アプリケーションはトラフィックがあまり高くありません)。 –

+0

FYI、EC2およびRDSは、IPアドレス:ポートとセキュリティグループの両方に基づいて構成可能なアクセス制限を提供します。 –