gcloud CLI 和 p12 服务账号密钥

借助 gcloud CLI,开发者可以使用私钥对服务帐号(也称为机器人帐号)进行身份验证。本页面介绍如何创建和使用 Google Cloud 服务账号的 p12 密钥。

安装 pyca/cryptography

pyca/cryptography 库(版本不低于 2.5)允许 gcloud CLI 解码用于标识服务帐号的 p12 格式的密钥文件。由于 pyca/cryptography 包含加密例程,因此不会随 gcloud CLI 一起分发。

如果您的系统安装了 pipPython 软件包索引 的命令行界面),请运行以下命令来安装 pyca/cryptography。如需了解详情,请参阅安装说明

python -m pip install cryptography

CLOUDSDK_PYTHON_SITEPACKAGES=1

安装 pyca/cryptography 之后,您需要将 CLOUDSDK_PYTHON_SITEPACKAGES 环境变量设置为 1。此环境变量设置会指示 gcloud CLI 在自己的 google-cloud-sdk/lib 目录之外查找要包含的库。您通常可以放心地设置 CLOUDSDK_PYTHON_SITEPACKAGES=1,但如果某些功能停止运行,您可能需要撤消此设置。

创建服务账号

如需创建新的服务账号并下载 p12 密钥文件,请按照创建服务账号密钥中的步骤操作。

此密钥文件应被视为机密文件,您应该采取预防措施来确保该文件不被不受信任的各方访问。在类似 Unix 的系统上,通过使用以下命令,您可以确保其他远程连接的用户(root 用户除外)无法看到该文件。

chmod 0600 YOUR_KEY_FILE.p12

将您的服务账号用于 gcloud CLI

您可以使用 gcloud auth activate-service-account 启用服务账号凭据。

如需将服务帐号与 gcloud CLI 搭配使用,请运行 gcloud auth activate-service-account 并向其传递包含所需 --key-file 标志的密钥文件的路径,并为其提供帐号作为位置参数。

您使用的帐号应该是 Google Cloud 控制台中列出的服务帐号对应的电子邮件地址,但它不会经过验证;它仅帮助您记住您使用的帐号。

gcloud auth activate-service-account --key-file ~/mykeys/my_key_file.p12 my_service_account@developer.gserviceaccount.com
Activated service account credentials for my_service_account@developer.gserviceaccount.com.

警告gcloud auth activate-service-account 将复制您的私钥并将该副本存储在 $HOME/.config/gcloud/legacy_credentials/my_service_account@developer.gserviceaccount.com/private_key.p12$HOME/.config/gcloud/credentials.db 中。系统将使用 0600 权限(仅适用于您自己的用户的读取/写入权限)创建此文件,存储在 $HOME/.config/gcloud 中的所有内容都应被视为机密。如需可靠且自信地删除 gcloud CLI 存储的任何身份验证数据,您只需删除 $HOME/.config/gcloud。用户负责安全管理从 Google Cloud 控制台下载的密钥文件。如有疑问,请在 Google Cloud 控制台中撤消密钥。

现在该服务账号已被激活,您可以在凭据列表中看到它。

gcloud auth list
        Credentialed Accounts
ACTIVE    ACCOUNT
*         my_service_account@developer.gserviceaccount.com

To set the active account, run:
    $ gcloud config set account my_service_account@developer.gserviceaccount.com

返回页首