通过VPC端点访问DynamoDB失败

0

【以下的问题经过翻译处理】 我在ECS Fargate上运行一个API,它位于一个ALB后面,访问DynamoDB中的数据。ECS在私有子网中,ALB在公共子网中。我为所有相关服务设置了VPC端点。

直到今天,每当我尝试将NACL应用到私有子网时,我就无法访问API。我尝试了各种入站/出站规则,但无济于事;我只能通过禁用NACL(或仅向所有地址/端口开放)来使其工作。

文档在NACL和端点方面有点神秘。我最终在某个地方找到了一行提示我寻找服务IP范围的线索,这导致我找到了这个文档关于公共IP范围的文档。我将我的区域的Dynamo范围添加到私有子网NACL中,嗯,它可以工作了。

但是,为什么会这样呢?我添加到NACL中的这些IP是公共的,但这是一个没有通往公共互联网的子网。我理解的方式是,端点是从您的子网分配ENI/私有IP的,所以我很难理解为什么使用本地CIDR的入站不足够。

1 回答
0

【以下的回答经过翻译处理】 有两种类型的VPC终端节点。一种是接口类型VPC终端节点,另一种是网关类型VPC终端节点。目前,DynamoDB不支持接口类型VPC终端节点,只支持网关类型VPC终端节点。这就是为什么您需要将DynamoDB的IP范围添加到NACL中的原因。如果您使用带有网关类型的S3 VPC终端节点,则还必须添加S3 IP范围。

网关类型VPC终端节点没有网络接口,也不是客户端最终的目的地。客户端将通过终端点使用公共IP联系服务(DynamoDB或S3)。这就是为什么您必须修改每个要使用网关类型VPC终端节点的子网的路由表,以具有DynamoDB / S3 IP前缀的路由表。

请参阅以下内容。 https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/vpc-endpoints-dynamodb.html

profile picture
专家
已回答 8 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则