借助 gcloud CLI,开发者可以使用私钥对服务帐号(也称为机器人帐号)进行身份验证。本页面介绍如何创建和使用 Google Cloud 服务账号的 p12 密钥。
安装 pyca/cryptography
pyca/cryptography 库(版本不低于 2.5
)允许 gcloud CLI 解码用于标识服务帐号的 p12 格式的密钥文件。由于 pyca/cryptography 包含加密例程,因此不会随 gcloud CLI 一起分发。
如果您的系统安装了 pip
(Python 软件包索引 的命令行界面),请运行以下命令来安装 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