Agent Identity 總覽

Agent Identity 會根據 SPIFFE 標準,為每個代理提供經過嚴格驗證的加密編譯身分。有了代理身分,代理就能安全地向 MCP 伺服器、雲端資源、端點和其他代理進行驗證,代表自己或使用者執行操作。Agent Identity 會使用代理本身的憑證和 Agent Identity 驗證管理工具。您可以使用驗證管理工具建立及管理驗證提供者,也就是用於取得、管理及保護 API 金鑰、OAuth 用戶端 ID、OAuth 用戶端密鑰和委派使用者 OAuth 權杖的特定設定。

與服務帳戶不同,代理身分預設不會由多個工作負載共用、無法模擬,也不允許開發人員產生長期服務帳戶金鑰。為 Google Cloud產生的存取權杖會以加密方式繫結至代理程式的專屬 X.509 憑證,防止權杖遭竊。

Agent Identity 可與 Agent Registry 和 Agent Gateway 搭配使用,協助保護及管理 AI 代理。Agent Identity 會佈建加密編譯身分並管理憑證,Agent Registry 會在環境中建立工具和目的地目錄,Agent Gateway 則會在代理呼叫這些目的地時,強制執行存取政策並檢查網路流量。

下列服務支援代理身分:

驗證模型

為使用各種工具和服務進行驗證,Agent Identity 支援多種驗證模型。代理使用的模式取決於目標資源提供的驗證方式,以及代理是自行執行作業,還是代表使用者執行作業。

權限 驗證方式 目標資源 用途和解決方案
使用者委派授權 OAuth 2.0 (三足式) 外部工具和服務 代理代表特定使用者執行動作 (例如存取使用者的 Jira 工作或 GitHub 存放區)。您可以在 Agent Identity 驗證管理工具中設定三足式 OAuth 驗證供應商,管理使用者同意聲明和權杖。詳情請參閱「使用驗證管理工具透過三足式 OAuth 進行驗證」。
代理本身的權限 雲端式身分 (代理身分) Google Cloud 服務 託管於 Google Cloud 的代理需要使用自己的身分存取其他 Google Cloud 服務時。詳情請參閱「使用代理程式的身分向 Google Cloud 進行驗證」。
雲端式身分 (OIDC ID 權杖) 外部工具和服務 託管於 Google Cloud 的代理需要使用自己的身分和 OpenID Connect (OIDC) 身分聯盟,向外部後端、自訂 API 或第三方雲端平台進行驗證時。詳情請參閱「使用代理程式的身分向外部服務進行驗證」。
OAuth 2.0 (雙足式) 外部工具和服務 建議用於與支援 OAuth 的外部服務進行機器對機器驗證。您可以在 Agent Identity 驗證管理工具中設定 2-legged OAuth 驗證提供者,以處理用戶端憑證和存取權杖。詳情請參閱「使用驗證管理工具透過 2-legged OAuth 進行驗證」。
API 金鑰 外部工具和服務 適用於需要加密編譯金鑰或密碼才能驗證的外部服務。您可以在 Agent Identity 驗證管理工具中設定 API 金鑰驗證提供者,安全地儲存及管理金鑰。詳情請參閱「使用 API 金鑰和驗證管理員進行驗證」。
HTTP 基本驗證 外部工具和服務 使用純文字密碼。我們不建議使用這個方法。您可以儲存密碼,就像儲存 API 金鑰一樣。詳情請參閱「使用 API 金鑰和驗證管理工具進行驗證」。

身分委派架構

為在人類使用者、自主工作負載和外部工具之間強制執行信任邊界,而不依賴服務帳戶模擬,代理身分採用三身分委派架構。這個架構會區分並協調環境中的三種不同身分情境:

  • 使用者身分:發起端使用者的身分,透過標準 OAuth 2.0 或 OpenID Connect (OIDC) 驗證,並使用 Google Identity 或聯合員工身分識別資訊提供者 (IdP)。
  • 代理身分:已部署代理的專屬加密驗證 SPIFFE 身分和自動佈建的 X.509 憑證,代表代理依自身權限執行。
  • 委派身分:代理代表發起的人類使用者,使用 Agent Identity 驗證管理工具代理的範圍 3-legged OAuth (3LO) 憑證時,所具備的合併授權情境。

下圖說明使用者身分、代理身分和委派身分如何在輸入、執行階段和輸出信任邊界之間互動:

身分委派架構圖,對應輸入、執行階段和輸出信任邊界的使用者身分、代理身分和委派身分。

如要進一步瞭解平台如何評估及傳播跨信任邊界的每個身分層,請參閱「身分委派架構」。

核心元件

代理身分包含多個重要元件,可共同提供安全的驗證和授權。

SPIFFE 身分

系統會根據 SPIFFE 標準,為每個代理指派專屬的身分字串,也就是 SPIFFE ID。這個身分經過嚴格認證,與代理的生命週期相關聯,並直接對應至託管代理的資源 URI。

身分格式如下:

spiffe://TRUST_DOMAIN/resources/SERVICE/RESOURCE_PATH

例如:

  • spiffe://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/my-test-agent

在 IAM 允許政策中使用代理身分時,主體 ID 的格式如下:

principal://TRUST_DOMAIN/resources/SERVICE/RESOURCE_PATH

範例:

  • Vertex AI Agent Engine (組織): principal://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/my-test-agent
  • Vertex AI Agent Engine (不屬於任何組織的專案): principal://agents.global.proj-9876543210.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/my-test-agent
  • Gemini Enterprise: principal://agents.global.org-123456789012.system.id.goog/resources/discoveryengine/projects/9876543210/locations/global/collections/default_collection/engines/my-test-agent

ID 格式如下:

  • TRUST_DOMAIN:資源階層的信任網域:
    • 組織中的專案:agents.global.org-ORGANIZATION_ID.system.id.goog
    • 不屬於任何組織的專案:agents.global.proj-PROJECT_NUMBER.system.id.goog
  • SERVICE: Google Cloud 服務的簡稱 (例如 aiplatform 或 discoveryengine)。
  • RESOURCE_PATH:託管代理的資源完整路徑。

由於代理本身就是主體,因此您可以直接將權限授予這個 ID,控管代理可存取的資源。

身分和權限生命週期

您必須管理代理身分的 IAM 繫結。刪除代理不會移除參照其主體的 IAM 繫結。這些繫結會以無效授權的形式保留在政策中,您必須在停用代理時手動移除。

代理的身分衍生自託管代理的資源 ID,例如 reasoningEngines 資源 ID。如果刪除代理程式並部署替代代理程式,即使顯示名稱、程式碼和設定相同,新代理程式也會收到新的資源 ID,因此會收到新的主體 ID。參照先前身分的現有 IAM 繫結不適用於新主體。您必須將必要角色授予新的主體。

代理憑證

代理憑證可提供代理身分的加密證明。系統支援 X.509 憑證、 Google Cloud 存取權杖和 OIDC ID 權杖。系統會自動佈建 X.509 憑證,並在代理程式上管理,以支援更強大的驗證機制。

這些 X.509 憑證會鏈結至 Google 代管的根憑證授權單位 (CA)。您可以在下列端點查看公開預設 CA 憑證:

根據預設,代理身分直接與 Google Cloud API 通訊時,會使用相互傳輸層安全標準 (mTLS) 和 X.509 憑證。代理透過 Agent Gateway 互動時,也會使用 Demonstrating Proof of Possession (DPoP),建立雙重繫結憑證,確保端對端安全防護機制。這種雙重繫結機制,代表代理會使用 mTLS 進行驗證,以第一方身分存取閘道,並使用 DPoP 與閘道以外的服務互動。

Agent Identity 驗證管理工具

Agent Identity 驗證管理工具是集中式憑證保管箱和驗證代理,可簡化代理的傳出工具驗證作業。代理可使用 API 金鑰或 OAuth 用戶端 ID 和密鑰進行驗證,或使用使用者存取權杖,透過 OAuth 委派代表使用者進行驗證。在驗證管理工具中,您可以設定驗證供應商,定義特定第三方應用程式的驗證類型和憑證。

Agent Identity 驗證管理工具的存取權由 IAM 控管,代理會使用自己的代理 SPIFFE ID 向驗證管理工具驗證。所有使用者存取事件也都會歸因於代理的 SPIFFE ID,方便管理。

Agent Identity 驗證管理工具會自動取得 OAuth 憑證,例如開啟對話方塊,讓使用者登入及提供同意聲明。此外,這項服務還能讓您掌握使用者存取權,並撤銷存取權,確保更妥善地管理使用者委派的權限。

詳情請參閱「Agent Identity 驗證管理工具總覽」。

安全性與管理

代理身分與 Google 的政策系統 (例如 IAM、主體存取權邊界 (PAB) 和 VPC Service Controls) 完整整合,可強化安全性和管理。此外,這項服務也與稽核記錄整合,確保責任歸屬明確,並在代理以自身身分或代表使用者執行操作時,提供清楚的稽核記錄。

  • 情境感知存取權:根據預設,Google 代管的情境感知存取權政策會強制執行 mTLS 和 DPoP 權杖繫結,協助保護代理憑證。這種做法可確保繫結憑證的權杖不會在受信任的執行階段環境外重播。
  • IAM 整合:支援標準 IAM 允許政策和拒絕政策。
  • 主體存取邊界 (PAB):主體存取邊界政策會限制代理可存取的資源,無論代理具備哪些其他權限。系統會評估套用至代理身分的主體存取邊界政策,做為傳出 (輸出) 呼叫的一部分。受主體存取邊界政策規範的代理身分,只能存取政策指定的資源,嚴格限制代理只能在指定邊界內運作。
  • VPC Service Controls:支援 perimeter 保護和主體使用:
    • perimeter 保護:您可以將 Agent Identity API (agentidentity.googleapis.com) 和 Agent Identity Credentials API (agentidentitycredentials.googleapis.com) 新增至 service perimeter,控管這些 API 的存取權。如要在 service perimeter 內使用這些 API,用戶端必須透過受限制的 VIP (restricted.googleapis.com) 轉送要求。
    • 輸入和輸出規則:支援在輸入和輸出規則中,使用代理身分做為主體,允許存取受 service perimeter 保護的資源。

代理身分的運作方式

代理身分會透過工作流程驗證及授權代理動作,強化安全性:

  1. 指派身分:部署代理時, Google Cloud會指派專屬的 SPIFFE 身分和 X.509 憑證。每個 X.509 憑證的效期為 24 小時, Google Cloud會自動更新以維護安全性。
  2. 取得憑證:代理取得憑證的方法取決於要存取的內容。以下舉幾個例子說明:
    • 存取 Google Cloud 服務:代理程式要求繫結存取權杖。這個權杖會以加密方式繫結至代理程式的專屬 X.509 憑證,有助於防止權杖遭竊。詳情請參閱「安全性與管理」。
    • 存取外部工具:如要使用自己的身分直接向外部服務進行驗證,代理會要求 OIDC ID 權杖。如要從驗證供應商擷取儲存的憑證 (例如 API 金鑰或 OAuth 權杖),代理會使用 Agent Identity 驗證管理工具,該工具支援使用者委派授權和代理自身授權。

Agent Identity 的優點

代理身分比標準服務帳戶更安全。

  • 高度隔離:與服務帳戶不同,代理身分預設不會由多個工作負載共用、無法模擬,且不允許開發人員產生長期服務帳戶金鑰。
  • 憑證安全:預設的情境感知存取權政策可防止繫結權杖遭到重播,有助於防範權杖遭竊和帳戶入侵。
  • 最小權限做法:為每個代理提供身分,而非共用服務帳戶,避免代理權限過高。
  • 減少阻礙:自動執行複雜的 OAuth 流程,並管理 API 金鑰,簡化工具整合。
  • 提升觀測能力:提供清楚的稽核記錄。當代理人代表使用者執行操作時,記錄會同時顯示代理人和使用者的身分。

限制

  • Cloud Storage 舊版 bucket 角色:您無法將舊版 bucket 角色 (例如 storage.legacyBucketReader) 授予代理身分。

後續步驟