通过.net SDK连接到AWS RDS

时间:2014-10-07 16:42:18

标签: c# wpf amazon-web-services amazon-rds

我确信这是在那里,但似乎无法找到它。目前我在.net(WPF C#)中有一个应用程序连接到这样的MS SQL;

string ConString = "Data Source=myDNS,1433;Initial Catalog=myDataBase;User Id=sa;Password=amazingpassword;";
string sqlCMD = "select * from myTable"
DataTable dt = new DataTable();
using (SqlConnection con = new SqlConnection(ConString))
{
   SqlCommand cmd = new SqlCommand(sqlCMD, con);
   SqlDataAdapter da = new SqlDataAdapter();
try
{
    con.Open();
    cmd = new SqlCommand(sqlCMD, con);
    da.SelectCommand = cmd;
    da.Fill(dt);
    con.Close();
}
catch (Exception x)
{
    /// <summary>
    /// Amazing error code
    /// </summary>
}
finally
{
    cmd.Dispose();
    con.Close();
}
}

考虑将数据库托管移动到Amazon RDS。我希望数据库是私有的,因此只能通过应用程序进行连接。是否有一个直接连接到RDS数据库而不将数据库暴露给互联网的示例?我也不想在客户端上建立VPN连接。我希望所有需要改变的是实际连接,并且不需要对sqlCMD进行任何更改。

1 个答案:

答案 0 :(得分:2)

  

是否存在直接连接到RDS数据库而不将数据库暴露给互联网的示例?

不,因为它不可能。 RDS数据库本质上只是一个坐在互联网上的服务器。但话说回来,您当然可以通过这样的方式进行设置,使数据库受到保护,并且只能从您的应用程序中安全访问。

创建RDS实例时,您需要为该实例创建关联的安全组。 RDS security group包含一个或多个CIDR/IP现有EC2安全组的定义和/或名称。只有属于您定义的IP地址范围或EC2安全组的主机才能访问RDS实例。将RDS安全组视为允许/阻止访问数据库的防火墙。您可以轻松锁定RDS实例,以便只有您运行应用程序的服务器才能访问它。

我不熟悉.net,但您还应该做的另一件事是确保您通过加密(SSL)连接连接到数据库。使用SSL和限制对RDS实例的访问的安全组的组合应该为您提供足够的安全性。