gcloud auth revoke 实际上做什么?

gcloud auth revoke 实际上做什么?

我正在尝试使用服务帐户允许 Web 应用使用“gsutil cp”定期将文件上传到 Cloud Storage。在 Web 服务器上安装 gcloud 实用程序期间,我运行了 gcloud init 并使用我的主要 Google 帐户(项目所有者)登录。之后,我成功地使用我的服务帐户进行了认证,因此这部分工作没问题。

但现在只需切换到我的主帐户就很简单了(“gcloud auth list”显示它,“gcloud config set account ...”让我可以轻松切换到它而无需进一步身份验证),出于安全原因,我想避免有人闯入该服务器后能够做到这一点的可能性。但“gcloud auth revoke”让我有点害怕 - 在文档中,它指出当给定一个用户帐户时,它会撤销服务器上的用户帐户令牌,然后从本地计算机中删除凭据。

这会撤销我在其他机器上访问我的主帐户的权限吗?删除服务器上的用户帐户令牌的想法意味着它可能不仅仅是从该机器简单地“注销”,而是撤销用户帐户的一般权限。我最不想做的事情就是以某种方式禁用作为项目所有者的用户帐户;我只想禁止我登录的一台特定机器这样做。对我来说,这可能意味着只从本地机器上删除凭据,而不是像文档建议的那样撤销服务器上的用户帐户令牌。除非服务器上存储了多个令牌 - 我登录的每台计算机都有一个令牌,并且从一台机器注销不会撤销我对登录到同一帐户的其他计算机的权限。

感谢澄清!

答案1

这会撤销我在其他机器上访问主帐户的权限吗?

答案是不会。运行该命令gcloud auth revoke不会撤销您对项目的访问权限,也不会撤销您有权访问的其他计算机上的主帐户的访问权限。

就像声明的那样这里此命令将撤销服务器上的用户帐户令牌。如果撤销成功,或者令牌已被撤销,则此命令将从本地计算机中删除凭据。

我尝试撤销我作为项目所有者的帐户的访问权限,我可以确认我有权访问 Google Cloud Console 以及命令:gcloud auth login。如上所述这里它通过基于 Web 的授权流程获取您的用户帐户的访问凭据。当此命令成功完成时,它会将当前配置中的活动帐户设置为指定的帐户。如果不存在配置,它会创建一个名为 default 的配置。

我理解您对使用 的担忧gcloud auth revoke,但是当您想阻止 gcloud 和其他 Cloud SDK 工具使用指定​​帐户时,会使用该命令。

除非服务器上存储了多个令牌 - 我登录的每台计算机都有一个令牌,并且从一台机器注销并不会撤销我对登录同一帐户的其他计算机的特权。

我无法确认服务器中是否存储了您用于登录的每台计算机的多个令牌。就命令而言,运行它将导致命令从运行它的机器中删除凭据。如果您尝试从 Cloud Shell 运行命令,您将能够这样做,因为存储在 Cloud Shell 或 GCE 实例中的凭据不会从机器中删除,除非您指定它运行命令。

我希望它有帮助。

相关内容