使用 GCP 時,都要登入雲端才能獲得授權。 gcloud CLI 提供了兩個方式:

  • User account authorization
  • Service account authorization

這邊使用 User account authorization :

gcloud auth login

gcloud auth application-default login

gcloud init

以上三步,來產生 credential 在本地端。

官網上的簡介:

gcloud auth application-default login

獲取新的 user credential,預設是用於應用程式的 credential。

gcloud auth login :

認證 Cloud SDK ,只授權 gcloud 這個 CLI 工具權限,讓它可以使用 user credential 訪問 GCP。


取得 access token

在Cloud Shell中,由於內建所安裝的 Cloud SDK 已經載入了使用者的權限,因此可以方便的呼叫相關的SDK與取得Token

gcloud auth print-access-token

gcloud auth application-default print-access-token

我們可以選定一個所要呼叫的 Google API 進行呼叫,需要在 Header 處加上 Authorization 的 Bearer token ,即是上面取得的 access token

# 例如使用Big Query
curl -H "Authorization:Bearer xxxxxxxxxxxx" https://www.googleapis.com/bigquery/v2/projects/.....

以上,如果要測試 Google 的 API ,透過這個方式還滿方便。

gcloud auth print-access-token 和 gcloud auth application-default print-access-token 都是用來列印出使用者的授權 Token,但是兩者的用途略有不同。

簡單來說:

  • gcloud auth print-access-token 是用來執行 gcloud CLI 相關的操作
  • gcloud auth application-default print-access-token 則是用來調用 Google Cloud APIs。