我是一个彻头彻尾的新手,所以原谅可能是一个愚蠢的问题,但当我尝试使用Google Cloud Platform传递我的服务帐户密钥文件的位置时,我收到的消息是:
WARNING: .p12 service account keys are not recomended unless it is necessary for
backwards compatability. Please switch to a newer .json service account key for
this account.
ERROR: (gcloud.auth.activate-service-account) PyOpenSSL is not available. If you
have already installed PyOpenSSL, you will need to enable site packages by sett
ing the environment variable CLOUDSDK_PYTHON_SITEPACKAGES to 1. If that does not
work, see https://developers.google.com/cloud/sdk/crypto for details or consider using .json private key instead.
但是我选择并下载了一个JSON密钥。谁能告诉我发生了什么以及如何解决这个问题?不确定我是否提供足够的信息,所以请询问您是否需要详细信息。谢谢!
答案 0 :(得分:0)
该错误表示您可能正在使用已弃用的p12
格式服务帐户密钥文件(以及无法找到以该格式读取密钥所需的加密库)而不是json
格式。
您可能想要双重确认您下载的密钥文件确实是JSON。验证这一点的一种快捷方法是在某个文本编辑器中打开此文件,如果您在*nix
或OS X
,则可以使用cat
。我已经展示了一个示例json服务帐户密钥文件:
$ cat my-service-account-key.json
{
"type": "service_account",
"project_id": "PROJECT_NAME",
"private_key_id": "YOUR_PRIVATE_KEY_ID",
"private_key": "-----BEGIN PRIVATE KEY-----\nYOUR_PRIVATE_KEY\n-----END PRIVATE KEY-----\n",
"client_email": "SERVICE_ACCOUNT_NAME@PROJECT_NAME.iam.gserviceaccount.com",
"client_id": "CLIENT_ID",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "URL",
}
要激活服务帐户,您必须运行gcloud auth activate-service-account
命令:
gcloud auth activate-service-account --key-file=/path/to/service-account-key.json
答案 1 :(得分:0)
密钥必须必须基于base64进行编码,您可以使用以下bash命令进行操作:
$ cat key_file.json | base64
请在以下位置查看gcloud设置说明:
https://github.com/GoogleCloudPlatform/github-actions/tree/master/setup-gcloud#inputs