1

我正在尝试向 Internet 公开 HTTP 服务器。服务器在专用 VPC 内的 Fargate 容器上运行。如果不是因为必须使用 IAM 对对该服务器的请求进行身份验证,我可以通过公共应用程序负载均衡器 (ALB) 公开它。

我的方法是在服务的负载均衡器前面放置一个 AWS Gateway v1。此网关通过 IAM 验证身份验证,然后使用 VPC 链接将请求中继到网络负载均衡器 (NLB)。NLB 依次将其路由到服务器本身。

这是问题所在:Api Gateway v1 不支持到 ALB 的 VPC 链接,仅支持 NLB,但 NLB 使用 TCP,而我正在公开 HTTP 服务器。这样我就不能通过网络负载均衡器中继路径和其他 HTTP 功能。Api Gateway v2 确实支持到 ALB 的 VPC 链接,但它没有使用 IAM 进行身份验证的方法。

有没有办法解决这个问题?

4

1 回答 1

0

我不知道你为什么认为 api gtw 2 不允许 IAM 身份验证或者你从哪里得到的?您可以将您的 cloudformation 放在这里或指向一个 git,以便我可以使用策略对其进行测试吗?你能把链接放在它说 API GTW 2 不支持 IAM 授权的地方吗?

文档清楚地提到您可以使用 IAM Authorisers? https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/doc-history.html

这是一个可能有帮助的博客? https://aws.amazon.com/premiumsupport/knowledge-center/iam-authentication-api-gateway/

如果您说的是真的,您可以走很长的路并使用 Cognito Pool,将其链接到您的 API GTW。

https://aws.amazon.com/blogs/security/building-fine-grained-authorization-using-amazon-cognito-api-gateway-and-iam/

希望这会有所帮助,如果您愿意分享,我会很好奇您的Cloud Formation。

于 2021-09-08T09:34:46.153 回答