如何使通过Firebase私有部署的HTTPS onCall云功能

时间:2020-04-15 22:58:08

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

Firebase docs请注意:

> New HTTP and HTTP callable functions deployed with any Firebase CLI
> lower than version 7.7.0 are private by default and throw HTTP 403
> errors when invoked.

这意味着Firebase HTTP可调用函数的新默认设置现在将公开,我的用法已确认(不再抛出没有凭据的HTTP 403)。

我希望HTTP函数是私有的,现在可以通过Firebase将其设置为旧的行为吗?我在Firebase文档中看不到任何可以解释这种行为变化或如何在私有和公共HTTP函数之间切换的东西。

愿意在Google Cloud上查看文档以实现此目的,自己修改一下是否安全?

例如。如果我转到Cloud Console并找到该功能,则现在看到该功能的“允许未经身份验证”:

enter image description here

如果我获得许可,我看到成员allUsers被赋予了角色Cloud Functions Invoker。我认为,如果删除它,应该再次将其设为私有,但不确定这将如何影响Firebase部署/运行此功能的流程。

enter image description here

1 个答案:

答案 0 :(得分:3)

是的,您要对其进行更改是Cloud Functions Invoker角色。您可以按照instructions in the documentation进行操作,除了删除 allUsers而不是添加它:

  1. 转到Google Cloud Console

  2. 单击要授予访问权限的功能旁边的复选框。

  3. 单击右上角的“显示信息面板”以显示“权限”选项卡。

  4. 扩展云功能调用程序

  5. 使用垃圾桶图标删除allUsers

  6. 单击“保存”。

在进行更改之前,您甚至会在控制台中看到该功能:

此资源是公共资源,任何互联网上的人都可以访问。要删除公共访问权限,请从资源的成员中删除“ allUsers”和“ allAuthenticatedUsers”。

这不应影响Firebase CLI的重新部署。 CLI不会对现有功能进行权限更改。

请记住,通过此更改,您可能必须开始考虑允许某些服务帐户能够调用该功能。