gpt4 book ai didi

aws-lambda - 如何在内部 lambda 调用中绕过授权

转载 作者:行者123 更新时间:2023-12-05 05:48:24 25 4
gpt4 key购买 nike

我在 api 网关后面实现了两个 lambda(我们称之为 A 和 B)。假设 A 是从“外部”调用的,B 是从外部调用的,也是从 A 调用的。我还实现了 lambda Authorizer(基于 token ;cognito)作为身份验证层。一切都按预期工作。有没有办法绕过 B 的授权程序,仅针对来自 A 的调用?
发送

最佳答案

对于完全相同的问题,我过去曾探索过多种可能性。

将调用更改为 lambda:Invoke

假设您正在为您的微服务生成一些客户端代码,您可以创建这些客户端的两个版本:

  • external 通过 HTTP API 调用您的服务
  • 内部使用 lambda:Invoke 操作直接到您的微服务。

创建一个镜像的 VPC 私有(private) API

如果您使用 CDK(或类似的替代方案)部署基础设施,这可能是可行的。本质上,您将现有的 API 保留在原处,并创建另一个没有授权方的内部版本。 (请注意,根据项目的性质,您可能仍希望进行某种授权过程。)

从现在开始,您可以将内部 HTTP API 的端点作为环境变量传递给 Lambda,并让它们调用它。

您可以找到更多相关信息,here .作为一项福利,您在与 API 网关通信时可能会获得更低的延迟,因为通过 VPC 端点的流量只会流经 AWS 网络,而不是在互联网上流出并返回。

将您的工作负载转移到 ECS

这可能是您项目的重大变化,但值得一提。

您可以使用 ECS 创建真正的微服务。您可以在 VPC 的私有(private)子网中运行这些服务。为了不必自己处理 IP 地址,您可以探索多种选择:

  • 有一个 VPC 内部 Route53 托管区域(更多信息 here)。查看有关 ECS 服务发现的更多信息 here
  • 在您的 VPC 的私有(private)子网中创建网络负载均衡器,并将它们的端点传递给您的服务。

关于aws-lambda - 如何在内部 lambda 调用中绕过授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70823528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com