本文將逐步說明如何在部署 Agent Gateway 時設定虛擬私有雲連線能力,以便與組織中的虛擬私有雲網路進行私人通訊。
設定虛擬私有雲連線後,即可執行下列操作:
- 強制執行虛擬私有雲流量輸出:使用
PRIVATE_RANGES_ONLY或ALL_TRAFFIC模式,透過 Private Service Connect 網路連結,將來自代理的流量轉送至虛擬私有雲網路。 - 靜態來源 IP 位址範圍:輸出流量會使用 Private Service Connect 網路連結子網路的私人 IP 位址範圍,做為來源 IP 位址。您可以運用這個靜態來源 IP 範圍,為虛擬私有雲網路設定防火牆政策,控管來自閘道的流量。
- 自訂 DNS 解析:使用 Cloud DNS 對接,直接從代理程式解析內部私人網域名稱和外部網域名稱。
- 邊界安全:使用 VPC Service Controls 服務範圍保護代理通訊。
- 私人或自行簽署憑證驗證:連線至使用私人 CA 或自行簽署憑證的目的地。
如要設定虛擬私有雲連線能力,請建立 Agent Gateway 連線範本 (AgentConnectivityTemplate),定義及管理 Agent Gateway 執行個體的輸出網路設定。
虛擬私有雲連線能力的運作方式
使用連線範本部署 Agent Gateway 時,閘道會透過 Private Service Connect 介面,將傳出的代理流量轉送至指定的虛擬私有雲網路。
虛擬私有雲輸出模式
您可以使用連線範本中的 vpcEgress 設定,設定閘道如何透過網路連結轉送流量。
傳送至私人 IP 位址範圍 (
PRIVATE_RANGES_ONLY) 的流量:僅將目的地為私人 IP 位址範圍的流量轉送至虛擬私有雲網路。只有在目的地 IP 位址落在下列其中一個範圍時,傳出流量才會轉送至虛擬私有雲網路:- RFC 1918:
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 - RFC 6598:
100.64.0.0/10 - E 類:
240.0.0.0/4 private.googleapis.com:199.36.153.8/30restricted.googleapis.com:199.36.153.4/30- Google API 的 PSC 端點:如果您使用虛擬私有雲網路中的內部私人 IP 位址,為 Google API 部署自訂 Private Service Connect 端點,系統會透過虛擬私有雲網路轉送傳送至這個端點的流量。請務必在連線範本中設定 Cloud DNS 對接,讓 Agent Gateway 正確將 Google API 網域解析為內部 PSC 端點 IP 位址。
系統會使用 Private Google Access 自動處理標準公開 Google API 的要求,並直接透過 Agent Gateway 轉送網際網路流量,而非透過虛擬私有雲網路。
- RFC 1918:
傳送至所有 IP 位址範圍 (
ALL_TRAFFIC) 的流量:透過虛擬私有雲網路,轉送代理程式發出的所有傳出流量,包括公開網際網路、外部 SaaS API 和非 RFC 1918 位址。- 路由和安全性:這項設定會將所有傳出流量轉送至虛擬私有雲,因此您必須負責管理路由和安全性。請確認虛擬私有雲網路有預設路由 (
0.0.0.0/0),可將這類流量轉送至傳出閘道或安全設備 (例如下一個躍點防火牆或 Cloud Interconnect 介面)。 - 公開網際網路輸出:Agent Gateway 會將傳出流量傳送至虛擬私有雲網路,然後透過 Private Service Connect 網路連結子網路上的 Cloud NAT 閘道,將流量傳送至公開網際網路。如果您將靜態外部 IP 位址指派給 Cloud NAT 閘道,遠端服務就能根據這些來源 IP 位址,將代理的輸出流量加入許可清單。
- VPC Service Controls:輸出模式必須設為
ALL_TRAFFIC,才能支援 VPC Service Controls service perimeter。
- 路由和安全性:這項設定會將所有傳出流量轉送至虛擬私有雲,因此您必須負責管理路由和安全性。請確認虛擬私有雲網路有預設路由 (
DNS 解析和流量轉送
根據預設,Agent Gateway 會使用公開遞迴 DNS 解析網域名稱。如果代理需要存取內部工作負載、私人工具,或託管於虛擬私有雲網路中私人網域名稱 (例如 corp.internal. 或 PSC 端點) 的 Google API,您可以設定 Cloud DNS 對接,將 DNS 查詢轉送至網路的私人 Cloud DNS 代管區域。
下表彙整了在 ALL_TRAFFIC 模式下設定 VPC 連線能力時,Cloud DNS 對接需求和不同目的地的流量路由行為:
| 流量目的地 | 是否需要 Cloud DNS 對接? | DNS 解析 | 輸出路徑 |
|---|---|---|---|
| 私人 IP 服務 (RFC 1918 / 內部) |
是 (例如 corp.internal.) |
使用 Cloud DNS 對接,透過目標虛擬私有雲網路的私人 Cloud DNS 代管區域進行解析。 | 流量會透過網路連結進入虛擬私有雲網路,連線至內部工作負載。 |
| 使用私人 IP 的公開主機名稱 (水平分割 DNS) |
否 | 在閘道 Proxy 使用標準公開遞迴 DNS 進行解析,不需 Cloud DNS 對接。 | 流量會透過網路連結進入虛擬私有雲網路,連線至內部工作負載。 |
| 公開網際網路和 SaaS API (外部網域) |
否 | 在閘道 Proxy 使用標準公開遞迴 DNS 進行解析,不需 Cloud DNS 對接。 | 流量會透過網路連結進入虛擬私有雲網路,並使用子網路上設定的 Cloud NAT 傳送至公開網際網路。 |
| Google Cloud API (標準,不含 VPC Service Controls) |
否 | 在閘道 Proxy 使用標準公開遞迴 DNS 進行解析,不需 Cloud DNS 對接。 | 流量會透過網路連結進入虛擬私有雲網路,並使用子網路上啟用的 Private Google Access 私下轉送,不需使用 Cloud NAT 或 DNS 對接。 |
| Google Cloud API (搭配 VPC Service Controls) |
是 (googleapis.com.) |
使用私人 Cloud DNS 區域,解析為受限制的 Google API 範圍 (199.36.153.4/30) 或內部 Private Service Connect 端點。 |
流量會透過網路連結進入虛擬私有雲網路,強制執行 VPC Service Controls 範圍安全規則1。 |
1 如果要求因違反 VPC Service Controls 而失敗,例如 compute.googleapis.com 或 dns.googleapis.com 上的 NETWORK_NOT_IN_SAME_SERVICE_PERIMETER 或 SECURITY_POLICY_VIOLATED 參照主專案,請確認主專案與閘道專案位於相同 perimeter。
傳輸層安全標準 (TLS) 憑證規定
透過 HTTPS 轉送 egress 流量時,Agent Gateway 會在 TLS 握手期間,驗證目的地伺服器的 TLS 憑證鏈結。HTTPS 連線的憑證規定取決於目標端點是否使用公開信任的憑證授權單位 (CA),或私人/自行簽署的 CA。
公開 CA:根據預設,Agent Gateway 信任由公開信任的憑證授權單位 (CA) 核發,且符合標準伺服器憑證規定 (包括主體別名 (SAN) 與目標主機名稱相符) 的憑證。
私人 CA 和自行簽署憑證:如果目標目的地 (虛擬私有雲網路中的代理、工具或 MCP 伺服器) 使用私人 CA 或內部 PKI,您可以使用連線範本中的
tlsConfig設定,設定自訂信任錨點。只要參照 Certificate Manager
TrustConfig資源,即可將 Agent Gateway 設為僅信任特定私人 CA,或將私人根 CA 與公開信任的 CA (PUBLICLY_TRUSTED_ROOTS) 結合,為公開和私人端點建立信任關係。如果代理連線至 Google Cloud API (
*.googleapis.com) 或其他公開 HTTPS 端點,則必須將additionalRoots設為PUBLICLY_TRUSTED_ROOTS。如未進行這項設定,Agent Gateway 就不會信任 Google 簽署的googleapis.com憑證。使用
tlsConfig時,請注意下列限制:- 使用
trustConfig將流量轉送至使用私人 CA 的目的地時,您必須手動輪替 PEM 檔案。不支援使用 Secret Manager (例如 Google Cloud的 Secret Manager) 自動輪換 PEM 檔案。 - 在連線範本設定
trustConfig欄位後,該欄位即無法變更,且 Agent Gateway 不會自動套用附加連線範本中對tlsConfig的變更 (例如更新additionalRoots)。如要瞭解如何更新 TLS 設定,請參閱「更新虛擬私有雲輸出設定」。
- 使用
如果 Agent Gateway 無法驗證憑證鏈結,連線就會失敗。
必要角色和權限
如要設定 Agent Gateway 的虛擬私有雲連線能力,請確認用於佈建的身分和閘道服務代理具備必要角色。
獨立專案部署作業
在獨立專案中,閘道、網路連結和虛擬私有雲網路位於同一個專案,因此適用標準 Agent Gateway 權限。詳情請參閱「必要權限」。
Shared VPC 或跨專案部署
在Shared VPC部署作業中,您可以在服務專案或主專案中佈建 Agent Gateway。如果您在主專案 (共用虛擬私有雲網路、子網路和網路連結也位於此處) 佈建閘道,則適用獨立專案權限。
如果您在服務專案中佈建 Agent Gateway,但目標虛擬私有雲網路、網路連結或私人 DNS 區域位於主專案 (TARGET_VPC_PROJECT_ID),服務專案中的身分不會自動取得權限,無法驗證、連結或對等互連主專案中的網路和 DNS 資源。除了標準 Agent Gateway 權限,請在主專案授予下列角色:
| 主體或身分 | 授予專案權限 | 必要的 IAM 角色 | 目的 |
|---|---|---|---|
| 佈建身分1 (使用者帳戶或部署作業服務帳戶) |
主專案 (TARGET_VPC_PROJECT_ID) |
|
允許在建立或更新閘道時,對目標虛擬私有雲網路、子網路、網路連結和私人 DNS 區域進行後端驗證。 |
| 網路連結建立者 (建立 PSC 連結的管理員) |
主專案 (TARGET_VPC_PROJECT_ID) |
|
允許使用主專案中的 Shared VPC 子網路,建立 Private Service Connect 網路連結。 |
| 服務專案中的網路連結 (建議) | |||
| Agent Gateway 服務代理2 | 主專案 (TARGET_VPC_PROJECT_ID) |
|
允許 Agent Gateway 服務代理使用主專案子網路建立網路連結、連結 Private Service Connect 介面來轉送 egress 流量,以及與主專案中的私人 Cloud DNS 區域對等互連。 |
| 主專案中的網路連結 | |||
| Agent Gateway 服務代理2 | 主專案 (TARGET_VPC_PROJECT_ID) |
|
允許 Agent Gateway 服務代理更新主專案網路連結,以便允許來自 Agent Gateway 租戶專案的連線、轉送 egress 流量,以及與主專案中的私人 Cloud DNS 區域對接。 |
1 針對佈建身分,主專案的基本專案層級角色 (例如檢視者 (roles/viewer) 或編輯者 (roles/editor)) 也足夠。
2 Agent Gateway 服務代理的格式為:service-AGENT_GATEWAY_PROJECT_NUMBER@gcp-sa-agentgateway.iam.gserviceaccount.com,其中 AGENT_GATEWAY_PROJECT_NUMBER 是您佈建 Agent Gateway 的專案編號。如果是 Shared VPC 部署作業,這項專案可以是服務專案或主專案。
如果將多個 Agent Runtime 服務專案連結至 Agent Gateway 主專案,您也必須在閘道專案中,向各個 Agent Runtime 服務代理授予跨專案存取權。如要大規模部署,請參閱「使用 Google 群組擴充 Agent Runtime 服務專案」。
設定虛擬私有雲連線
如要使用連線範本部署 Agent Gateway,請完成下列各節的步驟。
建立 Private Service Connect 網路連結
在目標虛擬私有雲網路中,建立 Private Service Connect 網路連結。
請確認網路連結符合下列規定:
- 連線偏好設定:將網路連結設為自動接受連線
(
--connection-preference=ACCEPT_AUTOMATIC)。 - 相同虛擬私有雲網路規定:網路連結子網路和為 DNS 對接 (
targetNetwork) 設定的目標網路,必須位於完全相同的虛擬私有雲網路。如果網路連結的子網路與 DNS 對接目標網路屬於不同網路,設定驗證就會失敗。 - 子網路需求:請注意下列網路連結子網路需求:
- 子網路範圍:網路連結子網路支援所有有效範圍。
- 子網路大小:Agent Gateway 至少需要
/28子網路,才能連結網路。/28子網路提供 12 個可用的 IP 位址,足以用於單一 Agent Gateway 執行個體。如果您打算將多個閘道連線至同一個網路連結或子網路,請使用較大的子網路 (例如/26或/24),以免 IP 位址用盡。 - Private Google Access 需求:您必須在託管網路連結的子網路上啟用 Private Google Access (
private_ip_google_access = true)。
- Shared VPC 部署作業:如要瞭解 Shared VPC 部署作業,請參閱「Shared VPC 部署作業拓撲」。
記下網路連結的完整資源 URI (例如 projects/NETWORK_ATTACHMENT_PROJECT_NUMBER/regions/NETWORK_ATTACHMENT_REGION/networkAttachments/NETWORK_ATTACHMENT_NAME)。在後續步驟中建立連線範本資源時,會需要用到這個 URI。
選用:設定 DNS 對接
DNS 對接可讓 Agent Gateway 使用虛擬私有雲網路中 Cloud DNS 私人代管區域的記錄,解析 DNS 名稱。只有在代理程式需要解析私人內部網域名稱 (例如 corp.internal.),或對 Google API (googleapis.com.) 強制執行 VPC Service Controls 時,才需要 DNS 對接。如果是公開網際網路網域,或沒有 VPC Service Controls 的標準 Google API,則不需要 DNS 對接。
Agent Gateway 支援遞移 DNS 對接,但最多只能透過單一遞移躍點,也就是最多三個虛擬私有雲網路。舉例來說,vpc-net-a (Agent Gateway 租戶網路) 可與 vpc-net-b (附加網路) 對接,後者再與 vpc-net-c (遠端網路) 對接,以便解析整個鏈結的 DNS 查詢。
如要設定 DNS 對接,請按照下列步驟操作:
在目標虛擬私有雲網路中設定私人 DNS 區域。如要將 DNS 記錄新增至私人 DNS 區域,請參閱「新增資源記錄集」。
收集下列資訊,設定連線能力範本以啟用對等互連:
目標網路 URI (
targetNetwork):請記下目標虛擬私有雲網路的完整資源 URI,格式如下:projects/TARGET_VPC_PROJECT_ID/global/networks/TARGET_VPC_NETWORK_NAME。目標網路一律是包含網路連結所參照子網路的虛擬私有雲網路。如果目標網路是 Shared VPC 網路,請務必使用對應的 Shared VPC 主機專案 ID。網域名稱:一或多個 DNS 對接網域字尾。每個網域都必須以半形句號 (
.) 結尾,例如corp.internal.或googleapis.com.。如需設定
domains欄位的其他指南,請參閱「DNS 對接網域模式」。如要進行跨專案部署作業 (例如 Shared VPC),請參閱「跨專案 DNS 區域和對接需求」。
選用:設定 TLS 信任設定
如果目標目的地使用私人 CA 或自行簽署的憑證,您必須在 Certificate Manager 中建立 TrustConfig 資源。TrustConfig 資源定義了 Agent Gateway 用來驗證 TLS 連線的信任錨點和憑證。
準備 PEM 格式的憑證檔案:
- 信任存放區:PEM 格式的根或中繼 CA 憑證。只要伺服器憑證的信任鏈結指向其中一個 CA 憑證,Agent Gateway 就會信任該憑證。信任存放區必須包含至少一個根或中繼 CA 憑證。
- 許可清單憑證 (選用):您要明確信任的 PEM 格式伺服器憑證,例如自行簽署的憑證。
執行下列指令,建立
TrustConfig資源。TrustConfig必須與 Agent Gateway 和連線範本建立在相同的專案和區域。gcloud certificate-manager trust-configs create TRUST_CONFIG_NAME \ --location=LOCATION \ --trust-store="trust-anchors=ROOT_CERT_FILE" \ --allowlisted-certificates=ALLOWLISTED_CERT_FILE更改下列內容:
TRUST_CONFIG_NAME:TrustConfig資源的名稱。LOCATION:信任設定的區域 (例如europe-west1),必須與 Agent Gateway 和連線能力範本的區域相同。ROOT_CERT_FILE:PEM 編碼根憑證或中繼 CA 憑證的路徑。ALLOWLISTED_CERT_FILE:(選用) 要明確信任的 PEM 編碼憑證路徑。如果您未使用許可清單中的憑證,請省略這個旗標。
如要進一步瞭解如何管理信任設定,請參閱「建立及管理信任設定」。
部署 Agent Gateway
建立連線能力範本設定檔:
建立名為
agw-connectivity-template.yaml的 YAML 檔案:name: projects/AGENT_GATEWAY_PROJECT_NUMBER/locations/LOCATION/agentConnectivityTemplates/CONNECTIVITY_TEMPLATE_NAME accessPath: AGENT_TO_ANYWHERE deploymentModel: CENTRALIZED egressNetworkConfig: networkAttachment: projects/NETWORK_ATTACHMENT_PROJECT_NUMBER/regions/NETWORK_ATTACHMENT_REGION/networkAttachments/NETWORK_ATTACHMENT_NAME dnsPeeringConfig: domains: - DOMAIN_NAME targetNetwork: projects/TARGET_VPC_PROJECT_ID/global/networks/TARGET_VPC_NETWORK_NAME vpcEgress: VPC_EGRESS_MODE tlsConfig: trustConfig: projects/AGENT_GATEWAY_PROJECT_NUMBER/locations/LOCATION/trustConfigs/TRUST_CONFIG_NAME additionalRoots: ADDITIONAL_ROOTS_OPTION更改下列內容:
AGENT_GATEWAY_PROJECT_NUMBER:佈建 Agent Gateway 的 Google Cloud 專案編號。如要擷取專案編號,請執行gcloud projects describe PROJECT_ID --format="value(projectNumber)"。LOCATION:連線範本的區域 (例如europe-west1)。CONNECTIVITY_TEMPLATE_NAME:連線能力範本資源的名稱。accessPath:連線範本的受控管存取路徑。設為AGENT_TO_ANYWHERE(連線範本僅適用於輸出閘道)。deploymentModel:閘道的部署模式。設為CENTRALIZED。networkAttachment:Private Service Connect 網路連結的完整資源 URI:NETWORK_ATTACHMENT_PROJECT_NUMBER:您建立網路連結的專案編號。這項專案可能與 Agent Gateway 專案相同,也可能是不同專案 (如果您在 Shared VPC 服務專案中佈建 Agent Gateway,並在 Shared VPC 主專案中建立網路連結)。NETWORK_ATTACHMENT_REGION:網路連結所在的區域。NETWORK_ATTACHMENT_NAME:網路連結名稱。
DOMAIN_NAME:(選用) 一或多個 DNS 對接的網域字尾 (例如corp.internal.、googleapis.com.或.)。請在domains下方,為要對接的每個網域字尾新增清單項目。每個值都必須以點號 (.) 結尾,且有對應的私人 Cloud DNS 代管區域,並已授權給目標網路。如需設定
domains欄位的其他指南,請參閱「DNS 對接網域模式」。targetNetwork:(選用) DNS 對接目標虛擬私有雲網路的完整資源 URI。目標網路一律是虛擬私有雲網路,其中包含網路連結參照的子網路:TARGET_VPC_PROJECT_ID:目標虛擬私有雲網路所屬專案的專案 ID。如果網路連結參照的子網路所屬網路是 Shared VPC 虛擬私有雲網路,則TARGET_VPC_PROJECT_ID是 Shared VPC 主專案 ID。請一律使用專案 ID 指定targetNetwork,而非專案編號。TARGET_VPC_NETWORK_NAME:目標虛擬私有雲網路的名稱。
VPC_EGRESS_MODE:設定輸出轉送模式。設為PRIVATE_RANGES_ONLY或ALL_TRAFFIC。tlsConfig:(選用) 透過 HTTPS 連線至私人端點時,伺服器憑證驗證的 TLS 設定:TRUST_CONFIG_NAME:包含私人 CA 憑證或信任錨點的 Certificate ManagerTrustConfig資源名稱。ADDITIONAL_ROOTS_OPTION:指定除了自訂信任設定外,是否要信任公開信任的 CA 根:- 設為
PUBLICLY_TRUSTED_ROOTS(預設) 可同時信任由trustConfig參數驗證的憑證,以及所有公開信任的 CA。如果代理也連線至Google Cloud API (*.googleapis.com) 或其他公開 HTTPS 端點,則必須將additionalRoots設為PUBLICLY_TRUSTED_ROOTS。如未設定,Agent Gateway 就不會信任googleapis.com的 Google 簽署憑證。 - 設為
NO_ADDITIONAL_ROOTS,只信任由trustConfig參數驗證的憑證。
建立連線範本:
執行下列指令,建立連線範本:
gcloud network-services agent-connectivity-templates import CONNECTIVITY_TEMPLATE_NAME \ --source="agw-connectivity-template.yaml" \ --location=LOCATION更改下列內容:
CONNECTIVITY_TEMPLATE_NAME:連線能力範本資源的名稱。LOCATION:要建立連線範本資源的位置。例如:europe-west1。
定義 Agent Gateway 資源:
建立參照連線範本的閘道 YAML 設定檔 (例如
my-agent-gateway-vpc-egress.yaml),在AGENT_TO_ANYWHERE模式中定義新的 Agent Gateway 資源:name: AGENT_GATEWAY_NAME protocols: - MCP googleManaged: governedAccessPath: AGENT_TO_ANYWHERE agentConnectivityTemplate: projects/AGENT_GATEWAY_PROJECT_NUMBER/locations/LOCATION/agentConnectivityTemplates/CONNECTIVITY_TEMPLATE_NAME registries: - AGENT_REGISTRY_PATH更改下列內容:
AGENT_GATEWAY_NAME:Agent Gateway 資源的名稱。AGENT_GATEWAY_PROJECT_NUMBER:您佈建 Agent Gateway 和連線範本的 Google Cloud 專案編號。如果是 Shared VPC 部署作業,這項專案可以是服務專案或主專案。如要擷取專案編號,請執行gcloud projects describe PROJECT_ID --format="value(projectNumber)"。LOCATION:連線能力範本的位置 (例如europe-west1)。CONNECTIVITY_TEMPLATE_NAME:連線能力範本資源的名稱。AGENT_REGISTRY_PATH:區域 Agent Registry 執行個體的路徑,與閘道位於相同專案和區域,格式為//agentregistry.googleapis.com/projects/PROJECT_ID/locations/LOCATION。如需指引,請參閱「規劃 Agent Gateway 部署作業」。
匯入及部署 Agent Gateway:
執行下列指令,根據 YAML 規格建立 Agent Gateway 資源:
gcloud network-services agent-gateways import AGENT_GATEWAY_NAME \ --source="my-agent-gateway-vpc-egress.yaml" \ --location=LOCATION將
LOCATION替換為要建立 Agent Gateway 資源的位置。例如:europe-west1。
架構和網路考量
本節提供架構指南和進階網路模式,說明如何部署具備虛擬私有雲連線能力的 Agent Gateway。
正在更新虛擬私有雲輸出設定
如果連線能力範本由 Agent Gateway 參照,就無法直接修改,且 Agent Gateway 不會自動套用附加連線能力範本的變更:
更新 DNS 對接、虛擬私有雲輸出模式或 TLS 設定 (
tlsConfig):在連線範本上,tlsConfig.trustConfig欄位設定後即無法變更,且附加的 Agent Gateway 不會套用對tlsConfig的就地更新 (例如新增或變更additionalRoots)。如要更新現有閘道的 DNS 對接設定、虛擬私有雲輸出模式或tlsConfig設定,請建立新的連線範本,並使用相同的networkAttachment和更新後的設定,然後更新 Agent Gateway,使其參照新範本 (或取消繫結並重新繫結連線範本)。變更網路連結:在連線範本和 Agent Gateway 設定
networkAttachment後,就無法變更。如要切換至其他網路連結 (或目標虛擬私有雲網路),請建立新的連線範本和 Agent Gateway。
Shared VPC 部署拓撲
在Shared VPC架構中,您可以在服務專案或主專案中佈建 Agent Gateway。在服務專案中佈建 Agent Gateway 時,您可以在服務專案 (建議) 或主專案中建立網路連結:
VPC Service Controls 法規遵循
如要對代理通訊強制執行 VPC Service Controls 範圍,請確認下列事項:
在連線範本中,將
vpcEgress設為ALL_TRAFFIC。將 Google API 要求導向
restricted.googleapis.comIP 範圍 (199.36.153.4/30),或 Google API 的內部 Private Service Connect 端點。為
googleapis.com設定 DNS 解析。在虛擬私有雲網路中建立私人 Cloud DNS 區域,將*.googleapis.com對應至restricted.googleapis.com,並在連線範本的domains欄位中加入googleapis.com.。如要進一步瞭解 DNS 設定,請參閱 Private Google Access 說明文件中的「設定 googleapis.com 的 DNS」。
如果是 Shared VPC 部署作業,擁有網路連結子網路和
dnsPeeringConfig.targetNetwork的主專案,必須與部署 Agent Gateway 的專案位於相同 service perimeter。即使您在服務專案中建立網路連結,也適用這項規定,因為子網路和虛擬私有雲網路仍屬於主專案。如果私人 DNS 區域託管於獨立的 DNS 專案,請一併將該專案納入 perimeter。
DNS 對接網域模式
本節說明網域解析模式,以及設定連線範本中 domains 欄位的選項。
網域名稱設定:請根據下列考量,設定連線範本中的 domains 欄位:
私人內部網域:如要解析託管於虛擬私有雲網路中的私人內部服務 (例如
service.corp.internal),請指定內部網域字尾 (例如corp.internal.)。這個網域的完全比對私人 Cloud DNS 代管區域,必須獲得目標虛擬私有雲網路的授權。水平分割 DNS (具有 RFC 1918 IP 的公有網域):如果您使用公開 DNS 區域託管指向內部私人 IP 的記錄 (例如
mcp.example.com解析為 Certificate Manager 公開憑證的 RFC 1918 位址),閘道會使用公開遞迴 DNS 自動解析這些記錄,不需 DNS 對接。Google Cloud API 搭配 VPC Service Controls:如果
ALL_TRAFFIC設為強制執行 VPC Service Controls,Google API 要求必須解析為restricted.googleapis.comIP 範圍 (199.36.153.4/30) 或內部 PSC 端點。在虛擬私有雲網路中建立私人 Cloud DNS 區域,將*.googleapis.com對應至restricted.googleapis.com,並在連線範本的domains欄位中加入googleapis.com.。多網域解析模式:如果部署作業需要解析多個私人網域字尾,請選擇下列其中一種模式:
- 對接多個個別網域:在
dnsPeeringConfig的domains欄位中指定網域字尾清單 (例如corp.internal.、prod.internal.和googleapis.com.)。清單中的每個網域都必須以點號 (.) 結尾,並有對應的私人 Cloud DNS 代管區域,且該區域已授權給目標虛擬私有雲網路。 - 合併父項字尾 (建議):將內部服務合併到共用父項網域字尾 (例如
*.internal.或*.corp.internal.) 下,並將該父項網域加入domains清單。 使用私人轉送區域進行 Catch-all 根對接:在連線範本的
domains欄位中加入".",並為虛擬私有雲網路中的根網域 (.) 設定 Cloud DNS 私人轉送區域,指向上游遞迴解析器 (例如8.8.8.8或內部企業解析器)。虛擬私有雲中較明確的私人區域會先比對最長後置字串,不相符的公開查詢則會透過上游轉送器解析。
- 對接多個個別網域:在
跨專案 DNS 區域和對接需求
連線範本的 dnsPeeringConfig 設定不支援直接跨專案 Cloud DNS 對接。匯入連線範本時,如果 networkAttachment 參照的子網路不屬於 targetNetwork 的虛擬私有雲網路,或您依賴服務或外部專案的跨專案 DNS 區域繫結,驗證就會失敗。
網域的代管區域必須建立在擁有 targetNetwork 的主專案中。代管區域可以是下列任一區域類型:
- 權威私人區域
- 轉送區域
- Cloud DNS 對接區域:必須與主專案虛擬私有雲網路建立關聯,並指定目的地虛擬私有雲網路。目的地虛擬私有雲必須直接使用權威私人區域解析查詢。不支援將查詢轉送至其他 DNS 對接區域 (鏈結),否則會導致
NXDOMAIN錯誤。
使用 Google 群組擴充 Agent Runtime 服務專案
如果將多個 Agent Runtime 服務專案連結至 Agent Gateway 主專案,並個別授予各服務代理程式跨專案存取權,則每次新增專案時,都必須更新主專案的 IAM 政策。在大規模部署作業中,新增角色繫結時,也可能會達到 IAM 政策限制。
為避免每次新增服務專案時,都要更新主專案的 IAM 政策,您可以改為透過單一 Google 安全性群組管理存取權:
建立安全性群組:在 Google 管理控制台中建立安全性群組,或執行
gcloud identity groups create指令。授予群組 Agent Gateway 主專案的存取權:將群組繫結至
AGENT_GATEWAY_PROJECT_ID的網路服務檢視者角色 (roles/networkservices.viewer):gcloud projects add-iam-policy-binding AGENT_GATEWAY_PROJECT_ID \ --member="group:GROUP_EMAIL" \ --role="roles/networkservices.viewer"更改下列內容:
AGENT_GATEWAY_PROJECT_ID:Agent Gateway 主機專案的專案 ID。GROUP_EMAIL:安全性群組的電子郵件地址 (例如agw-cross-project-runtime@example.com)。
將各項服務專案的 Agent Runtime 服務代理新增至群組: 針對各項 Agent Runtime 服務專案,執行
gcloud identity groups memberships add指令,將服務代理新增至安全性群組,如下所示:gcloud identity groups memberships add \ --group-email="GROUP_EMAIL" \ --member-email="service-AGENT_RUNTIME_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com"將
AGENT_RUNTIME_PROJECT_NUMBER替換為 Agent Runtime 服務專案的專案編號。
後續步驟
程式碼實驗室:使用 Agent Platform 管理代理工作負載
瞭解如何透過 Gemini Enterprise Agent Platform 的 Agent Gateway 控管代理工作負載。
程式碼實驗室:從 Agent Runtime 到虛擬私有雲網路的 Agent Gateway 輸出
瞭解 Agent Gateway 輸出管理,適用於存取虛擬私有雲網路中目的地的 AI 代理。