Google 的驗證方法

這份文件可協助您瞭解一些主要的驗證方法和概念,以及如何尋求實作或排解驗證問題的協助。 驗證文件主要著重於 Google Cloud服務,但驗證用途清單和本頁的介紹資料也包含其他 Google 產品的用途。

簡介

「驗證」是指透過使用某種憑證來確認身分的程序。驗證是指證明您確實是您所聲稱的身份。

Google 提供許多 API 和服務,需要經過驗證才能存取。Google 也提供多項服務,可代管客戶編寫的應用程式;這些應用程式也需要判斷使用者的身分。

我想要... 資訊
在快速模式下向 Vertex AI 進行驗證 (預先發布版)。 請使用登入程序中為您建立的 API 金鑰,向 Vertex AI 進行驗證。詳情請參閱Vertex AI 快速模式總覽
使用高階程式設計語言,從應用程式驗證至 Google Cloud 服務。 設定應用程式預設憑證,然後使用其中一個 Cloud 用戶端程式庫
驗證需要 ID 權杖的應用程式。 取得 OpenID Connect (OIDC) ID 權杖,並在要求中提供該權杖。
為存取 Google 或 Google Cloud 服務和資源的應用程式實作使用者驗證機制。 如要比較選項,請參閱「驗證應用程式使用者」。
在本機開發環境中試用一些 gcloud 指令。 初始化 gcloud CLI
在本機開發環境中試用一些 Google Cloud REST API 要求。 使用 curl 等指令列工具呼叫 REST API
試用產品說明文件中的程式碼片段。 為本機開發環境設定 ADC,並在本機環境中安裝產品的用戶端程式庫。用戶端程式庫會自動尋找憑證
取得其他驗證用途的相關協助。 請參閱「驗證用途」頁面。
查看 Google 在身分與存取權管理領域提供的產品清單。 請參閱「Google 身分與存取權管理產品」頁面。

依據用途選擇合適的驗證方法

當您使用 Google Cloud CLI、Cloud 用戶端程式庫、支援 應用程式預設憑證 (ADC)的工具 (例如 Terraform) 或 REST 要求來存取 Google Cloud 服務時,請參考下列圖表,選擇驗證方法:

根據用途選擇驗證方法的決策樹

這張圖表會引導您回答下列問題:

  1. 您是否在單一使用者開發環境中執行程式碼,例如您自己的工作站、Cloud Shell 或虛擬桌面介面?
    1. 如果是,請繼續進行第 4 題。
    2. 如果沒有,請繼續進行問題 2。
  2. 您是否在 Google Cloud中執行程式碼?
    1. 如果是,請繼續進行第 3 題。
    2. 如果沒有,請繼續進行第 5 題。
  3. 您是否在 Google Kubernetes Engine 中執行容器?
    1. 如果是,請使用 Workload Identity Federation for GKE 將服務帳戶連結至 Kubernetes Pod。
    2. 如果沒有,請將服務帳戶連結至資源。
  4. 您的用途是否需要服務帳戶?

    舉例來說,您想為應用程式在所有環境中一致設定驗證和授權。

    1. 如果不是,請使用使用者憑證進行驗證
    2. 如果是,請 使用使用者憑證模擬服務帳戶
  5. 您的工作負載是否使用支援工作負載身分聯盟的外部識別資訊提供者進行驗證?
    1. 如果是,請 設定 Workload Identity Federation,讓在內部部署或其他雲端服務供應商代管的應用程式使用服務帳戶。
    2. 如果沒有,請建立服務帳戶金鑰

OAuth 2.0

Google API 會實作並擴充 OAuth 2.0 架構。詳情請參閱環境和用途的說明文件。

Google Cloud 服務的授權方法

Google Cloud 服務會使用身分與存取權管理 (IAM) 進行驗證。IAM 提供精細的控管功能,可依身分和資源進行控管。驗證 Google Cloud 服務時,您通常會使用包含所有 Google Cloud 服務的範圍 (https://www.googleapis.com/auth/cloud-platform)。

OAuth 2.0 範圍可提供第二層防護機制,如果程式碼是在需要考量權杖安全性的環境中執行 (例如行動應用程式),這項機制就很實用。在這種情況下,您可以使用更精細的範圍,在權杖遭到入侵時降低風險。您可以在產品說明文件的 API 參考資料頁面中,查看 API 方法接受的範圍清單。

應用程式預設憑證

Application Default Credentials (ADC) 是驗證程式庫用來自動依據應用程式環境尋找憑證的策略。驗證程式庫會將這些憑證提供給 Cloud 用戶端程式庫和 Google API 用戶端程式庫。使用 ADC 時,程式碼可以在開發或實際工作環境中執行,無須變更應用程式驗證 Google Cloud 服務和 API 的方式。

使用 ADC 可簡化開發程序,因為您可以在各種環境中使用相同的驗證碼。不過,如果您在快速模式下使用服務,則不需要使用 ADC。

您必須先向 ADC 提供憑證,才能使用 ADC。憑證的提供方式取決於您要執行程式碼的位置。ADC 會自動找出憑證,並在背景取得權杖,讓驗證碼能在不同環境中執行,無須修改。舉例來說,當您在開發工作站或 Compute Engine 上執行相同版本的程式碼時,該程式碼可以透過Google Cloud API 進行驗證。

您的 gcloud 憑證與您使用 gcloud CLI 提供給 ADC 的憑證不同。詳情請參閱「 gcloud CLI 驗證設定和 ADC 設定」。

術語

討論驗證和授權時,請務必瞭解下列術語。

驗證

驗證是指判斷嘗試存取資源的主體身分的程序。

授權

授權是指判斷嘗試存取資源的主體或應用程式是否已獲得該存取層級的授權。

憑證

本文件使用「使用者帳戶」一詞時,是指 Google 帳戶,或由身分識別資訊提供者管理且與Workforce Identity Federation 建立聯結的使用者帳戶。

在驗證程序中,憑證是提供身分證明的數位物件。密碼、PIN 碼和生物特徵辨識資料都可以用做憑證,視應用程式需求而定。舉例來說,當您登入使用者帳戶時,系統會要求您提供密碼,並滿足任何雙重驗證要求,以證明帳戶確實屬於您,且您並非遭到惡意人士冒用。

權杖不是憑證,這是一種數位物件,可證明呼叫端提供適當的憑證。

您需要提供的憑證類型取決於要驗證的項目。

您可以在Google Cloud 控制台建立下列類型的憑證:

  • API 金鑰

    您可以使用 API 金鑰存取接受 API 金鑰的 API。未繫結至服務帳戶的 API 金鑰會提供專案,用於帳單和配額用途。如果 API 金鑰已繫結至服務帳戶,則 API 金鑰也會提供服務帳戶的身分和授權 (預先發布版)。

    如要進一步瞭解 API 金鑰,請參閱「API 金鑰」一文。如要進一步瞭解與服務帳戶繫結的 API 金鑰,請參閱 Google Cloud 快捷模式常見問題

  • OAuth 用戶端 ID

    OAuth 用戶端 ID 可用於識別要提供給 Google Cloud的應用程式。如要存取使用者擁有的資源,就必須使用這項功能,這也稱為三足式 OAuth (3LO)。如要進一步瞭解如何取得及使用 OAuth 用戶端 ID,請參閱「 設定 OAuth 2.0」。

  • 服務帳戶金鑰

    服務帳戶金鑰可識別主要使用者 (服務帳戶) 和與服務帳戶相關聯的專案。

您也可以使用 gcloud CLI 建立憑證。這些憑證包括以下類型:

主體

主體是可以取得資源存取權的身份。在驗證方面,Google API 支援兩種主體:使用者帳戶服務帳戶

您要使用使用者帳戶還是服務帳戶進行驗證,取決於用途。您可能會在專案的不同階段或不同的開發環境中使用這兩種方式。

使用者帳戶

使用者帳戶代表開發人員、管理員,或任何其他與 Google API 和服務互動的使用者。

使用者帳戶會以 Google 帳戶的形式進行管理,可透過 Google WorkspaceCloud Identity 進行管理。這些使用者帳戶也可以由第三方身分提供者管理,並與Workforce Identity Federation 建立聯合。

您可以使用使用者帳戶,透過下列方式驗證 Google API 和服務:

如要瞭解如何為 Google Cloud中的使用者設定身分,請參閱「使用者身分」。

服務帳戶

服務帳戶是指不代表真人使用者的帳戶。在沒有人為直接介入的情況下,例如應用程式需要存取 Google Cloud 資源,這類服務可用於管理驗證和授權。服務帳戶由 IAM 管理。

下列清單列出幾種使用服務帳戶驗證 Google API 和服務的方法,依安全性高低排序。如需更多資訊,請參閱本頁的「選擇適合用途的驗證方法」。

如要瞭解如何設定 Google Cloud的工作負載身分 (包括服務帳戶),請參閱「工作負載的身分」。如需最佳做法,請參閱「使用服務帳戶的最佳做法」。

權杖

在驗證和授權方面,權杖是數位物件,可顯示呼叫端提供的憑證是否正確,並可用來換取該權杖。權杖包含提出要求的授權主體身分,以及他們獲授權的存取權類型。

您可以將符記想成飯店房鑰匙。辦理飯店入住手續時,只要向飯店櫃台出示適當的證件,即可取得可存取特定飯店資源的房卡。舉例來說,房卡可能會讓你存取房間和訪客電梯,但不會讓你存取任何其他房間或服務電梯。

除了 API 金鑰之外,Google API 不直接支援憑證。您的應用程式必須取得或產生權杖,並將權杖提供給 API。權杖分為幾種類型。詳情請參閱「符記類型」。

工作負載和人力

Google Cloud 身分和存取權產品可讓程式存取和人類使用者存取Google Cloud 服務和資源。 Google Cloud 使用「工作負載」一詞代表程式存取,使用「人力」一詞代表使用者存取。

Workload Identity Federation 可讓您提供地端部署或多雲端工作負載的存取權,不必建立及管理服務帳戶金鑰。

員工身分聯盟可讓您使用外部識別資訊提供者,透過 IAM 驗證並授權員工 (一組使用者,例如員工、合作夥伴和承包商),讓他們存取Google Cloud 服務。

後續步驟