为 gcloud CLI 授权

如需访问 Google Cloud,您通常需要授权 Google Cloud CLI。本页面演示了可用的授权选项,并向您展示了如何管理用于授权的帐号。如果您使用的是 Compute Engine 实例或 Cloud Shell,则无需授权 gcloud CLI。

帐号类型

如需向 gcloud CLI 授予访问 Google Cloud 的权限,您可以使用用户帐号服务帐号

用户帐号是一个 Google Cloud 帐号,供最终用户向您的应用进行身份验证。对于大多数常见用例,最好使用 gcloud CLI 以交互方式使用用户帐号。

服务帐号是与您的 Google Cloud 项目关联的 Google Cloud 帐号,而不是与特定用户关联的帐号。为了让您的应用使用服务帐号,您需要向应用提供服务帐号密钥。或者,您可以在使用 Cloud Functions、App Engine、Compute Engine 或 Google Kubernetes Engine 时使用可用的内置服务帐号。建议使用服务帐号在多台机器上运行 gcloud CLI 脚本。

选择授权类型

您必须授权 Google Cloud CLI 管理 Google Cloud 资源。gcloud CLI 和 Google Cloud 使用 OAuth2 进行身份验证和授权。

选择以下授权类型之一:

Type(类型) 说明
用户帐号 如果您从命令行使用 gcloud CLI 或您要使用 gcloud CLI 编写脚本以便在单台机器上使用,建议采用此方式。
服务帐号 建议在生产环境中的机器部署过程中重新安装和设置 gcloud CLI 时,或者用于所有用户均可访问 root 的 Compute Engine 虚拟机实例上时。

如需详细了解身份验证和 Google Cloud,请参阅身份验证概览

使用用户帐号进行授权

您可以使用以下 gcloud CLI 命令通过用户帐号授予访问权限:

命令 说明
gcloud init 授予访问权限并执行其他常见设置步骤。
gcloud auth login 仅授予访问权限。

在授权期间,这些命令会从 Google Cloud 获取帐号凭据并将其存储在本地系统上。指定的帐号将成为您的配置中的活跃帐号。gcloud CLI 使用存储的凭据访问 Google Cloud。对于单个 gcloud CLI 安装,您可以拥有任意数量的具有存储凭据的帐号,但一次只能有一个帐号处于活跃状态。

运行 gcloud init

gcloud init 可授予访问权限并执行其他常见设置步骤gcloud init 使用基于网络的授权流程来对用户帐号进行身份验证并授予访问权限。

如需授予访问权限并执行其他常见设置步骤,请执行以下操作:

  1. 运行 gcloud init

    gcloud init
    

    或者,为了防止此命令自动打开网络浏览器,请运行以下命令:

    gcloud init --console-only
    

    如果您使用 ssh 在远程系统上运行命令,并且无法访问该系统上的浏览器,那么使用 --console-only 标志很有用。然后,您必须在本地系统的浏览器中手动打开提供的网址以完成授权过程。

  2. 按照基于浏览器的授权流程操作,以便对帐号进行身份验证并授予访问权限。

如需详细了解 gcloud init,请参阅初始化 gcloud CLI

运行 gcloud auth login

运行 gcloud auth login 只会为用户帐号授权。

要在不执行其他设置步骤的情况下授予访问权限,请执行以下操作:

  1. 运行 gcloud auth login

    gcloud auth login
    

    或:

    gcloud auth login --no-launch-browser
    

    您可以使用 --no-launch-browser 标志来防止命令自动打开网络浏览器。然后,您必须在本地系统的浏览器中手动打开提供的网址以完成授权过程。

  2. 按照基于浏览器的授权流程操作,以便对帐号进行身份验证并授予访问权限。

使用服务帐号进行授权

gcloud auth activate-service-account 使用服务帐号授予访问权限。与 gcloud initgcloud auth login 一样,此命令会在成功完成时将服务帐号凭据保存到本地系统中,并将指定的帐号设置为 gcloud CLI 配置中的活跃帐号。

要使用服务帐号进行授权,请按以下步骤操作:

  1. 转到 Google Cloud Console 中的“服务帐号”页面。

    转到“服务帐号”页面

  2. 选择现有帐号或通过点击创建服务帐号来创建新帐号。

  3. 如需创建和下载 JSON 格式的密钥文件,请执行以下操作:

    1. 点击该服务帐号的操作菜单 “更多”按钮,然后选择管理密钥
    2. 点击添加键下拉菜单。
    3. 点击创建新密钥
    4. 选择一种密钥格式,然后点击创建
  4. 如有必要,请将密钥文件移动到您授权 gcloud CLI 的同一系统上的某个位置。

    或者,您可以使用 gcloud iam service-accounts keys create 为现有服务帐号获取密钥,而不是执行第 1-4 步。

  5. 如需激活您的服务帐号,请运行 gcloud auth activate-service-account

    gcloud auth activate-service-account [ACCOUNT] --key-file=[KEY_FILE]
    
  6. 从系统中删除密钥文件。请注意,gcloud CLI 会存储密钥,并且密钥的 gcloud CLI 副本仍然存在。

列出帐号

如需列出其凭据存储在本地系统上的帐号,请运行 gcloud auth list

gcloud auth list

gcloud CLI 会列出帐号并显示哪个帐号处于有效状态:

Credentialed accounts:
 - user-1@gmail.com (active)
 - user-2@gmail.com

切换活跃帐号

如需切换活跃帐号,请运行 gcloud config set

gcloud config set account [ACCOUNT]

其中,[ACCOUNT] 是该帐号的完整电子邮件地址。

您还可以通过创建单独的配置来指定不同的帐号来切换帐号,并在配置之间切换:

gcloud config configurations activate [CONFIGURATION]

如果您想要在每次调用时切换 gcloud CLI 使用的帐号,请使用 --account 标志替换活跃帐号。

设置已获授权的会话时长(仅限 Google Workspace)

作为管理员,您可以控制不同用户可在多长时间内重新进行身份验证,而无需gcloud CLI。例如,您可以强制具有较高权限的用户重新进行身份验证的频率高于普通用户。

如需了解详情,请参阅为 Google Cloud 服务设置会话时长

撤消帐号的凭据

如果您想禁止特定帐号的 gcloud CLI 访问,则可以撤消凭据。您无需撤消凭据即可在帐号之间切换。

如需撤消凭据,请运行 gcloud auth revoke

gcloud auth revoke [ACCOUNT]

如需撤消所有机器对 gcloud CLI 的所有访问权限,请从有权访问您帐号的应用列表中移除 gcloud CLI

查找凭据文件

如需查找凭据文件的位置,请运行 gcloud info

gcloud info

gcloud CLI 将输出有关您安装的信息。凭据文件存储在用户配置目录中:

User Config Directory: [/home/username/.config/gcloud]

后续步骤