Google 云端点 403 异常

Google Cloud Endpoint 403 Exception

我正在尝试根据以下步骤在 Cloud Endpoints 后面部署 Google Cloud Functions:

https://cloud.google.com/endpoints/docs/openapi/get-started-cloud-functions

我完全按照描述的步骤进行操作,并将 API 密钥身份验证添加到 OpenAPI 规范。

当我使用 API 键调用端点时,出现以下错误: INTERNAL:Calling Google Service Control API failed with: 403 and body: \bMPermission 'servicemanagement.services.check' denied for the consumer project.

我必须向服务帐户添加一些额外的角色吗?我在执行 gcloud run deploy.

时没有指定服务帐户

感谢您的帮助

刚刚找到解决方案。在按照文档中的描述部署端点之前,我必须创建一个具有“服务控制器”角色的新服务帐户,然后在部署时使用它:

gcloud run deploy --service-account="..."

除了卢卡斯回答:

Cloud Endpoints 通过 Google 服务管理 API“servicemanagement.googleapis.com”检查给定的 API 密钥。 这意味着调用服务管理 api 的服务帐户需要访问它。 在大多数情况下,这是项目的标准计算帐户。

您需要通过 gcloud 授予它权限:

gcloud projects add-iam-policy-binding <project> --member serviceAccount:<project_id>-compute@developer.gserviceaccount.com --role roles/servicemanagement.serviceController

或者通过云端控制台: Service Controller Permission IAM