AWS RDS MySQL如何将db访问限制为单个EC2实例

AWS RDS MySQL如何将db访问限制为单个EC2实例,mysql,amazon-web-services,amazon-ec2,rds,Mysql,Amazon Web Services,Amazon Ec2,Rds,我最近继承了一个AWS帐户的维护,并注意到db访问对任何网络、任何地方都是开放的!所以我决定它必须像我们用自己的虚拟机那样简单。除了Amazon之外,AWS EC2实例有一个内部IP和一个公共IP,有时还有一个弹性IP。所以我想,好吧,我会在谷歌上搜索,找到一个简单的快速编写程序,但似乎没有。所以,有人能提供一个简单的书面报告,在这里,关于如何做到这一点。我知道RDS的安全性有三种方法,等等。如果你没有时间或者不想涵盖这三个方面,请选择你喜欢的一个作为例子。如果我在一天左右的时间内没有得到很好的

我最近继承了一个AWS帐户的维护,并注意到db访问对任何网络、任何地方都是开放的!所以我决定它必须像我们用自己的虚拟机那样简单。除了Amazon之外,AWS EC2实例有一个内部IP和一个公共IP,有时还有一个弹性IP。所以我想,好吧,我会在谷歌上搜索,找到一个简单的快速编写程序,但似乎没有。所以,有人能提供一个简单的书面报告,在这里,关于如何做到这一点。我知道RDS的安全性有三种方法,等等。如果你没有时间或者不想涵盖这三个方面,请选择你喜欢的一个作为例子。如果我在一天左右的时间内没有得到很好的回复,我会点击文档,自己把它拼凑起来,提前谢谢你


嗯,我做了一些修补。这些文件不太具有启发性。我发现在一个分配了弹性IP的EC2实例上,我必须使用我应用于RDS MySQL数据库的安全组中允许的私有IP。已分配或未分配的弹性IP不会影响连接。在没有分配弹性IP的EC2实例上,我必须使用安全组中允许的公共IP。私有IP并不重要。这对我来说似乎有点奇怪。

亚马逊关系数据库服务(RDS)实例通常应该保持私有,以防止从Internet访问。只有在极少数情况下,才能在Internet上访问RDS实例

RDS实例可以通过几种方式进行安全保护:

1。在专用子网中启动它 虚拟私有云(VPC)可以配置公共和私有子网。在专用子网中启动RDS实例将阻止Internet访问。如果仍然需要通过Internet访问(例如访问您的公司网络),请在VPC和您的公司网络之间创建一个安全的VPN连接

2。使用安全组 安全组在每个EC2实例周围像防火墙一样运行。它们定义允许入站和出站访问的端口和IP地址范围。默认情况下,允许出站访问,但不允许入站访问

3。没有公共IP地址 如果RDS实例没有公共IP地址,则无法直接从Internet访问

4。网络访问控制列表 这些类似于安全组,但它们在子网级别上运行。有利于控制哪些应用层可以相互通信,但不利于保护特定EC2或RDS实例

因此,要公开访问RDS实例,它必须具备以下所有条件:

  • 公共IP地址
  • 允许入站访问的安全组
  • 位于公共子网中
  • 开放网络ACL规则
对于你的情况,我建议:

  • 修改RDS实例并将
    publilyaccessible
    设置为False。这将删除公共IP地址
  • 创建一个新的安全组(我将其称为“SG1”),并将其分配给您希望允许与RDS实例通信的单个EC2实例
  • 修改与RDS实例关联的安全组,并允许来自SG1的入站通信(允许来自EC2实例的通信)。请注意,这是指SG1安全组本身,而不是指任何特定的IP地址

能否将EC2实例放入新的安全组,然后将RDS安全组更改为仅允许从该EC2安全组访问?