如何修改gcloud命令将默认服务账号设为Cloud Function调用者
为Cloud Function配置默认服务账号调用权限的命令行方案
不需要在部署时指定额外参数,分两步即可完成配置:部署函数 + 绑定IAM权限:
正常部署Cloud Function
执行你的部署命令,不要添加--allow-unauthenticated参数,这样默认会关闭匿名访问权限:gcloud functions deploy functionTemp --entry-point functions.FunctionTemp --runtime java11 --trigger-http --memory 512MB --source=FunctionTemp获取默认服务账号邮箱
项目默认服务账号格式为[项目ID]@appspot.gserviceaccount.com,可通过命令直接获取:gcloud iam service-accounts list --filter="displayName:App Engine default service account" --format="value(email)"也可以先获取项目ID再拼接账号邮箱:
PROJECT_ID=$(gcloud config get-value project) DEFAULT_SA="${PROJECT_ID}@appspot.gserviceaccount.com"为默认服务账号绑定调用权限
使用gcloud projects add-iam-policy-binding命令,给默认服务账号添加roles/cloudfunctions.invoker角色:gcloud projects add-iam-policy-binding ${PROJECT_ID} --member="serviceAccount:${DEFAULT_SA}" --role="roles/cloudfunctions.invoker"
完成上述操作后,仅该项目的默认服务账号拥有调用此Cloud Function的权限,匿名访问会被拒绝。
内容的提问来源于stack exchange,提问作者Renee
相关产品推荐
相关产品推荐

