AWS 私有 API 网关 - 不是有效的键=值对缺少等号

问题描述

我有一个旧的 api,我们正在将 api 迁移到 AWS。该 API 将在带有 ALB 的 ECS 容器上运行。

我们希望使用 api 网关来利用某些功能。因此,我们使用 {proxy+} 方法资源和 VPC 链接代理集成创建了 api 网关(使用 VPC 端点和指向我们的 ALB 的 NLB)

这适用于端点类型为区域的 api 网关。但是我们需要有公共和私有的 api 网关。

所以我们的两个场景是:

公共场景:互联网 -> 我们的公共 API 网关 -> VPC LINK 代理集成(端点 + NLB) -> ALB -> ECS 容器

私有场景: 客户 VPC -> 客户 VPC 端点 -> 我们的私有 API 网关 -> VPC LINK 代理集成(端点 + NLB) -> ALB -> ECS 容器

问题是当我们使用 Authorization 标头时,我们得到以下响应:

'hsdasneudos_dummy_token' not a valid key=value pair (missing equal-sign) in Authorization header: 'Bearer hsdasneudos_dummy_token'.
Http Status is 403 Forbidden

响应头 -> x-amzn-ErrorType: IncompleteSignatureException

请求永远不会到达 ECS 容器。此请求适用于公共场景,也适用于使用测试功能的私有 api 网关 aws 控制台。

我认为问题在于 Customer VPC Endpoint 使用 Authorization 标头在私有 api 网关中进行身份验证,如果我在我的请求中使用这个 Authorization 标头将会搞砸。但这是一个遗留的 api,我们需要使用 Authorization 标头。

在私有 API 网关中,我们有允许客户 VPC 终端节点的资源策略,客户 VPC 终端节点也有调用 api 网关的策略。所有没有授权标头的请求都可以正常工作。

我该如何解决这个问题?问题是我怀疑(客户 VPC 端点使用授权标头进行身份验证)?如果是,还有其他方法可以在没有授权标头的情况下在 api 网关中对客户 VPC 端点进行身份验证吗?

感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)