如何解决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 举报,一经查实,本站将立刻删除。