0

我试图将 gcp cloud build webhook 与我的 gitlab 存储库集成。我用这个作为参考。我成功创建了触发器(webhook 触发器)。还为服务帐户添加了必要的权限并启用了 API。

但是当我尝试使用如下命令触发云构建时出现错误PERMISSION_DENIED

使用的命令:

 curl -X POST -H "application/json" "https://cloudbuild.googleapis.com/v1/projects/${PROJECT_NAME}/triggers/${TRIGGER_NAME}:webhook?key=${API_KEY}&secret=${SECRET_VALUE}" -d "{}"

注意:我使用了真正的价值TRIGGER_NAMEAPI_KEYSECRET_VALUE

收到如下错误:

{
  "error": {
  "code": 403,
  "message": "The caller does not have permission",
  "status": "PERMISSION_DENIED"
  }
}

云构建设置:下面是云构建设置截图

在此处输入图像描述

我怎样才能成功调用这个 webhook 触发器?

4

3 回答 3

1

您好,请确保您的服务帐户或角色具有以下权限:

IAM 权限

cloudbuild.builds.create    

或使用预定义角色

Cloud Build Editor

有关更多信息,请参见此处:https ://cloud.google.com/build/docs/iam-roles-permissions

于 2021-07-11T01:26:48.177 回答
1

在遵循教程文档时,我也遇到了与您相同的症状。我通过在创建触发器而不是存储在秘密管理器中的 ssh-private-key 时提供不同的秘密值(例如 123)解决了这个问题。

指定的密钥将用作 Webhook URL 参数的一部分。由于 ssh-private-key 太复杂而无法进行正确匹配,因此使用更简单的密钥可以更轻松地进行匹配。(我确实认为文件可能更清楚)

于 2021-12-04T09:42:12.640 回答
0

首先,确保启用计费。另外,请仔细检查密钥。

其次,确保将 Secret Manager Secret Accessor 角色分配给您的 Cloud Build 服务帐户 ${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com。

第三,尝试将触发条件设置为基本条件并触发它以查看构建是否有效。

于 2021-10-13T12:10:22.283 回答