首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >服务帐户需要哪些预定义的IAM角色才能完成Google Cloud Run快速入门:构建和部署?

服务帐户需要哪些预定义的IAM角色才能完成Google Cloud Run快速入门:构建和部署?
EN

Stack Overflow用户
提问于 2019-04-11 00:39:15
回答 1查看 0关注 0票数 0

我想将Google Cloud Run与Google App Engine和Google Cloud Functions进行比较。Cloud Run 快速入门:构建和部署似乎是一个很好的起点。

我的应用程序默认凭据太宽泛,无法在开发期间使用。我想使用服务帐户,但我很难配置一个可以完成快速启动而没有错误。

问题:

什么是我可以分配给必须执行这些命令而没有错误的服务帐户的最小特权预定义角色集:

gcloud builds submit --tag gcr.io/{PROJECT-ID}/helloworld
gcloud beta run deploy --image gcr.io/{PROJECT-ID}/helloworld

当通过具有两个角色的服务帐户运行时,第一个命令失败并出现(看似虚假的)错误:Cloud Build Service AccountCloud Run Admin。我没有运行第二个命令。

到目前为止我做了什么:

  1. 使用开发控制台创建新的GCP项目
  2. 使用开发控制台创建具有该Cloud Run Admin角色的新服务帐户
  3. 使用开发控制台为服务帐户创建(和下载)密钥
  4. 创建(并激活)gcloud项目的配置
$ gcloud config list
[core]
account = {service-account-name}@{project-id}.iam.gserviceaccount.com
disable_usage_reporting = True
project = {project-id}
[run]
region = us-central1
  1. 使用下载的密钥激活服务帐户
  2. 使用开发控制台启用 Cloud Run API
  3. 使用开发者控制台,使Container Registry→交通Settings→交通Container Analysis API
  4. Dockerfile按照快速入门文档的说明创建示例应用程序
  5. gcloud builds submit --tag gcr.io/[PROJECT-ID]/helloworld 由于缺少云构建权限,运行...失败
  6. Cloud Build Editor角色添加到服务帐户并重新提交构建 ...由于缺少存储权限而失败。我没有注意到遗漏的东西。
  7. Storage Object Admin角色添加到服务帐户并重新提交构建 ...由于缺少存储权限而失败
  8. 将服务帐户的Storage Object Admin角色替换为Storage Admin角色并重新提交构建 ...失败
Error: (gcloud.builds.submit) HTTPError 403:
<?xml version='1.0' encoding='UTF-8'?>
<Error>
<Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>
{service-account-name} does not have storage.objects.get access to
{number}.cloudbuild-logs.googleusercontent.com/log-{uuid}.txt.</Details>
</Error>
  1. 检查可用角色集和项目自动创建的服务帐户。意识到该Cloud Build Service Account角色拥有更多的权限Cloud Build Editor。这令我感到惊讶; 旧Editor角色具有“编辑对所有资源的访问权限”。
  2. 从服务帐户中删除Cloud Build EditorStorage Admin角色
  3. Cloud Build Service Account角色添加到服务帐户并重新提交构建 ...失败并出现相同的HTTP 403错误(缺少对日志文件的访问权限)
  4. 检查Cloud BuildHistory在开发控制台中; 找到成功的构建!
  5. 检查Container RegistryImages在开发控制台中; 找到图像!

此时我想我可以完成Google Cloud Run 快速入门:构建和部署。但我不想在构建过程中继续(看似虚假的)错误消息。

EN

回答 1

Stack Overflow用户

发布于 2019-04-11 10:27:43

根据https://cloud.google.com/cloud-build/docs/securing-builds/set-service-account-permissions

“云构建服务帐户” - Cloud Build使用服务帐户执行构建,这是一个代表您执行构建的特殊Google帐户。

为了调用gcloud build submit --tag gcr.io/path

编辑:请“云构建编辑器”和“查看器”启动构建的服务帐户,这是由于当前的云构建授权模型。

抱歉给你带来不便。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100009010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档