默认RDS安全组的入站源是什么意思?

时间:2018-07-23 16:23:01

标签: amazon-web-services aws-lambda amazon-rds aws-security-group

创建RDS时,默认情况下似乎有一个inbound source

例如,像port: 5432, IP: 221.142.31.25/32

据我了解,这意味着security group允许来自IP范围(221.142.31.25/32)的请求访问端口(5432)。

以某种方式,似乎我的本地用户也可以访问RDS,而无需任何其他inbound source代表我的本地用户。

与我的本地用户相反,当我尝试从RDS访问Lambda时,我不得不添加inbound source 0.0.0.0/0,否则,添加{{ 1}}返回了超时错误。

我的问题是...

  1. IP范围(Lambda)是什么意思?
  2. 它如何允许我的本地人访问221.142.31.25/32
  3. 为什么拒绝RDS但我的本地人?

3 个答案:

答案 0 :(得分:2)

第一个问题::221.142.31.25/32是CIDR表示法,它表示仅一个IP,即:221.142.31.25

请记住,IPv4由4位,8位组成,最大为32位。 您可以使用以下公式: 如果您有 xxxy / N ,则您将拥有 2 ^(32-N) IP地址 y Y +(2 ^(32-N)-1)

即对于221.142.31.25/32,我们有2 ^(32-32)= 2 ^ 0 = 1表示一个IP

对于221.142.31.25/31将为2 ^(32-31)= 2 ^ 1 = 2表示(221.132.31.25&221.132.31.26)

221.142.31.25/30将为2 ^(32-30)= 2 ^ 2 = 4表示(221.132.31.25&221.132.31.26&221.132.31.27&221.132.31.27)

SG:221.142.31.25/32意味着侦听端口5432的RDS实例被列入白名单,只能从一个IP 221.142.31.25进行访问。

第二个问题:能否请您进一步描述本地访问的含义?您的VPC中是否有要从中访问RDS的专用子网?

第三个问题:因为在我看来,您的Lambda处于Internet上,并且运行时Lambda可以具有任何任意的公共IP(当然具有注册的Amazon Company范围)。据我所知,Lambdas不能具有固定IP,但可以将其放置在设计中的固定内部IP范围内。解决此问题的唯一方法是在VPC中定义一个特定的内部子网,例如192.168.1.1/24(其中范围从192.168.1.1到192.168.1.256),然后将RDS放在带有SG(192.168.1.1/24)的VPC上,并在同一VPC内分配lambda。

答案 1 :(得分:1)

更好的架构是:

  • 配置AWS Lambda函数以连接到VPC
  • Lambda函数使用Amazon RDS实例的DNS名称,它将解析为VPC中的本地IP地址
  • 将VPC的CIDR范围(例如192.168.0.0/16或其任何类型)添加到与Amazon RDS实例关联的安全组。这将允许从VPC内的任何资源进行访问。
  • 似乎您在安全组上已经有一个入站规则,该规则允许从便携式计算机进行访问,该便携式计算机的IP地址似乎为221.142.31.25。因此,CIDR范围将为221.142.31.25/32

结果将是Lambda直接与VPC中的RDS对话,而您的笔记本电脑是通过Internet进入的。

答案 2 :(得分:0)

RDS创建一个默认入站源,该入站源仅允许您的IP地址。 port: 5432, IP: 221.142.31.25/32是您的公用IP地址(您的请求在RDS中显示为的IP地址)。