Tan*_*uka 5 docker google-cloud-platform google-container-registry google-cloud-iam
我正在研究将图像推送到gc容器注册表的bitbucket管道。我已经创建了一个具有Storage Admin角色的服务帐户。(bitbucket-authorization@mgcp-xxxx.iam.gserviceaccount.com)
gcloud auth activate-service-account --key-file key.json
gcloud config set project mgcp-xxxx
gcloud auth configure-docker --quiet
docker push eu.gcr.io/mgcp-xxxx/image-name
Run Code Online (Sandbox Code Playgroud)
尽管登录成功,但我得到:项目'mgcp-xxxx'的令牌交换失败。呼叫者没有权限“ storage.buckets.get”。要配置权限,请按照以下说明进行操作:https : //cloud.google.com/container-registry/docs/access-control
任何人都可以对我所缺少的提出建议吗?
谢谢!
Shi*_*ine 17
对于一直在这里阅读的任何人。这里的其他建议对我没有帮助,但是我发现还需要Cloud Service Build Account角色。然后storage.buckets.get消失。
但是,Cloud Service Build Account角色添加了更多的权限,而storage.buckets.get. 可以在此处找到确切的权限。
注意:我很清楚Cloud Service Build Account角色也添加了storage.objects.get权限。但是,添加roles/storage.objectViewer并没有解决我的问题。不管它有没有得到storage.objects.get许可。
如果上述方法不起作用,您可能激活了错误的帐户。这可以通过以下方式解决:
gcloud auth activate-service-account --key-file key.json
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,您可能需要使用以下内容设置 docker 凭证助手:
gcloud auth configure-docker --project <project_name>
Run Code Online (Sandbox Code Playgroud)
最后一点。在设置角色和通过gcloud工具工作之间似乎有一些延迟。然而,这是最小的,想想不到一分钟的范围。
干杯
Pat*_*ins 12
您需要登录您的帐户并将项目设置为您想要的项目。您很有可能只是没有登录。
gcloud auth login
gcloud config set project <PROJECT_ID_HERE>
这些是逐步命令,让我将第一个容器推送到 GCE 私有存储库:
export PROJECT=pacific-shelter-218
export KEY_NAME=key-name1
export KEY_DISPLAY_NAME='My Key Name'
sudo gcloud iam service-accounts create ${KEY_NAME} --display-name ${KEY_DISPLAY_NAME}
sudo gcloud iam service-accounts list
sudo gcloud iam service-accounts keys create --iam-account ${KEY_NAME}@${PROJECT}.iam.gserviceaccount.com key.json
sudo gcloud projects add-iam-policy-binding ${PROJECT} --member serviceAccount:${KEY_NAME}@${PROJECT}.iam.gserviceaccount.com --role roles/storage.admin
sudo docker login -u _json_key -p "$(cat key.json)" https://gcr.io
sudo docker push gcr.io/pacific-shelter-218/mypcontainer:v2
Run Code Online (Sandbox Code Playgroud)
文档似乎已过时 https://cloud.google.com/container-registry/docs/access-control
注意:推送镜像需要对象读写权限以及storage.buckets.get权限。存储对象管理员角色不包含 storage.buckets.get 权限,但存储旧存储桶写入者角色包含。
但Storage Legacy Bucket Writer角色不再可用。
为了解决权限问题,我向服务帐户添加了两个角色
| 归档时间: |
|
| 查看次数: |
3331 次 |
| 最近记录: |