默认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
已返回超时错误。
我的问题是...
- IP 范围(
221.142.31.25/32
)是什么意思?
- 它如何允许我的本地访问
RDS
?
- 为什么它拒绝
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 地址)。
当我创建一个 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
已返回超时错误。
我的问题是...
- IP 范围(
221.142.31.25/32
)是什么意思? - 它如何允许我的本地访问
RDS
? - 为什么它拒绝
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 地址)。