gcloud CLI 和 p12 服务账号密钥

gcloud CLI 允许开发者使用私钥来对服务 账号(也称为机器人账号)进行身份验证。本页面介绍如何创建和使用 服务账号的 Google Cloudp12 密钥。

安装 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 的系统上,通过使用以下命令,您可以确保其他远程连接的用户(根用户除外)无法看到该文件。

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

返回页首