我一直在尝试使用EC2实例和运行MySQL的RDS数据库来设置AWS Free Tier帐户。不幸的是,我无法弄清楚如何从EC2实例授予对数据库的访问权限。我已经阅读了所有AWS文档,但遗憾的是,StackOverflow上发布的所有问题都已过时。所有文档都说明我应该转到RDS仪表板的安全组部分。但是,当我这样做时,这就是我所面对的。
**我会包含图片,但我没有它的名声。
好的,我知道我没有使用EC2-Classic平台,我必须对EC2仪表板中的安全组进行这些更改,但是如何?!我不希望公共访问端口3306,我只希望EC2实例能够与私有子网上的RDS数据库通信。任何帮助将不胜感激。
“支持的平台上的AWS文档”和“在VPC中使用RDS”的链接没有帮助。它们已经过时,并且还会继续将我引回RDS仪表板下的安全组,然后只显示此消息。
答案 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实例安全组的:
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实例的流量
注意:以上设置假设您已相应地为公共/私有子网设置了路由表。
希望这有帮助。