我应该将哪些角色添加到CircleCi使用的服务帐户中?

时间:2018-08-14 08:44:23

标签: circleci google-container-registry

我正在运行测试,并将docker镜像从CircleCi推送到Google Container Registry。至少我正在尝试。 我的服务帐户需要哪些角色才能将图像推入GCR? 即使是具有“项目所有者”角色的帐户,我也会收到此错误:

 gcloud --quiet container clusters get-credentials $PROJECT_ID
   Fetching cluster endpoint and auth data.
   ERROR: (gcloud.container.clusters.get-credentials) 
   ResponseError: code=403, 
   message=Required "container.clusters.get" permission(s) 
   for "projects/$PROJECT_ID/locations/europe-west1/clusters/$CLUSTER".

2 个答案:

答案 0 :(得分:2)

收到Required "___ANYTHING____" permission消息时:

  • 转到控制台-> IAM->角色->创建新的自定义角色[ROLE_NAME]

  • 添加container.clusters.get和/或您需要的其他任何权限才能使整个过程顺利进行(例如,我需要kubectl的某些权限)

  • 将该角色(控制台-> IAM-> Add +)分配给您的服务帐户

答案 1 :(得分:0)

根据this文档,您将需要storage.admin角色来推送(读和写),并且需要storage.objectViewer角色来从Google Container Registry提取(只读)。

关于无法以所有者身份获得凭据的主题,您可能使用了计算机的服务帐户而不是所有者帐户。通过command检查您使用的是哪个帐户:

gcloud auth list

您可以通过以下方式通过UI更改机器正在使用的服务帐户:首先停止实例,然后编辑服务帐户。您还可以通过command使用Google凭据:

gcloud auth login

希望这会有所帮助