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

Google cloud platform GCP服务帐户和用户帐户之间有什么区别?,google-cloud-platform,google-compute-engine,google-iam,Google Cloud Platform,Google Compute Engine,Google Iam,我想使用服务帐户远程管理GCE上的VM实例。它不起作用。所以这个问题。经过数小时的试错后,我发现服务帐户和用户帐户之间的一个区别是,似乎没有办法使用服务帐户将ssh连接到VM实例 其他的区别是什么 我找到了与我的问题相关的链接: 按照设计,谷歌的服务账户是面向非人类用户的。它们是您的google项目中的资源使用的一种帐户(即计算引擎服务帐户、应用引擎服务帐户等) 服务账户设计为一种账户类型,您的谷歌云资源使用该账户与其他谷歌云服务进行通信,即GCE到应用程序引擎到云功能或应用程序引擎到谷歌A

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

其他的区别是什么

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


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

    服务账户设计为一种账户类型,您的谷歌云资源使用该账户与其他谷歌云服务进行通信,即GCE到应用程序引擎到云功能或应用程序引擎到谷歌API,如:vision API、speech to text…,或应用程序引擎到云SQL等


    您可以参考谷歌文档了解更多详细信息:

    公认的答案是正确的,但对谷歌云中的凭据缺乏更深入的了解

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

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


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

    关于使用服务帐户的ssh的另一个参考:。使用用户帐户,您可以使用gcloud连接具有私有或公共IP的VM。但是有了服务帐户,我不知道如何在没有公共IP的情况下连接虚拟机。我想用谷歌的话来说,我所问的用户帐户可能是谷歌帐户()谁可以登录。我可能无意中发现了一个区别:服务帐户不能有角色/iap.tunnelResourceAccessor。感谢@James Ching提供的提供比较的链接。在Google的设计中,通过隧道ssh是一项管理工作,只能通过用户凭据来完成。@JerryL-对于您的示例,正确。然而,这是谷歌的强制执行,与凭证的实际内容无关。无论是否使用服务帐户,我都会创建SSH隧道。这就是为什么我发布了一个额外的答案。有很多细节需要了解。嗨@John Hanley,您是否使用
    gcloud compute ssh
    进行服务帐户的隧道挖掘?我对
    --隧道通过iap
    的测试导致我说,没有iap对服务帐户的支持。您是否使用第三方工具使用服务帐户设置了tunnel?我自己的工具是用Go/Python编写的。我认为这是解决这个问题的最佳答案+1.您能提供一些链接,让我们可以阅读更多关于用户、服务帐户、组和域帐户之间差异的信息吗?