无法针对以下功能设置可公开访问的 IAM 策略:

问题描述 投票:0回答:4

我最近继承了管理一个 firebase 项目,我正在尝试重新创建该项目,以便我有一个生产和开发版本可供使用,当我部署我的功能时,我收到以下消息:

Unable to set publicly accessible IAM policy on the following functions:
    {insert long list of functions here that have the following format}
    projects/{project name}/locations/us-central1/functions/{function name}

Unauthenticated users will not be able access this function.

Some common causes of this:

- You may not have the roles/functions.admin IAM role. Note that roles/functions.developer does not allow you to change IAM policies.

- An organization policy that restricts Network Access on your project.

这是错误消息还是只是说明应用程序的用户需要登录才能使用这些功能?

注意:所有这些函数均已成功创建,并且 firebase 控制台中没有错误消息。是的,我是 firebase 项目的所有者/管理员用户。

firebase google-cloud-functions firebase-cli
4个回答
5
投票

TLDR:您需要更高的谷歌云权限才能更改您的功能,以便任何用户都可以触发它们。

为了从服务器、客户端或其他来源调用某个函数,它必须具有“公开访问权限”。当我最初上传这些函数时,我从一个无权设置这些策略的帐户登录,因此我无法修改它们,因此出现错误消息。这些权限是在您的谷歌云仪表板中设置的。以下是如何更改它的一些步骤。

以下内容来自谷歌云

前往 Google Cloud Console

单击您感兴趣的功能旁边的复选框。

单击屏幕顶部的权限。权限面板 打开。

点击添加成员。

在新成员字段中,输入需要访问您的职能的一个或多个身份。这通常是用户或服务帐户电子邮件。

从选择角色下拉菜单中选择一个或多个角色。您选择的角色将显示在窗格中,并附有其授予的权限的简短说明。

如果您想让所有经过身份验证的用户都可以访问该功能(这通常是大多数应用程序所希望的),请将成员设置为

allUsers
,将角色设置为
Cloud functions invoker

注意:IAM 权限独立于 Firebase 或应用程序权限。它们是触发/修改/查看谷歌云中信息的权限。


3
投票

您需要更高的 Google Cloud 权限才能更改您的功能,以便任何用户都可以触发它们。

为了从服务器、客户端或其他来源调用某个函数,它必须具有“公开访问权限”。

这些权限是在您的谷歌云仪表板中设置的。以下是如何更改它的一些步骤。

转到 GCP 控制台


enter image description here

找到您想要获得权限的功能。
然后单击权限
然后点击添加校长


enter image description here

新校长所有用户 角色可能是CloudFunction Builder或其他东西


enter image description here


1
投票

这是授权令牌错误/损坏/过期的问题。要使用该功能,应用程序会验证用户密钥/凭据。


0
投票

roles/cloudfunctions.invoker
以及
roles/cloudfunctions.admin
授予正在部署该功能的主体(服务帐户或用户)可以解决该问题。

一旦部署。尝试添加

roles/cloudfunctions.invoker
为会员
allUsers
您将看到一条警告:

将 allUsers 或 allAuthenticatedUsers 添加到此资源将使其 互联网上的任何人都可以公开访问。

如果单击“接受”后您看到此错误:

IAM 策略更新失败状态无效 'projects/PROJECT/locations/REGION/functions/function-name 的 操作因前提条件错误而失败。这通常是因为 系统未处于执行操作所需的状态

这意味着组织政策

Domain Restricted Sharing
正在阻止此操作。您需要暂时豁免该政策才能授予此角色。

© www.soinside.com 2019 - 2024. All rights reserved.