開發人員可透過 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