Amazon Web Services – 解决通过 API Gateway 从 VPC 连接到 API 时出现的 403 Forbidden 错误
Amazon API Gateway 用于创建可扩展的 API。它可以执行其他功能,例如发布 API、监控和维护 API。这些也可用于开发 RESTful API 和 WebSocket API,可用于客户端和服务器之间的实时双向通信。简而言之,我们可以说,Amazon API Gateway 是大规模同时接受、处理和管理 API 的地方。
在本文中,我们将解决从虚拟私有云(VPC)中访问公共 API 网关 API 时出现的错误 403 禁止。要解决 403 Forbidden 错误,请按照以下步骤操作:
第 1 步:首先检查 VPC 内是否有Execute API 服务的 VPC 端点。要检查这一点,请转到 AWS 管理控制台。
第 2 步:登录 AWS 管理控制台后,导航到 VPC 控制台。
第 3 步:然后在左侧导航面板中选择Endpoints 。
您可以在此处查看您账户当前区域中的接口 VPC 终端节点列表。
第 4 步:现在使用VPC ID过滤 VPC 终端节点。
第 5 步:再次使用服务名称过滤 VPC 终端节点。
现在您可以看到与 VPC 相关的执行 API 服务的 VPC 端点。
请注意,启用私有 DNS 的 VPC 终端节点会将所有 API 网关请求路由到此 VPC 终端节点,因为我们只能从此 VPC 终端节点访问私有 API 网关终端节点。我们无法访问任何公共 API 网关 API,AWS 将抛出错误“403 禁止”。
有两种方法可以解决此错误:
- 使用自定义域名。
- 在正在使用的 VPC 终端节点上禁用私有 DNS,然后使用 VPC 终端节点的公有 DNS 名称访问私有 API
注意:使用私有 DNS 名称的任何客户端将无法再连接到私有 API,而必须使用 VPC 终端节点的公有 DNS 名称。
让我们看看如何禁用 VPC 终端节点的私有 DNS 名称设置。
步骤 1:使用 VPC 终端节点控制台选择您要更改其设置的 VPC 终端节点。
第 2 步:选择操作,然后选择修改私有 DNS 名称选项。
第 3 步:要启用私有 DNS 名称,请清除“为此端点启用”旁边的复选标记。然后选择“修改私有 DNS 名称”以保存您的更改。
禁用私有 DNS 名称设置后,您可以在 AWS 命令行界面中使用以下命令访问私有 API 网关 API。
curl -X GET -v https://apiId.execute-api.region.amazonaws.com/stageName/resourceName
这将解决 API 网关连接中的 403 禁止错误。