Amazon Web Services EC2到RDS与VPC的连接

时间:2014-07-08 15:52:27

标签: amazon-ec2 amazon-rds amazon-vpc

我一直在尝试使用EC2实例和运行MySQL的RDS数据库来设置AWS Free Tier帐户。不幸的是,我无法弄清楚如何从EC2实例授予对数据库的访问权限。我已经阅读了所有AWS文档,但遗憾的是,StackOverflow上发布的所有问题都已过时。所有文档都说明我应该转到RDS仪表板的安全组部分。但是,当我这样做时,这就是我所面对的。

enter image description here

**我会包含图片,但我没有它的名声。

好的,我知道我没有使用EC2-Classic平台,我必须对EC2仪表板中的安全组进行这些更改,但是如何?!我不希望公共访问端口3306,我只希望EC2实例能够与私有子网上的RDS数据库通信。任何帮助将不胜感激。

“支持的平台上的AWS文档”和“在VPC中使用RDS”的链接没有帮助。它们已经过时,并且还会继续将我引回RDS仪表板下的安全组,然后只显示此消息。

1 个答案:

答案 0 :(得分:16)

经验法则:在VPC中设置资源时,请使用仅限VPC安全组。个人RDS,Redshift ......等。安全组只在ec2-classic的情况下工作。这意味着,当你没有在VPC中设置东西时。

转到VPC控制台,然后在左侧菜单中找到安全组。这些安全组应该控制对VPC内部署的AWS资源的访问。

我无法详细说明,因为我不知道您的VPC配置以及您正在设置这些配置的子网(公共/私人)。

实施例

以下是假设情景......

VPC: 10.0.0.0/16
1 public subnet: 10.0.0.0/24
1 Private Subnet: 10.0.1.0/24
  • 假设您将EC2实例放入公共子网
  • 假设您将RDS实例放入私有子网
  • 并且您希望EC2实例可以从世界上的80,443访问,而RDS实例只能通过EC2实例访问。

因此,这些是安全组设置:

EC2实例安全组的

Inbound: port 80, 443 : from 0.0.0.0/0
Outbound: port 3306 : to 10.0.1.0/24

对于RDS安全组:

Inbound: port 3306: from 10.0.0.0/24

说明

Inbound: port 80, 443 : from 0.0.0.0/0

这将允许从Internet上的端口80和443访问EC2实例。


Outbound: port 3306 : to 10.0.1.0/24

这允许EC2实例仅将端口3306上的流量发送到私有子网10.0.1.0/24


Inbound: port 3306: from 10.0.0.0/24

这允许RDS实例从公共子网10.0.0.0/24接受端口3306上的流量。您的EC2实例位于公有子网中,因此RDS将接受来自端口3306上的Ec2实例的流量

注意:以上设置假设您已相应地为公共/私有子网设置了路由表。

希望这有帮助。