为 Cloud SDK 工具授权

如需访问 Google Cloud Platform (GCP),您通常必须为 Google Cloud SDK 工具授权。本页面将演示可用的授权选项,并向您介绍如何管理用于授权的帐号。如果您使用的是 Google Compute Engine 实例或 Google Cloud Shell,则无需为 Cloud SDK 工具授权。

帐号类型

如需向 Cloud SDK 工具授予访问 GCP 的权限,您可以使用用户帐号服务帐号

用户帐号是一个 Google 帐号,它允许最终用户直接向您的应用进行身份验证。在大多数常见用例中,特别是通过命令行以交互方式使用 Cloud SDK 工具时,最佳做法是使用用户帐号。

服务帐号是与您的 GCP 项目关联的 Google 帐号,它并不代表某个特定用户。如需使用服务帐号,可以通过向您的应用提供一个服务帐号密钥。或者,您可以在使用 Google Cloud Functions、Google App Engine、Google Compute Engine 或 Google Kubernetes Engine 时使用可用的内置服务帐号。建议使用服务帐号来为 Cloud SDK 工具编写脚本,以便在多台机器上使用。

选择授权类型

您必须先为 gcloud CLI 和 Cloud SDK 中的其他工具授权,然后才能使用这些工具来管理平台资源。Cloud SDK 和 Cloud Platform 使用 OAuth2 进行身份验证和授权。

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

类型 说明
用户帐号 如果您要通过命令行使用 Cloud SDK 工具,或者您要对 Cloud SDK 工具编写脚本,以便在单台机器上使用,建议您选择此授权类型。
服务帐号 如果您要在生产环境下的机器部署过程中安装和设置 Cloud SDK,或者用于 Google Compute Engine 虚拟机实例(其中所有用户都有 root 访问权限),建议您选择此授权类型。

请参阅 Cloud Platform 授权指南,详细了解授权和 Cloud Platform。

使用用户帐号进行授权

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

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

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

运行 gcloud init

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

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

  1. 运行 gcloud init

    gcloud init
        

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

    gcloud init --console-only
        

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

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

请参阅初始化 Cloud SDK,详细了解此命令和 Cloud SDK 初始化。

运行 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 一样,此命令会在成功完成时将服务帐号凭据保存到本地系统中,并将指定的帐号设置为您的 Cloud SDK 配置中的活跃帐号。

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

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

    转到“服务帐号”页面

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

  3. 点击服务帐号表的选项列中的更多按钮 创建密钥文件,然后选择创建密钥以创建和下载 JSON 格式的密钥文件。

    创建密钥文件

  4. 如有必要,请将密钥文件移至您向 Cloud SDK 工具授权时所使用的同一系统上的某个位置。

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

  5. 运行 gcloud auth activate-service-account

    gcloud auth activate-service-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 标志替换活跃帐号。

撤消帐号的凭据

如果您想禁止已获得某个特定帐号授权的 gcloud CLI 和其他 Cloud SDK 工具的访问权限,可以撤消凭据。您无需撤消凭据即可在帐号之间切换。

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

gcloud auth revoke [ACCOUNT]
    

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

查找凭据文件

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

gcloud info
    

gcloud CLI 可显示您安装的 Cloud SDK 的相关信息。凭据文件存储在用户配置目录中:

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

后续步骤