Agent Identity 總覽

Agent Identity 會根據 SPIFFE 標準,為每個代理提供經過嚴格認證的加密身分。有了 Agent Identity,您的代理就能安全地向 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 與 Agent Gateway 和 Gemini Enterprise 搭配使用時,授權管理員會加密使用者憑證 (例如 Gemini Enterprise 連接器佈建的憑證),並在閘道解密,確保代理絕不會存取原始憑證。

下列服務支援 Agent Identity:

驗證模式

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

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

核心元件

Agent Identity 包含多個重要元件,共同提供安全無虞的驗證和授權。

以 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 憑證、存取權杖和 OIDC ID 權杖。 Google Cloud 系統會在代理程式上自動佈建及管理 X.509 憑證,以支援更強大的驗證機制。

根據預設,代理程式身分在直接與 Google Cloud API 通訊時,會使用相互傳輸層安全標準 (mTLS) 和 X.509 憑證。代理透過 Agent Gateway 互動時,也會使用擁有權證明 (DPoP),為端對端安全防護建立雙重繫結憑證。雙重繫結代表代理程式會使用 mTLS 驗證閘道的第一方存取權,並使用 DPoP 進行閘道以外的互動。

Agent Identity 驗證管理工具

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

代理身分驗證管理員的存取權由 IAM 管理,代理會使用自己的代理 SPIFFE ID 向驗證管理員進行驗證。所有使用者存取事件也會歸因於代理的 SPIFFE ID,方便進行管理。

代理程式身分驗證管理員會自動取得 OAuth 憑證,例如開啟對話方塊供使用者登入及同意。此外,這項功能還可讓您查看使用者存取權,並撤銷存取權,確保使用者委派的權限受到妥善控管。

詳情請參閱「代理程式身分驗證管理員總覽」。

安全性與管理

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

  • 情境感知存取權:根據預設,Google 管理的情境感知存取權政策會強制執行 mTLS 和 DPoP 權杖繫結,確保代理程式憑證安全無虞。這種做法可確保憑證繫結權杖無法在信任的執行階段環境外重播。
  • IAM 整合:支援標準 IAM 允許政策和拒絕政策。
  • 主體存取邊界 (PAB):無論其他權限為何,PAB 都會限制代理程式可存取的資源。
  • VPC Service Controls:支援周邊防護和主體使用情況:
    • 邊界防護:您可以將 Agent Identity API (agentidentity.googleapis.com) 和 Agent Identity Credentials API (agentidentitycredentials.googleapis.com) 新增至服務邊界,控管這些 API 的存取權。如要在服務安全防護範圍內使用這些 API,用戶端必須透過受限制的虛擬 IP (restricted.googleapis.com) 傳送要求。
    • 輸入和輸出規則:支援在輸入和輸出規則中使用代理程式身分做為主體,允許存取受 service perimeter 保護的資源。

Agent Identity 的運作方式

Agent Identity 會透過工作流程驗證及授權代理動作,藉此提升安全性:

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

Agent Identity 的優點

Agent Identity 比標準服務帳戶更安全。

  • 嚴密隔離:與服務帳戶不同,根據預設,代理程式身分不會由多個工作負載共用,且無法模擬,也不允許開發人員產生長期有效的服務帳戶金鑰。
  • 憑證安全:預設的情境感知存取權政策會讓繫結的權杖無法重播,有助於防範權杖遭竊和帳戶盜用。將 Agent Identity 與 Agent Gateway 和 Gemini Enterprise 搭配使用時,授權管理員會加密使用者憑證 (例如 Gemini Enterprise 連接器佈建的憑證),並在閘道解密,確保代理絕不會存取原始憑證。
  • 最小權限做法:提供個別代理的身分,而非共用的服務帳戶,以避免代理擁有過多權限。
  • 減少作業阻力:自動執行複雜的 OAuth 流程,並管理 API 金鑰,簡化工具整合作業。
  • 提升可觀測性:提供清楚的稽核記錄。如果服務專員代表使用者採取行動,記錄檔會顯示服務專員和使用者的身分。

限制

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

後續步驟