默认RDS安全组的inbound source是什么意思?

What is the meaning of inbound source of default RDS 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 代表我的本地。

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

我的问题是...

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

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

请记住 IPv4 由 4、8 位构成,最多可提供 32 位。 您可以使用以下公式: 如果你有 x.x.x.y/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 在互联网上,而 Lambda 在 运行 上可能有任意 Public IP(的当然有注册的亚马逊公司范围)。据我所知,Lambdas 不能有固定 IP,但您可以将它们放在 design.The 的固定内部 IP 范围内(范围从 192.168.1.1 到 192.168.1.256)然后将您的 RDS 放在带有 SG (192.168.1.1/24) 的 VPC 上,并在同一 VPC 中分配您的 lambda。

更好的架构是:

  • 配置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 进入。

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