簡體   English   中英

從不同項目訪問 GCP Docker 圖像

[英]Access GCP Docker image from different project

我有兩個 GCP 項目。 projectA 包含一個工件注冊表,我在其中存儲我的 docker 圖像,projectB 是我想使用這樣的圖像通過應用程序引擎(靈活)部署它的地方。

這是我的命令的樣子:

gcloud app deploy --project=projectB --version=test1 --image-url="asia-northeast1-docker.pkg.dev/projectA/default/my-image:latest"

它像這樣失敗:

錯誤:(gcloud.app.deploy)錯誤響應:[7] App Engine appspot 和 App Engine 靈活環境服務帳戶必須對圖像具有權限 [asia-northeast1-docker.pkg.dev/projectA/default/my-image :最新的]。 請檢查 App Engine 默認服務帳戶是否具有 [Storage Object Viewer] 角色,App Engine Flexible 服務帳戶是否具有 App Engine Flexible Environment Service Agent 角色

我確保App Engine default service account具有Storage Object Viewer角色(在兩個項目中),但是我無法在任何地方找到App Engine Flexible service account

您需要確保項目 B 的App Engine default service account可以訪問項目 A 中的 gcs 存儲桶。

您應該將 go 到 projectA 到“IAM”(而不是“服務帳戶”),在那里您將能夠從 projectB 添加App Engine default service accountprojectB地址。

在 Google Cloud 上,您有 2 個容器注冊表產品:容器注冊表和工件注冊表。

當您使用 Container Registry(舊版)時,Kunal 的回答是正確的,您需要在您的項目中將服務帳戶授予 Storage Object Viewer。

然而,新注冊表 Artifact Registry 的一個主要演變是 IAM 兼容性。 這次您可以授予的不是項目 scope(即使您可以,但我不推薦),而是在注冊表 scope 中。您有一個 IAM 角色專用於此。

Go 到 Artifact Registry,select it(左側的復選框)和 go 到右側的權限面板在此處輸入圖像描述

點擊add member,添加你的service account和select 正確的role,這里神器閱讀器就夠了在此處輸入圖像描述

(當然,如果您在項目 scope 授予您的服務帳戶具有相同的角色,它也有效)


編輯 1

您也可以在項目級別授予此角色在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM