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