我可以将 Cloud Functions Invoker 角色与 firebase 函数一起使用吗?

Can I use Cloud Functions Invoker role with firebase functions?

我有一个云函数,它只能由我同时托管的 GKE 集群调用。我还想使用 Firebase Hosting 做一个不错的 url。如果我在该函数上设置 Cloud Function Invoker 角色以仅允许在该 GKE 集群上设置的服务帐户,Firebase 托管是否会代理该服务帐户并因此仍将对该函数的访问限制为仅调用者角色?还是我需要使用 Cloud Endpoints 之类的东西来实现?

如果 Firebase Hosting 不支持,我是否仍可以使用 Firebase CLI 来至少部署函数并维护 Invoker 角色设置?也就是说,Firebase 会在我每次部署函数时重置 Invoker 角色以允许所有用户吗?

我可以测试所有这些以确定行为,但我想我会先问这个问题,以防有更好的方法。

Firebase 托管 URL 始终是 public,云功能通过 public HTTP 代理。如果 Hosting 也无法访问,您将无法限制对功能的访问。

您应该能够通过以下方式限制对 Firebase 部署的 HTTP 函数的访问:

  1. 部署它(它会public一小段时间)
  2. 从 Google 云控制台修改函数的 IAM

通过 Firebase CLI 重新部署该函数不应更改任何现有的调用者角色(我没有尝试过,但它应该有效)。