使用私有网络安全从 Google Cloud Scheduler 触发 Google Cloud Functions

使用私有网络安全从 Google Cloud Scheduler 触发 Google Cloud Functions

Google Cloud Scheduler 可用于访问与 Google Cloud Function 关联的 http 端点,以便您可以通过计时器/调度程序运行您的函数。Cloud Functions 有两种公开选项:(1) 允许所有流量或 (2) 仅允许内部流量(仅允许来自同一项目或 VPC SC 边界内的流量)。我想做后者,但调度程序无法通过 HTTP 403 访问它。

如果对所有流量开放,那么就只需要有人猜测我的 URL,他们就可以随意触发它。现在,当然,我可以将身份验证放入我的函数中,并让 Scheduler 传递适当的标头,但我的函数对其他人来说并不危险。但是,如果其他人可以触发它,他们可以随意调用它,即使进行了身份验证,它仍会对所有这些调用产生费用。我想确保除了 Scheduler(理想情况下)之外,没有其他人可以访问该 URL,因此除了我的计划之外,它不会被触发。有什么方法可以实现这一点吗?

答案1

根据官方文档:

要使用 Cloud Scheduler,您的 Cloud 项目必须包含位于受支持区域之一的 App Engine 应用。如果您的项目没有 App Engine 应用,则必须创建一个。

Cloud Scheduler 概览

因此,通过运行以下命令找到您的应用引擎应用程序的位置:

gcloud app describe
#check for the locationId: europe-west2

然后确保将云功能与入口设置一起部署为“仅允许内部流量”,并将其部署到与应用引擎应用程序相同的位置。

我在与我的应用引擎应用程序相同的区域部署了一个云功能,一切都按预期进行。

相关内容