【问题标题】:Which roles should I add to my service account utilised by CircleCi?我应该向 CircleCi 使用的服务帐户添加哪些角色?
【发布时间】:2018-08-14 08:44:22
【问题描述】:

我正在运行测试并将我的 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".

【问题讨论】:

    标签: circleci google-container-registry


    【解决方案1】:

    根据this doc,您需要 storage.admin 角色来推送(读取和写入),以及 storage.objectViewer 来从 Google Container Registry 中拉取(只读)。

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

    gcloud auth list
    

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

    gcloud auth login
    

    希望对你有帮助

    【讨论】:

    • 添加 Storage Admin 和 Storage Object Viewer 角色后一切正常。 :)
    【解决方案2】:

    当您收到Required "___ANYTHING____" permission 消息时:

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

    • 添加 container.clusters.get 和/或您需要的任何其他权限以使整个事情顺利进行(例如,我需要一些 kubectl 权限)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-22
      • 2016-04-17
      • 2019-07-09
      • 2020-03-26
      • 2010-10-05
      • 2020-12-17
      • 1970-01-01
      • 2022-11-15
      相关资源
      最近更新 更多