gcloud CLI 和 p12 服務帳戶金鑰

開發人員可透過 gcloud CLI 使用私密金鑰,向服務帳戶 (又稱機器人帳戶) 進行驗證。本頁面說明如何建立及使用服務帳戶的 p12 金鑰,以存取 Google Cloud。

安裝 pyca/cryptography

pyca/cryptography 程式庫 (版本 >= 2.5) 允許 gcloud CLI 解碼識別服務帳戶的 p12 格式金鑰檔案。因為 pyca/cryptography 包含編譯金鑰圖形化的常式,因此不會與 gcloud CLI 一起發布。

如果您的系統已安裝 pip (Python Package Index 的指令列介面),請執行以下指令來安裝 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

返回頁首