如何向除api网关之外的所有人隐藏我的公共微服务



我在谷歌云上部署了容器化服务。该应用程序由几个微服务和一个api网关组成。由于谷歌云运行提供了公共端点,我所有的微服务都是公共的。我只想让api网关公开,其余的服务应该只能通过网关作为反向代理访问。如何将微服务隐藏在公众视线之外?来自api网关以外任何地方的请求都应该被拒绝。

您可以在微服务前添加一个API网关,并激活微服务上的安全。

只有网关才会被授权访问你的微服务,所有其他请求,即使端点是公共的,也会被谷歌前端丢弃(我的意思是,这是一个谷歌层,你不需要为此付出任何代价(。

作为API网关,例如,您可以使用云端点。我写了一篇关于这方面的文章,用一个简单的API密钥访问安全的后端。在你的情况下,你可以停用API密钥安全,你将有一个公共API网关,只有网关才能访问私人服务

编辑

在您的案例中,您不需要API密钥。只需删除安全定义(在文件末尾(,不要将security:定义放在后端定义中(或全局(。

然后

  • 在公共云运行上部署云端点。此URL是公共的,任何人都可以访问它,无需API密钥
  • 以私有模式(IAP背后的AppEngine(部署后端服务(云运行、云功能(。这一次,只有经过身份验证和授权的帐户才能访问此服务
  • 授予云端点服务帐户以访问后端服务(云功能的云功能调用程序、云运行的云运行调用程序、AppEngine的IAP web安全访问(

最后,只有云端点服务帐户被授权访问您的后端。

最新更新