在AWS中,我们的自动扩展组正在不同的可用区域中启动新的实例(以获得高可用性),而这些Web实例当然需要在端口3306上访问数据库(RDS)服务。
现在,我的RDS安全组应该允许哪些IP地址用于端口3306?
由于每个新启动的实例每次都有不同的IP地址,那么我们如何将它们添加到安全组?
顺便说一句:这不仅仅是RDS安全组的问题,而是所有安全组的问题,因为我不能限制它们。
您不会将EC2实例的IP地址添加到您的RDS安全组,您添加另一个安全组。 这为安全组中的每个实例都提供了EC2实例访问RDS安全组/资源的权限。
在这个稍微模糊的图像,你可以看到我的networking安全组(结束f4)被添加到我的RDS安全组(结束C6)。
您可能会注意到一个相关的概念是IAMangular色 。 在这种情况下它们不适用,但它们对于知道有用。 他们可以允许EC2实例访问实际上任何EC2资源(例如S3),而不必存储凭证。 EC2实例需要以angular色启动,但我相信angular色策略可以随时更改。
您新启动的实例将连接到他们自己的安全组。 也许他们是一个自动规模组的一部分,但它并不重要。 您可以使用实例正在使用的安全组来访问您的RDS实例:
注意这里我们有一个RDS安全组,它有一个允许来自自定义源的TCP端口3306的通信的条目,自定义源是你的实例连接到的安全组的安全组ID。