本文件和「權杖類型」文件涵蓋 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。
用戶端無法自行核發權杖,而是必須與授權伺服器搭配運作,才能執行下列操作:
驗證使用者。
驗證用戶端。
授權用戶端代表使用者執行動作。
向用戶端核發權杖。
使用者登入 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,用戶端必須與授權伺服器合作,完成下列事項:
驗證用戶端。
授權用戶端。
向用戶端核發權杖。
經過驗證的工作負載也稱為主體,但工作負載使用的主體 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 Connect 和 OAuth 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 授權伺服器。
後續步驟
瞭解權杖類型。