[英]How can I get a Kubernetes clientset in GO using a JSON service account key?
[英]Can't get Google Cloud Platform to recognize JSON service account key file. Error: PyOpenSSL is not available. Suggests JSON but I'm using a JSON key
我是一個完全的新手所以請原諒這個愚蠢的問題,但是當我嘗試使用 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 密鑰。 誰能告訴我發生了什么以及如何解決這個問題? 不確定我是否提供了足夠的信息,所以請詢問您是否需要詳細信息。 謝謝!
該錯誤表明您可能正在使用已棄用的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
密鑰必須基於 base64 編碼,您可以使用以下 bash 命令進行編碼:
$ cat key_file.json | base64
請查看 gcloud 設置說明: https ://github.com/GoogleCloudPlatform/github-actions/tree/master/setup-gcloud#inputs
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.