2010-11-29 87 views
0

現在,我一直沒有找到任何有關此主題的優秀資源,所以我會在這裏問我的問題,看看有沒有人有任何建議/建議。我將很快部署一個Ruby on Rails應用程序(Active Record ORM),而我的數據庫(MySQL或PostgreSQL)將位於外部位置(127.0.0.1範圍之外)。Active Record(Rails)MySQL安全連接

我能夠連接到外部MySQL數據庫,只需解除/etc/mysql/my.conf中的地址並添加一個從外部位置進行連接的用戶即可。但是,由於數據正在從我的應用程序服務器傳輸到我的MySQL服務器,因此這個安全性如何?

我需要做某種形式的加密嗎? Active Record是否會在後臺執行任何操作來保護數據在傳輸過程中不被劫持(或任何您稱之爲)?或者,在外部位置使用數據庫時,默認情況下,我的數據是否足夠安全地使用MySQL和/或PostgreSQL?

簡而言之:當我的MySQL或PostgreSQL數據庫位於外部位置而不是當它位於本地主機範圍內時,是否有任何(額外)我應該

任何建議,指針,建議和資源將不勝感激!

謝謝!

+0

爲了更好地回答這個問題,您可以請分享您希望部署到的託管供應商的名稱/類型嗎? – Brian 2010-11-29 23:44:13

+0

在Amazon EC2上,只有不同的實例。 – 2010-11-30 00:09:58

回答

2

它很大程度上取決於應用程序服務器和數據庫服務器的連接方式。

如果流量在野生路由(即你沒有一個虛擬專用網絡連接您的服務器),你可以設置你的Rails應用程序和MySQL之間的SSL連接:

  • MySQL支持安全(使用安全套接字層(SSL)協議在MySQL客戶端和服務器之間建立加密連接。 Reference
  • ActiveRecord有SSL安全選項(:sslkey和其他database.yml)。 Reference

對於低特權用戶,限制與給定IP的MySQL的外部連接仍然適用。

+0

謝謝!這一定會讓我開始。 :) – 2010-11-29 23:59:07

1

除了查看通過SSL運行的選項,您還可以鎖定數據庫服務器以僅接受來自特定IP地址的連接。

我通常只運行SSL,如果連接完全不受信任,因爲它可能會有一些性能影響。