本文說明如何搭配使用工作負載身分聯盟與驗證程式庫 (又稱驗證程式庫),驗證來自第三方身分識別提供者 (例如 AWS、Microsoft Azure,以及支援 OpenID Connect (OIDC) 或 SAML 2.0 的提供者) 的工作負載。 Google Cloud
Workload Identity 聯盟可讓在外部執行的應用程式 Google Cloud存取 Google Cloud 資源,不必使用服務帳戶金鑰。Google 驗證程式庫會將外部憑證換成短期 Google Cloud 存取權杖,藉此啟用這項功能。
如要進行驗證,可以使用下列方法取得外部憑證:
事前準備
Enable the required APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.使用身分識別提供者設定 Workload Identity Federation。
使用標準憑證機制進行驗證
對於常見的支援第三方識別資訊提供者,您可以透過Google Cloud 驗證程式庫的內建功能產生憑證設定檔,驗證工作負載。這個檔案提供驗證程式庫的必要資訊,可從外部供應商聯合身分。
憑證設定檔 (通常是使用 GOOGLE_APPLICATION_CREDENTIALS 環境變數載入) 可指示驗證程式庫使用下列其中一種方法取得第三方主體權杖:
- 檔案來源:程式庫會從本機檔案讀取主體權杖。 必須透過其他程序確保這個檔案包含有效且未過期的權杖。
- 以網址為來源:程式庫會向指定的本機網址端點發出要求,擷取主體權杖。
- 可執行檔來源:程式庫會執行已設定的可執行檔指令。 可執行檔的標準輸出內容應包含主體權杖。
為特定供應商產生憑證設定檔:
使用憑證設定檔進行驗證。
如要讓用戶端程式庫自動找出並使用憑證設定檔,請將
GOOGLE_APPLICATION_CREDENTIALS環境變數設為產生的 JSON 檔案路徑。 Google Cloud在殼層中匯出環境變數:
bash export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/config.json設定環境變數後,用戶端程式庫就會處理驗證流程。
以下程式碼範例說明如何對 Google Cloud API 進行已驗證的呼叫:
Node.js
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Node.js API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Python API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Java API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Go API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
使用自訂憑證供應商進行驗證
如果您的環境不支援 Google 驗證程式庫的內建功能,或是想實作自訂邏輯,將憑證提供給 Google 驗證程式庫,請使用自訂憑證供應商驗證工作負載。
從 AWS 存取資源
初始化驗證用戶端時,請提供憑證供應商的自訂實作項目。用戶端執行個體會將 AWS 安全性憑證的擷取作業延後至供應商,以換取 Google Cloud 存取權杖。用戶端呼叫供應商時,供應商必須傳回有效且未過期的憑證。
驗證用戶端不會快取傳回的 AWS 安全性憑證或區域,因此請在供應商中實作快取,避免對相同資源提出多餘的要求。
下列程式碼範例說明如何使用自訂憑證供應商,設定從 AWS 存取 Google Cloud資源的權限。
Node.js
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Node.js API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Python API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Java API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
從 OIDC 和 SAML 存取資源
初始化驗證用戶端時,請提供自訂權杖供應商,以提供可交換 Google Cloud 存取權杖的主體權杖。當用戶端呼叫供應商時,供應商必須傳回有效且未過期的主體權杖。
驗證用戶端不會快取傳回的權杖,因此請在供應商中實作快取,避免對相同主體權杖發出多餘要求。
下列程式碼範例說明如何使用自訂憑證供應商,從支援 OpenID Connect (OIDC) 或 SAML 2.0 的供應商設定資源存取權。 Google Cloud
Node.js
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Node.js API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Python API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Java API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
後續步驟
- 進一步瞭解 Workload Identity Federation。