为了访问 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,或者用于 Compute Engine 虚拟机实例(所有用户都有权访问 root )时,建议使用此选项。 |
如需详细了解身份验证和 Google Cloud,请参阅身份验证概览。
使用用户帐号进行授权
您可以使用以下 gcloud CLI 命令授予使用用户帐号的访问权限:
命令 | 说明 |
---|---|
gcloud init
|
授予访问权限并执行其他常见的设置步骤。 |
gcloud auth login
|
仅授予访问权限。 |
在授权期间,这些命令会从 Google Cloud 获取帐号凭据并将其存储在本地系统上。指定帐号将成为配置中的有效帐号。 gcloud CLI 会使用存储的凭据来访问 Google Cloud。对于单个 gcloud CLI 安装,您可以拥有任意数量的具有存储凭据的帐号,但一次只能有一个帐号处于活跃状态。
运行 gcloud init
gcloud init
会授予访问权限并执行其他常见设置步骤。gcloud init
使用基于网络的授权流程对用户帐号进行身份验证并授予访问权限。
要授予访问权限并执行其他常见的设置步骤,请按以下步骤操作:
运行
gcloud init
:gcloud init
或者,为了防止此命令自动打开网络浏览器,请运行以下命令:
gcloud init --console-only
如果您是使用
ssh
在远程系统上运行该命令,并且无权访问该系统上的浏览器,那么--console-only
标志会非常有用。然后,您必须在本地系统的浏览器中手动打开提供的网址以完成授权过程。按照基于浏览器的授权流程操作,以便对帐号进行身份验证并授予访问权限。
如需详细了解 gcloud init
,请参阅初始化 gcloud CLI。
运行 gcloud auth login
运行 gcloud auth login
仅会授权用户帐号。
如需在不执行其他设置步骤的情况下授予访问权限,请使用以下选项之一。
如果您要在装有浏览器的机器上向 gcloud CLI 授权,请按以下步骤操作。
向 gcloud CLI 授权:
gcloud auth login
按照基于浏览器的授权流程操作,以便对帐号进行身份验证并授予访问权限。
如果要在没有浏览器的设备上授权 gcloud CLI,并且您可以在安装了浏览器的其他机器上安装 gcloud CLI,请使用
--no-browser
标志。向 gcloud CLI 授权:
gcloud auth login --no-browser
复制以
gcloud auth login --remote-bootstrap="
开头的长命令。将此命令粘贴到其他可信计算机的命令行并运行该本地计算机,并同时安装网络浏览器和 gcloud CLI 工具版本 372.0 或更高版本。
使用网络浏览器复制计算机输出的长网址。
在提示“输入上述命令的输出”下,将长网址粘贴回第一个机器,然后按 Enter 键完成授权。
如果要在没有浏览器的机器上授权 gcloud CLI,而不能在另一个带浏览器的机器上安装 gcloud CLI,请使用
--no-launch-browser
标志。--no-launch-browser
标志可防止该命令自动打开网络浏览器。向 gcloud CLI 授权:
gcloud auth login --no-launch-browser
复制以
https://accounts.google.com/o/oauth2/auth...
开头的长网址将此网址粘贴到其他具有网络浏览器的可信机器的浏览器中。
使用网络浏览器从计算机中复制授权代码。
在提示符“Enter verification code”时将授权代码粘贴回第一台机器,然后按 Enter 键完成授权。
如果您已有访问令牌,请使用以下任一方法将访问令牌传递给 gcloud CLI:
- 将访问令牌存储在文件中,并通过 --access-token-file 标志设置其路径。
- 将访问令牌存储在文件中,并在 auth/access_token_file 属性中设置其路径。
- 将
CLOUDSDK_AUTH_ACCESS_TOKEN
环境变量设置为访问令牌值。
使用服务帐号授权
gcloud auth login
命令可以使用存储在本地文件系统上的凭据文件,通过服务帐号授予访问权限。此凭据可以是工作负载身份联合的凭据配置文件,也可以是服务帐号密钥。
使用工作负载身份联合授权服务帐号
如需使用服务帐号身份外部外部凭据提供的服务帐号向 gcloud CLI 授权,请执行以下操作:
在 Google Cloud 控制台中,转到“服务帐号”页面。
选择现有帐号,或点击创建服务帐号来创建一个新帐号。
按照受支持身份提供方的说明,为工作负载身份联合创建凭据配置文件。
如需激活您的服务帐号,请运行带有
--cred-file
标志的gcloud auth login
:gcloud auth login --cred-file=CONFIGURATION_FILE
将 CONFIGURATION_FILE 替换为工作负载身份联合的凭据配置文件的路径。
使用服务帐号密钥向服务帐号授权
如需使用服务帐号密钥向 gcloud CLI 授权,请执行以下操作:
在 Google Cloud 控制台中,转到“服务帐号”页面。
选择现有帐号,或点击创建服务帐号来创建一个新帐号。
如需创建服务帐号密钥,请参阅创建服务帐号密钥的 IAM 说明。
如需激活您的服务帐号,请运行带有
--cred-file
标志的gcloud auth login
:gcloud auth login --cred-file=KEY_FILE
将 KEY_FILE 替换为服务帐号密钥文件的路径。
列出帐号
如需列出其凭据存储在本地系统上的帐号,请运行 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 多长时间后必须重新进行身份验证。例如,您可以强制要求具有较高权限的用户重新验证用户的频率,而不高于常规用户。
如需了解详情,请参阅为 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 提供凭据以及应用默认凭据的工作原理。
后续步骤
- 如需详细了解身份验证和 Google Cloud,请参阅身份验证概览。
- 如需详细了解如何自定义 gcloud CLI,请参阅 gcloud CLI 属性。
- 如需详细了解如何管理已命名的 gcloud CLI 属性集,请参阅 gcloud CLI 配置。