部署到Cloud Run的容器镜像读取权限配置无效求助
解决Cloud Run镜像读取权限错误的简易步骤
先找对Cloud Run服务实际使用的运行时服务账号
打开Cloud Run控制台,找到你的服务器端标签服务,进入「详情」页,拉到「服务账号」栏,把这个账号记下来(格式大概是xxxx-compute@developer.gserviceaccount.com)。之前可能加错了账号,Cloud Run实际运行服务用的是这个账号,不是默认计算账号或者你的个人账号(除非两者刚好一致)。给这个运行时服务账号添加镜像读取权限
打开IAM与管理员控制台,在IAM页面搜索刚才记下的账号,点击「编辑」,添加「Artifact Registry Reader」角色(角色ID为roles/artifactregistry.reader)。新手直接选择项目范围的权限即可,不用纠结仓库级的精细配置。确认镜像地址的权限覆盖范围
检查Cloud Run服务使用的镜像地址(比如us-central1-docker.pkg.dev/你的项目ID/仓库名/镜像名:tag),确保你添加的权限覆盖了这个镜像所在的项目和区域,避免跨项目或跨区域加错权限。重新部署服务
回到Cloud Run服务页面,点击「编辑并部署新版本」,无需修改任何配置,直接点击「部署」。这样会用当前控制台的账号重新部署,同时应用新配置的权限。验证问题是否解决
部署完成后查看服务的「日志」,搜索User does not have access to image,如果没有新的错误产生,再触发一次网站转化事件,确认日志能正常处理请求即可。
内容的提问来源于stack exchange,提问作者Millennyum
相关产品推荐
相关产品推荐

