【问题标题】:What is the meaning of inbound source of default RDS security group?默认RDS安全组的入站源是什么意思?
【发布时间】:2020-08-06 11:44:45
【问题描述】:

当我创建一个RDS 时,它似乎默认有一个inbound source

比如port: 5432, IP: 221.142.31.25/32

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

不知何故,它似​​乎允许我的本地人也可以访问RDS,而无需任何额外的inbound source 代表我的本地人。

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

我的问题是……

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

【问题讨论】:

  • “我的本地人”是什么意思?
  • 对不起,如果有歧义,my local 表示我的笔记本电脑环境。
  • 您的 Lambda 函数是否连接到与 RDS 实例相同的 VPC? Lambda 如何寻址 RDS 实例——通过私有 IP 地址还是通过公共 IP 地址? 221.142.31.25是你笔记本的IP地址吗?
  • Lambda 通过 RDS 的公共 IP 访问,例如 rekog2.xxxxxxxxxx.ap-northeast-1.rds.amazonaws.com221.142.31.25/32 中的 inbound source security group 是由 AWS 在创建 RDS 实例而不是我时自动创建的.我不知道IP是什么。

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


【解决方案1】:

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

请记住,IPv4 由 4、8 位构成,总共提供 32 位 MAX。 您可以使用以下公式: 如果您有 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 在 Internet 上,并且 Lambda 在运行时可能具有任意公共 IP(当然具有注册的亚马逊公司范围)。据我所知,Lambda 不能有固定 IP,但您可以将它们放置在设计中的固定内部 IP 范围内。解决此问题的唯一方法是在您的 VPC 中定义一个特定的内部子网,例如 192.168.1.1/24(范围从 192.168.1.1 到 192.168.1.256)然后将您的 RDS 放在具有 SG (192.168.1.1/24) 的 VPC 上,并将您的 lambda 分配到同一个 VPC 中。

【讨论】:

    【解决方案2】:

    更好的架构应该是:

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

    【讨论】:

    • 我尝试按照您的指示进行操作,但是 lambda 仍然返回超时错误。请参考this
    • 您确定 RDS 和 Lambda 都位于同一个 VPC 中吗?记录 CIDR 范围,并根据 Lambda 在您的 VPC 网络中的位置,确保 SG Whitelisted Range 与 Lambda 的 VPC/子网范围相匹配。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2016-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 2019-05-06
      • 2013-09-03
      • 2020-08-13
      • 1970-01-01
      相关资源
      最近更新 更多