【问题标题】:Should teams using GCP services use Application Default Credentials or a repo-wide service account for authentication?使用 GCP 服务的团队是否应该使用应用程序默认凭据或 repo 范围的服务帐户进行身份验证?
【发布时间】:2018-03-29 17:55:55
【问题描述】:
对于本地开发(包括其他团队成员),我们应该为我们的应用使用应用默认凭据,还是在验证和使用 Google Cloud Platform 服务时使用服务帐户?
我认为能够控制单个用户权限而不是随机服务帐户会更好,因为它还可以防止我们在有人离开团队时不得不撤销整个服务帐户密钥。而如果我们使用 ADC,它就可以正常工作,因为我们会禁用他们的帐户并删除其权限。但是,身份验证概述中的文档包含以下说明:
重要提示:对于几乎所有情况,无论您是在本地开发还是
在生产应用程序中,您应该使用服务帐户,而不是
而不是用户帐户或 API 密钥。
用于本地开发的正确身份验证方法是什么?
【问题讨论】:
标签:
google-cloud-platform
【解决方案1】:
来自same page:
所有 GCP API 都支持服务帐号。对于需要与 GCP API 通信的大多数服务器应用程序,我们建议使用服务帐号,因为它们是最受支持且最灵活的身份验证方式。
从这个意义上说,服务帐户的随机性仅取决于您管理它的方式。
对于您的场景,当有人离开团队时,撤销用户帐户(的权限)确实更容易,而不是撤销密钥,影响所有使用它的人。在我看来,这两种方法都是正确的,最好的方法是最适合您的情况的方法。文档推送服务帐户,因为它是一个 Google 帐户,而不是特定用户,并且无论您的代码在哪里运行,它都可以用于身份验证。