【发布时间】:2021-12-26 22:56:24
【问题描述】:
最初我有一个连接到 rds 中的数据库的 lambda 函数。现在我想改变我连接到数据库的方式,并通过 rds 代理来完成。
我已经创建了rds代理并分配了默认自带的vpc、子网和安全组。
最初我的 lambda 没有关联任何 vpc,但为了使用 rds 代理,我必须使用与 rds 代理相同的安全组。
现在,当将 lambda 关联到 rds 代理 vpc 时,lambda 失去了互联网访问权限。
我已尝试按照他们在此链接https://aws.amazon.com/premiumsupport/knowledge-center/internet-access-lambda-function/ 中描述的步骤进行操作,但这是不可能的,我对网络了解不多:(
我目前的设置如下:
VPC:
ID: vpc-123
IPv4 CIDR: 172.31.0.0/16
Main route table:
ID: route-table-123
Routes (Destination -> Target):
172.31.0.0/16 -> local
0.0.0.0/0 -> igw-123
Main network ACL:
ID: acl-123
Inbound rules (Rule number,Type,Protocol,Port range,Source,Allow/Deny):
100,All Trafic,All,All,0.0.0.0/0,Allow
*,All Trafic,All,All,0.0.0.0/0,Deny
Outbound rules (Rule number,Type,Protocol,Port range,Source,Allow/Deny):
100,All Trafic,All,All,0.0.0.0/0,Allow
*,All Trafic,All,All,0.0.0.0/0,Deny
Subnet1:
IPv4 CIDR: 172.31.0.0/20
Route table: route-table-123
Network ACL: acl-123
VPC: vpc-123
Subnet2:
IPv4 CIDR: 172.31.16.0/20
Route table: route-table-123
Network ACL: acl-123
VPC: vpc-123
Subnet3:
IPv4 CIDR: 172.31.32.0/20
Route table: route-table-123
Network ACL: acl-123
VPC: vpc-123
目前 lambda 已经关联了 vpc、subnet1、subnet2 和 subnet3。
按照此链接https://aws.amazon.com/premiumsupport/knowledge-center/internet-access-lambda-function/ 中的步骤,我在每个步骤中都执行了以下操作:
- 我使用以下值创建了一个新子网:
VPC: vpc-123
Name: public-subnet
Availability Zone: No Preference
IPv4 CIDR block: 172.31.48.0/20
-
创建一个互联网网关并将其附加到您的 Amazon VPC: 在这一步中我什么也没做,因为 vpc 已经通过它的主路由表有一个与之关联的互联网网关
-
创建一个 NAT 网关:我创建了一个具有以下值的 NAT 网关:
Name: nat-gateway-public
Subnet: public-subnet
Connectivity type: Public
Elastic IP allocation ID: Click on button "Allocate Elastic IP"
- 创建两个自定义路由表 - 一个用于您的公共子网,一个用于您的私有子网:在这一步中,我为公共子网创建了一个路由表,因为现有子网有自己的路由表,新路由的值表格如下:
Name: route-table-public
VPC: vpc-123
Routes (Destination, Target)
172.31.0.0/16, local
0.0.0.0/0, nat-gateway-public
我还修改了公共子网 (public-subnet),将其与创建的新路由表 (route-table-public) 相关联。
- 验证您的网络 ACL 是否允许来自您的 Lambda 函数的出站请求,并根据需要允许入站流量:在这一步中我什么也没做,因为 ACL (acl-123) 允许所有入站和出站流量。
最后我编辑了我的 lambda 的网络配置并将新子网关联到它,但 lambda 仍然无法访问互联网。
知道我做错了什么吗?
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-rds amazon-vpc