很久以前,当我创建GCP云函数时,检查了"--allow unauthenticated"。这意味着我的云功能具有公共访问权限。现在我想用经过身份验证的调用来更新我的云函数。我试图通过删除"--allow unauthenticated"来重新部署我的云功能,但在控制台上它仍然显示Authentication="allow unauthenticate"。我参考了一些stackerflow的文章,他们建议删除cloud函数并创建一个没有"--allow unauthenticated"标志的新函数。但我不想删除我现有的云功能,因为它是在生产环境中运行的。
有没有其他方法可以禁用GCP云功能的"允许未经验证"标志。
这是我用来部署云功能的CLI命令:
gcloud functions deploy data-generation --region europe-west1 --entry-point main --runtime python37 --env-vars-file env.yaml --trigger-http --service-account [SA-name]@[project-name].iam.gserviceaccount.com
除了Dustin答案,您还可以执行
- 删除您功能上的当前allUsers权限。保留当前功能版本
gcloud functions remove-iam-policy-binding --member=allUsers --role=roles/cloudfunctions.invoker data-generation
- 部署新的功能版本
gcloud functions deploy data-generation --no-allow-unauthenticated --region..........
在函数的"权限"选项卡中,删除赋予allUsers
成员"云函数调用器"角色的权限。