将Cloud Functions执行隐藏在Cloud Endpoints后面

时间:2019-05-06 14:15:08

标签: google-cloud-platform google-cloud-functions google-cloud-endpoints

我想知道是否可以使用云端点来限制/隐藏对我的云功能的直接访问。

我遵循了Google的this教程。

在链接上说:

  

通过此设置,ESP会在调用功能之前拦截对您的功能的所有请求并执行任何必要的检查(例如身份验证)

我设法完成了本教程,在端点上添加了JWT身份验证机制。但是,即使我可以通过CloudRun / ESP中的URL访问(启用保护),我仍然可以从函数的直接URL中进行访问(保护在此级别不适用,因此不安全)。如何避免这种情况?。

谢谢!

1 个答案:

答案 0 :(得分:2)

此处的GCF PM,

您需要启用第5步后半部分提到的GCF IAM,“授予ESP调用云身份和访问管理(Cloud IAM)权限以调用您的功能。”

这需要“开始之前”的第7步,即joining the Alpha whitelist

此后,您可以按如下所述保护功能:

gcloud alpha functions add-iam-policy-binding FUNCTION_NAME \
    --member "serviceAccount:ESP_PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
    --role "roles/cloudfunctions.invoker" \
    --project FUNCTIONS_PROJECT_ID

关于alpha阶段产品的怪异重叠的道歉-GCF IAM应该尽快公开!