代码之家  ›  专栏  ›  技术社区  ›  SangminKim

默认RDS安全组入站源的含义是什么?

  •  0
  • SangminKim  · 技术社区  · 6 年前

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

    例如,比如 port: 5432, IP: 221.142.31.25/32 .

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

    不知何故,它似乎允许我的本地访问 RDS 也没有任何额外的 入站源 代表我的本地人。

    与我的本地用户不同,当我尝试访问 RDS Lambda ,我不得不补充 入站源 0.0.0.0/0 否则, 兰姆达 已返回超时错误。

    我的问题是…

    1. IP范围是多少( 221.142.31.25/32号 )意思是?
    2. 它如何允许本地用户访问 RDS ?
    3. 为什么它否认 兰姆达 但是我的本地人呢?
    2 回复  |  直到 6 年前
        1
  •  1
  •   John Rotenstein    6 年前

    更好的架构是:

    • 配置AWS lambda功能以连接到vpc
    • lambda函数使用Amazon RDS实例的DNS名称,该实例将解析为 本地IP地址 在专有网络内
    • 添加专有网络的CIDR范围(例如 192.168.0.0/16 或者不管它是什么)到与AmazonRDS实例关联的安全组。这将允许从VPC内的任何资源访问。
    • 您似乎已经在安全组上有一个入站规则,允许从您的笔记本电脑访问,它的IP地址似乎是221.142.31.25。因此,苹果酒的范围是 221.142.31.25/32 .

    结果将是lambda直接与vpc中的rds进行对话,而您的笔记本电脑则通过互联网进入。

        2
  •  2
  •   Zoobin    6 年前

    第一个问题: 221.142.31.25/32是CIDR符号,表示只有一个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运行时可能拥有任意的公共IP(当然是在注册的亚马逊公司范围内)。据我所知,lambdas不能有固定的IP,但你可以在设计上把它们放在固定的内部IP范围内。解决这个问题的唯一方法是在你的vpc中定义一个特定的内部子网,比如说192.168.1.1/24(范围从192.168.1.1到192.168.1.256),然后用sg(192.168.1.1/24)把你的rds放在vpc上,并分配lambda w。也在同一个专有网络中。