对于可以运行"gcloud builds submit"和"gcloud run deploy"的服务密钥,我需要哪些 IAM 权限?



我正试图找出我需要分配给服务密钥的IAM权限的绝对最小集,该密钥将用于运行以下命令:

gcloud builds submit --tag gcr.io/MYPROJECT/MYNAME
gcloud run deploy --allow-unauthenticated --platform=managed --image gcr.io/MYPROJECT/MYNAME ...

我在弄清楚IAM方面遇到了很多困难,所以任何人都能给我的指示越详细越好!

以下是我到目前为止的发现(我最终获得了比我想要的更多的开放权限(:https://simonwillison.net/2020/Jan/21/github-actions-cloud-run/#google-云服务密钥

我实际上是在Python脚本中运行这些命令——相关代码如下:https://github.com/simonw/datasette/blob/07e208cc6d9e901b87552c1be2854c220b3f9b6d/datasette/publish/cloudrun.py#L134-L141

我知道您使用服务帐户运行这些命令,您的目标是确定分配给该服务帐户的IAM权限的最小集合,以便它可以构建和部署。我将列出一组最小IAM角色(不是IAM权限(

要运行gcloud builds submit --tag gcr.io/MYPROJECT/MYNAME,您需要:

  • roles/cloudbuild.builds.editor以触发生成
  • roles/storage.admin推送te图片

要运行gcloud run deploy --allow-unauthenticated --platform=managed --image gcr.io/MYPROJECT/MYNAME ...,您需要:

  • roles/run.admin(用于部署并允许allUsers访问服务(
  • roles/iam.serviceAccountUser(因为代码将在服务帐户下运行,所以用于部署的服务帐户也需要能够"充当"运行时服务帐户(

最新更新