为 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 资源。Google Cloud CLI 和 Google Cloud 都使用 OAuth2 进行身份验证和授权。

选择以下其中一个授权类型:

类型 说明
用户帐号 如果您通过命令行使用 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 仅会向用户帐号授权。 要在不执行其他设置步骤的情况下授予访问权限,请使用以下选项之一。

  • 如果要在带浏览器的机器上授权 gcloud CLI,请按以下步骤操作。

    1. 为 gcloud CLI 授权:

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

  • 如果要在没有浏览器的机器上授权 gcloud CLI,并且您可以在另一台具有浏览器的机器上安装 gcloud CLI,请使用 --no-browser 标志。

    1. 为 gcloud CLI 授权:

      gcloud auth login --no-browser
      
    2. 复制以 gcloud auth login --remote-bootstrap=" 开头的长命令。

    3. 在另一台同时安装了网络浏览器和 gcloud CLI 工具 372.0 或更高版本的本地受信任机器的命令行上粘贴并运行此命令。

    4. 使用网络浏览器复制计算机上的长网址。

    5. 在提示“输入上述命令的输出”下,将长网址粘贴回第一台机器,然后按 Enter 键完成授权。

  • 如果您想在没有浏览器的机器上授权 gcloud CLI,并且无法在另一台具有浏览器的机器上安装 gcloud CLI,请使用 --no-launch-browser 标志。--no-launch-browser 标志可防止该命令自动打开网络浏览器。

    1. 为 gcloud CLI 授权:

      gcloud auth login --no-launch-browser
      
    2. 复制以 https://accounts.google.com/o/oauth2/auth... 开头的长网址

    3. 将此网址粘贴到另一个具有网络浏览器的可信机器的浏览器中。

    4. 使用网络浏览器从计算机中复制授权代码。

    5. 在出现提示时,将授权代码粘贴回第一台机器“输入验证码”,然后按 Enter 键完成授权。

  • 如果您已有访问令牌,请使用以下方法之一将访问令牌传递给 gcloud CLI:

    • 将访问令牌存储在文件中,并通过 --access-token-file 标志设置其路径。
    • 将访问令牌存储在文件中,并在 auth/access_token_file 属性中设置其路径。
    • CLOUDSDK_AUTH_ACCESS_TOKEN 环境变量设置为访问令牌值。

使用服务帐号进行授权

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

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

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

    转到“服务帐号”

  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]

设置应用默认凭据

gcloud CLI 支持使用 gcloud auth application-default 命令组管理应用默认凭据 (ADC)。如需将用户凭据提供给 ADC,请运行 gcloud auth application-default login

gcloud auth application-default login

gcloud CLI 不使用这些凭据。如需了解详情,请参阅如何为 ADC 提供凭据以及应用默认凭据的工作原理

后续步骤