oauth2.0 保护Google Cloud Run REST API安全的最佳实践

bn31dyow  于 2023-03-07  发布在  Go
关注(0)|答案(1)|浏览(143)

我有一个REST API(用Python实现),目前正在Google Cloud Run上运行。我已将其配置为:

  • 允许所有流量
  • 要求认证

而且它目前对我来说工作得很好,因为我可以登录(在浏览器中)使用我的谷歌帐户(它具有所有必需的权限)。我遇到的问题是我不知道(并且找不到)如何将这个REST API暴露给第三方后端系统。到目前为止,我尝试创建一个全局API密钥,我想在请求参数中传递该密钥,但不幸的是,没有成功。t work.我仍然会从 Postman 那里得到403错误,不管我是否传递了密钥。
我知道我可以创建一个服务帐户,并授予它CloudRun.invoker权限,这样它就有权限查询我的应用程序,但我知道使用它的唯一方法是通过service_account_key.json,这在我的情况下不起作用,因为客户端系统没有实现任何谷歌云功能,它必须重写。
如果我可以总结一下--如何使用诸如OAuth之类的通用技术以编程方式向我的Cloud Run应用程序进行身份验证?
更具体地说,如何通过OAuth或OAuth2.0模拟服务帐户?

2nc8po8w

2nc8po8w1#

你可以在Cloud Run前面使用API网关。我写过一篇关于ESPv 2的文章,但它与API网关非常相似(它是托管的ESPv 2!)。它应该会对你有所帮助。https://medium.com/google-cloud/secure-cloud-run-cloud-functions-and-app-engine-with-api-key-73c57bededd1
API网关是一个轻量级的Apigee。Apigee是一个很好的解决方案,但也是一个怪物!(它消耗了大量的配置时间和运行资金!)cloud.google.com/api-gateway

相关问题