我一直在尝试使用EC2实例和运行MySQL的RDS数据库设置一个AWS Free Tier帐户。不幸的是,我无法弄清楚如何从EC2实例授予对数据库的访问权限。我已经阅读了所有的AWS文档,但是不幸的是,它与StackOverflow上发布的所有问题都已经过时了。所有文档都指出,我应该转到RDS仪表板的“安全组”部分。但是,当我这样做时,这就是我所面临的。
**我会添加图片,但我没有它的声誉。
好的,我知道我没有使用EC2-Classic平台,并且必须对EC2仪表板中的安全组进行这些更改,但是如何?我不想对端口3306进行公共访问,我只希望EC2实例能够与专用子网上的RDS数据库进行通信。任何帮助将不胜感激。
指向“受支持平台上的AWS文档”和“在VPC中使用RDS”的链接没有帮助。它们已经过时,并且还会继续将我引回RDS仪表板下的安全组,然后仅向我显示此消息。
经验法则:在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实例的流量
注意:以上设置假定您已相应地为公用/专用子网设置了路由表。
希望这可以帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句