權杖總覽

本文件和「權杖類型」文件涵蓋 Google Cloud 用於驗證和授權的多個權杖。這些範例適用於想瞭解權杖式驗證運作方式,或想實作驗證機制但不使用 Cloud Client Libraries 的使用者。

使用 Cloud 用戶端程式庫、 Google Cloud 控制台或 Google Cloud CLI 與 Google CloudAPI 互動時,您不需要瞭解這項資訊,系統會自動為您選取正確的權杖類型,並取得及重新整理這些權杖。

使用者驗證

當真人使用者與 Google Cloud互動時,不會直接與Google Cloud API 互動。而是使用用戶端代表他們執行動作。 他們使用的用戶端可能是網頁應用程式、桌面應用程式,或是 Google Cloud CLI 或 curl 等公用程式。

由於要求是由用戶端提出,而非使用者,因此 Google Cloud 無法直接向使用者要求身分資訊,以檢查他們是否有權使用 API。而是透過用戶端以權杖形式傳遞給 API,且每項 API 要求都會包含這個權杖。

使用者驗證權杖會編碼下列資訊:

  • 使用者的身分。

  • 用戶端的 ID。

  • 確保用戶端可代表使用者執行動作。

驗證使用者和授權用戶端涉及下列各方:

  • 使用者。

  • 代表使用者執行的用戶端。

  • 授權伺服器,Google API 會透過這個伺服器驗證用戶端。

  • 用戶端互動的 Google Cloud API。

用戶端無法自行核發權杖,而是必須與授權伺服器搭配運作,才能執行下列操作:

  1. 驗證使用者。

  2. 驗證用戶端。

  3. 授權用戶端代表使用者執行動作。

  4. 向用戶端核發權杖。

使用者透過用戶端驗證的關係圖

使用者登入 Google 帳戶進行驗證後,即為使用者主體。主體具有類似下列格式的主體 ID

user:alex@example.com

使用員工身分聯盟和外部身分識別提供者驗證身分的使用者,是員工身分集區主體。主體的主體 ID 類似於下列 ID:

principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/raha@altostrat.com

工作負載驗證

部分用戶端需要代表自己與 Google API 互動。舉例來說,排定的工作可能需要從 BigQuery 或 Cloud Storage 讀取資料,而不需要任何使用者介入。

自行代表無人值守的用戶端執行的動作稱為工作負載。與使用者驗證不同,工作負載驗證會將使用者驗證和用戶端授權合併為單一步驟。因此,工作負載驗證權杖只會編碼用戶端的 ID。

工作負載驗證和授權涉及下列各方:

  • 工作負載會同時做為用戶端和使用者,並代表自己。

  • 授權伺服器,Google API 會透過這個伺服器驗證用戶端。

  • 用戶端互動的 Google Cloud API。

如要存取 Google Cloud API,用戶端必須與授權伺服器合作,完成下列事項:

  1. 驗證用戶端。

  2. 授權用戶端。

  3. 向用戶端核發權杖。

工作負載透過用戶端驗證的關係圖

經過驗證的工作負載也稱為主體,但工作負載使用的主體 ID 與使用者不同。

使用服務帳戶驗證的工作負載是服務帳戶主體。主體的主體 ID 類似於下列 ID:

serviceAccount:my-service-account@my-project.iam.gserviceaccount.com

使用 Workload Identity 聯盟驗證的工作負載是工作負載身分識別集區主體。主體具有類似下列的主體 ID:

principal://iam.googleapis.com/projects/PROJECT_NAME/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE

授權伺服器

Google Cloud 與其他 Google 服務共用特定驗證和授權設施。共用設施包括「使用 Google 帳戶登入」,以及 Google Identity 提供的 OpenID ConnectOAuth 2.0 服務。

其他與驗證相關的服務 (例如 Workload Identity Federation 和 Workforce Identity Federation) 僅適用於 Google Cloud ,無法用於其他 Google 服務。

因此 Google Cloud 使用兩個授權伺服器。一個是與其他 Google 服務共用,另一個則專屬於 Google Cloud。下表說明不同伺服器及其屬性。

授權伺服器 驗證類型 驗證 API 主體
Google 授權伺服器
  • 使用者驗證
  • 工作負載驗證
Google Cloud Identity and Access Management (IAM) 授權伺服器
  • 使用者驗證
  • 工作負載驗證

授權伺服器是全球服務,可從任何Google Cloud 區域存取。不過,並非所有區域都同時部署授權伺服器:

  • Google 授權伺服器僅在特定區域提供。

  • Google Cloud IAM 授權伺服器適用於所有區域。

為提升可靠性,請盡可能使用 Google Cloud IAM 授權伺服器。

後續步驟

瞭解權杖類型