为Lambda添加VPC后是否会失去对DynamoDB等AWS服务的访问权限?
Lambda关联VPC后对AWS服务访问权限的说明
核心结论
Lambda关联VPC后,默认会失去对DynamoDB等AWS公有服务的直接访问权限,原因是关联VPC后,Lambda的网络被限制在VPC内部,默认没有公网出口,而DynamoDB的公有端点处于公网环境中。但这不是IAM权限的问题——你已配置的AmazonDynamoDBFullAccess等托管策略依然有效,问题出在网络连通性上。
解决方案(兼顾DynamoDB访问与外部HTTPS/WSS服务调用)
要同时满足访问DynamoDB和外部服务的需求,你需要确保Lambda具备公网访问能力,同时保留对DynamoDB的访问路径,推荐以下两种方案:
方案1:配置NAT网关(适配外部服务访问需求)
- 在Lambda所在VPC的公有子网中创建NAT网关,并将Lambda部署到私有子网。
- 配置私有子网的路由表,将
0.0.0.0/0的流量指向NAT网关,这样Lambda既能通过NAT访问外部HTTPS/WSS服务,也能通过公网访问DynamoDB的公有端点。
方案2:结合NAT网关与DynamoDB VPC端点(更安全高效)
- 按方案1配置NAT网关满足外部服务访问需求。
- 在VPC中创建DynamoDB网关型VPC端点,并更新私有子网的路由表,将DynamoDB的服务前缀(如
com.amazonaws.region.dynamodb)路由指向该端点。 - 这种方式下,Lambda访问DynamoDB时直接走VPC内部网络,无需绕公网,安全性更高且能节省数据传输费用。
关于你添加的内联策略
你添加的EC2相关权限策略是正确的——Lambda关联VPC时需要这些权限来创建、管理弹性网络接口(ENI),确保Lambda能在VPC中获取网络资源,无需调整。
内容的提问来源于stack exchange,提问作者Woodsman
相关产品推荐
相关产品推荐

