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

Jer*_*ryL 4 google-compute-engine google-cloud-platform google-iam

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

其他区别是什么?

我发现与我的问题相关的链接:

  1. https://groups.google.com/forum/#!topic/gce-discussion/Z6OMpVhvowQ
  2. 使用服务帐户登录谷歌计算引擎

Joh*_*ley 8

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

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

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

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


Jam*_*ing 6

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

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

您可以在此处参考谷歌文档了解更多详情:

  • 我可能无意中发现了一个区别:服务帐户不能拥有 Roles/iap.tunnelResourceAccessor。 (2认同)