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

时间:2019-11-30 07:40:57

标签: google-cloud-platform google-compute-engine google-iam

我想使用服务帐户来远程管理GCE上的VM实例。它不起作用。因此这个问题。经过数小时的尝试错误后,我发现服务帐户和用户帐户之间的区别是,似乎没有办法使用服务帐户ssh进入VM实例。

其他区别是什么?

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

  1. https://groups.google.com/forum/#!topic/gce-discussion/Z6OMpVhvowQ
  2. Logging into google compute engine with a service account

2 个答案:

答案 0 :(得分:3)

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

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

您可以参阅Google文档here了解更多详细信息:

答案 1 :(得分:0)

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

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

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

除通过Google Cloud Console或Google Cloud SDK工具和CLI之外,Google不想使用用户凭据来访问Google Cloud资源。这是一个安全问题和设计。否则,除了不能将某些特权分配给某些凭证类型之外,使用和行为几乎相同。