我正在谷歌应用引擎标准环境中实现微服务。 我需要使用 URLfetch 从另一个微服务调用一个微服务。为此,我必须有一些身份验证机制,以便同一项目中的微服务只能调用此 api。
它可以使用任务队列来实现,但这对我的方案没有用。
我点击了此链接(如何保护不同 GAE 之间的连接? 如果我们验证 X-Appengine-Inbound-Appid 标头,那么可以实现这一点。 我很好奇我们是否使用服务帐户使其更加安全。
以下链接有参考来做 https://cloud.google.com/appengine/docs/standard/python/communicating-between-services https://cloud.google.com/docs/authentication/production
但没有找到明确的说明来实现它。有人使用这种方法进行身份验证吗?
您提到的此链接 [1] 有明确的说明以及 Python 中的代码示例(单击 Python 选项卡)来实现您的目标。该文档介绍如何创建服务帐户,为其分配具有关联权限的角色,以及如何向应用程序提供凭据。
代码示例展示了如何让应用与云存储微服务交互。如果您在按照示例操作时遇到错误,请提供错误详细信息。
[1] https://cloud.google.com/docs/authentication/production
一种选择是为 App Engine 应用程序启用云身份感知代理 (IAP)。然后,可以使用服务帐户以编程方式进行身份验证。这将允许一个 App Engine 应用以经过身份验证的方式调用另一个受 IAP 保护的应用。