如何让我的 Cloud Function 只能从我的 GCP 服务帐户调用
How to make my Cloud Function only be called from my GCP service account
如下所示,我正在编辑访问名为 task
的云函数的权限。我遵循 GCP 的建议,内容如下:
This resource is public and can be accessed by anyone on the internet.
To remove public access, remove "allUsers" and "allAuthenticatedUsers"
from the resource's members.
这样我的函数只能从我的 GCP 调用。所以我删除了 Cloud Functions Invoker
角色的 allUsers
访问权限。但现在我正在尝试添加一个具有 Cloud Functions Invoker
角色的新成员(服务帐户):
但是我不知道我的 Cloud Tasks 是从哪个服务帐户触发的。我创建了一个只有 Cloud Tasks 权限的新服务帐户,但我不知道如何让我的 Cloud Tasks 在执行时使用这个服务帐户。似乎没有这样的选择:
有什么想法吗?
根据 Google 文档,“如果您有一个具有访问处理程序的适当凭据的服务帐户,Cloud Tasks 可以调用需要身份验证的 HTTP 目标处理程序。”
您可能需要创建一个服务帐户并为其赋予适当的角色。
请遵循官方 Google 文档 [1],其中详细说明了要遵循的步骤。
[1] - https://cloud.google.com/tasks/docs/creating-http-target-tasks#sa
如下所示,我正在编辑访问名为 task
的云函数的权限。我遵循 GCP 的建议,内容如下:
This resource is public and can be accessed by anyone on the internet. To remove public access, remove "allUsers" and "allAuthenticatedUsers" from the resource's members.
这样我的函数只能从我的 GCP 调用。所以我删除了 Cloud Functions Invoker
角色的 allUsers
访问权限。但现在我正在尝试添加一个具有 Cloud Functions Invoker
角色的新成员(服务帐户):
但是我不知道我的 Cloud Tasks 是从哪个服务帐户触发的。我创建了一个只有 Cloud Tasks 权限的新服务帐户,但我不知道如何让我的 Cloud Tasks 在执行时使用这个服务帐户。似乎没有这样的选择:
有什么想法吗?
根据 Google 文档,“如果您有一个具有访问处理程序的适当凭据的服务帐户,Cloud Tasks 可以调用需要身份验证的 HTTP 目标处理程序。”
您可能需要创建一个服务帐户并为其赋予适当的角色。
请遵循官方 Google 文档 [1],其中详细说明了要遵循的步骤。
[1] - https://cloud.google.com/tasks/docs/creating-http-target-tasks#sa