【发布时间】:2020-03-03 03:39:53
【问题描述】:
我有一个简单的云功能,它是由在FirebaseAuth 上创建一个新用户触发的,它向在谷歌Kubernetes Engine 上运行的服务发出一个POST 请求以及一个ESP( Google 端点)。
据我所知,通过阅读"Authentication between services",我应该能够通过分配与具有服务帐户令牌创建者角色的服务帐户相关的安全定义来定义服务到服务身份验证。 我将如何使用服务帐户对这个请求进行身份验证,以便只有这个函数可以发出这个请求?此服务帐户是否可以以某种方式归因于该功能?请指导我解决这个问题。
谢谢!
【问题讨论】:
-
答案需要更多信息。您正在使用 POST 到 Kubernetes 服务的什么服务?一些服务具有内置的 OAuth 身份功能(Cloud Scheduler、Cloud Run、Cloud Functions 等)。对于这些服务,您只需设置一个命令行选项。对于其他服务,您需要请求身份令牌(计算引擎)或使用 Google OAuth API 创建一个。最终结果是您的 Kubernetes 服务将需要处理包含 OAuth 身份令牌的 HTTP
Authorization: Bearer TOKEN标头。 -
如何配置你的 k8s 集群?哪些服务正在通信?您是否使用服务网格层进行服务到服务身份验证?
-
@JohnHanley POST 请求是由云函数完成的,我在问题的开头就这么说了。
-
@guillaumeblaquiere 这与问题有什么关系?这只是云功能和端点(Google Endpoints)之间的身份验证。
-
说“我的云功能”和说我正在使用谷歌云功能是有区别的。清晰是好问题的关键组成部分。然后我的评论有你的答案。 Cloud Functions 支持命令行选项/配置选项
--service-account。这设置了函数使用的标识。另一方面,您需要验证 HTTP 标头中收到的令牌。 cloud.google.com/sdk/gcloud/reference/functions/deploy
标签: google-cloud-platform google-cloud-functions google-cloud-endpoints