创建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}}返回了超时错误。
我的问题是...
Lambda
)是什么意思?221.142.31.25/32
?RDS
但我的本地人?答案 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)
更好的架构是:
192.168.0.0/16
或其任何类型)添加到与Amazon RDS实例关联的安全组。这将允许从VPC内的任何资源进行访问。221.142.31.25/32
。结果将是Lambda直接与VPC中的RDS对话,而您的笔记本电脑是通过Internet进入的。
答案 2 :(得分:0)
RDS创建一个默认入站源,该入站源仅允许您的IP地址。 port: 5432, IP: 221.142.31.25/32
是您的公用IP地址(您的请求在RDS中显示为的IP地址)。