【发布时间】:2018-11-10 07:43:58
【问题描述】:
是否可以从 Google Compute Engine GCE 向 Google AppEngine GAE 发出安全的 HTTP 请求,而无需使用服务帐户并在 GAE 服务上启用端点服务(代理)?我们的大多数后端 HTTP 处理程序不需要启用端点服务代理,因为请求都是内部的,而不是来自公众的。我们的公共 API 使用计算引擎端点服务..
handlers:
- url: /securehandler/.*
script: main.app
login: admin
https://cloud.google.com/appengine/docs/standard/go/config/appref#handlers_element
"注意:对于 App Engine 为其设置了适当的 X-Appengine 特殊标头的内部请求,也满足管理员登录限制。例如,cron 计划任务满足管理员限制,因为 App Engine 设置了 HTTP 标头 X-AppEngine- Cron:在各个请求上为 true。但是,请求不会满足所需的登录限制,因为 cron 计划任务不是以任何用户身份运行的。"
https://cloud.google.com/appengine/docs/standard/go/appidentity/
“向其他 App Engine 应用声明身份
如果您想确定向您的 App Engine 应用发出请求的 App Engine 应用的身份,您可以使用请求标头 X-Appengine-Inbound-Appid。此标头由 URLFetch 服务添加到请求中,用户不可修改,因此它安全地指示请求应用程序的 ID(如果存在)。
在您的应用程序处理程序中,您可以通过读取 X-Appengine-Inbound-Appid 标头并将其与允许发出请求的 ID 列表进行比较来检查传入 ID。"
在 GCE 中使用 Go 客户端发出 HTTP 请求时,显然没有设置 X-AppEngine 和 X-Appengine-Inbound-Appid 标头。
编辑:
- 网址:/securehandler/.* 脚本:_go_app 需要登录 安全:始终
如果登录设置为必需,默认服务帐户是否会进行身份验证?
【问题讨论】:
标签: google-app-engine google-compute-engine