GCP 服务帐户和用户帐户之间有什么区别?

What are the differences between GCP service accounts and user accounts?

我想使用服务帐户远程管理 GCE 上的 VM 实例。它不起作用。所以这个问题。经过数小时的试错,我发现服务帐户和用户帐户之间的一个区别是,似乎没有办法使用服务帐户通过 ssh 连接到 VM 实例。

还有哪些区别?

我找到的与我的问题相关的链接:

  1. https://groups.google.com/forum/#!topic/gce-discussion/Z6OMpVhvowQ

根据设计,Google 中的服务帐户专供非人类用户使用。它们是您的 google 项目中资源使用的一种帐户(即计算引擎服务帐户、应用引擎服务帐户等)。

服务帐户被设计为您的 Google 云资源用来与其他 Google 云服务通信的一种帐户类型,即 GCE 到 App Engine 到 Cloud Function 或 App Engine 到 google APIS 喜欢:视觉 API、语音到文本...) 或 App Engine 到云端 SQL,等等

您可以参考 google 文档 here 了解更多详情:

已接受的答案是正确的,但对 Google 云中的凭据缺乏更深入的了解。

凭证有多种类型。用户、服务帐户、组、域等。区别在于凭据代表什么以及这些凭据的 authority 是什么。在内部,它们在结构、内容等方面是相同的。

所有凭据类型都是 OAuth 2 凭据。用户帐户凭据是由 Google 帐户、G Suite 或身份服务器颁发的凭据。没有 Google,您或您的软件无法创建这些凭据。这些凭据由 Google 颁发。另一方面,服务帐户可以创建自己的凭据,因为服务帐户包含用于签署凭据的 private key。私钥用于创建签名的 JWT,然后将其交换为 OAuth 访问令牌、刷新令牌和身份令牌。服务帐户只是一种 OAuth 凭据。

Google 不希望用户凭据用于访问 Google 云资源,除非通过 Google 云控制台或 Google 云 SDK 工具和 CLI。这是一个安全问题和设计。否则,使用和行为几乎相同,只是某些权限不能分配给某些凭据类型。