Auf dieser Seite wird beschrieben, wie Sie Agent Runtime-Traffic über Agent Gateway weiterleiten. Agent Gateway ist eine zentrale Netzwerk- und Sicherheitskomponente des Gemini Enterprise Agent Platform-Ökosystems. Es bietet sichere und verwaltete Verbindungen für alle agentenbasierten Interaktionen, unabhängig davon, ob sie zwischen Nutzern und Agenten, Agenten und Tools oder zwischen Agenten selbst stattfinden.
Hinweis
Sie müssen mit der Bereitstellung von Agenten in Agent Runtime vertraut sein.
Weitere Informationen zu Agent Gateway. Sie können Agent Gateway im Modus „Agent zu beliebigem Ziel (ausgehend)“ verwenden, um die gesamte ausgehende Kommunikation mit ausgehendem Traffic zu Tools, Modellen, APIs und anderen Agenten zu sichern und zu verwalten. Sie verwenden das Gateway im Modus „Client zu Agent (eingehend)“, um zu steuern, welche Clients auf Ihre Agenten zugreifen können. Mit dem Gateway können Sie auswählen, welche IAP-Richtlinien und Model Armor-Vorlagen auf diese Interaktionen angewendet werden müssen.
Erstellen Sie ein dediziertes Test projekt, um diesen Workflow auszuprobieren. Verwenden Sie keine Projekte, die auch für andere kritische Arbeitslasten vorgesehen sind.
Beschränkungen
- Für ein bestimmtes Projekt und eine bestimmte Region kann es nur eine Instanz von Agent Gateway im Modus „Agent zu beliebigem Ziel (ausgehender Traffic)“ und eine Instanz im Modus „Client zu Agent (eingehender Traffic)“ geben. Alle Agent Runtime-Agenten in diesem Projekt und in dieser Region, die für die Verwendung von Agent Gateway konfiguriert sind, müssen diese bestimmten Gateway-Instanzen verwenden.
- Der Security Command Center-Dienst zur Erkennung von Bedrohungen durch die Agent Engine ist nicht verfügbar, wenn Agent Gateway für einen Agenten aktiviert ist.
- Sie können die Bindung eines Runtime-Agenten an eine Agent Gateway-Ressource nicht aufheben. Verwenden Sie daher ein dediziertes Testprojekt.
Erforderliche Berechtigungen
Sie müssen dem Reasoning Engine Service Agent die Berechtigung zur Verwendung der von Ihnen erstellten Agent Gateway-Ressource erteilen.
Erstellen Sie das Dienstkonto, falls es noch nicht vorhanden ist. Das Reasoning Engine-Dienstkonto wird in der Regel automatisch erstellt, wenn Sie Reasoning Engine zum ersten Mal verwenden.
gcloud beta services identity create --service=aiplatform.googleapis.com --project=PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihre Projekt-ID.Für die Verwendung des Gateways sind die folgenden Berechtigungen erforderlich:
roles/networkservices.agentGateways.getroles/networkservices.agentGateways.useroles/networkservices.operations.get
Erstellen Sie eine benutzerdefinierte Rolle mit allen diesen Berechtigungen und gewähren Sie sie dann dem Reasoning Engine-Dienstkonto.
gcloud alpha iam roles create AGENT_GATEWAY_ROLE_NAME \ --project=AGENT_PROJECT_ID \ --title="Custom Agent Gateway access role" \ --description="Custom role for Agent Gateway" \ --permissions="networkservices.operations.get,networkservices.agentGateways.get,networkservices.agentGateways.use"
Ersetzen Sie Folgendes:
AGENT_GATEWAY_ROLE_NAME: Der Name der benutzerdefinierten Rolle.AGENT_PROJECT_ID: Die Projekt-ID des Projekts, in dem Sie den Agenten bereitstellen möchten.
Weisen Sie dem Agent Runtime-Dienstkonto die Rolle zu.
gcloud alpha projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com" \ --role="projects/PROJECT_ID/roles/AGENT_GATEWAY_ROLE_NAME"Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Projekt-ID.PROJECT_NUMBER: Ihre Projektnummer.AGENT_GATEWAY_ROLE_NAME: Der Name der von Ihnen erstellten benutzerdefinierten Rolle.
Wenn Sie außerdem Model Armor-Vorlagen für die Autorisierung verwenden möchten und sich diese Vorlagen in einem anderen Projekt als der Agent (und das Gateway) befinden, müssen Sie sowohl dem Reasoning Engine Service Agent als auch dem Agent Gateway-Dienstkonto die folgenden Berechtigungen erteilen:
gcloud alpha projects add-iam-policy-binding AGENT_PROJECT_ID \ --member=serviceAccount:service-AGENT_PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com \ --role=roles/modelarmor.calloutUser gcloud alpha projects add-iam-policy-binding MODEL_ARMOR_PROJECT_ID \ --member=serviceAccount:service-AGENT_PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com \ --role=roles/modelarmor.user gcloud alpha projects add-iam-policy-binding AGENT_PROJECT_ID \ --member=serviceAccount:service-AGENT_PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com \ --role=roles/modelarmor.calloutUser gcloud alpha projects add-iam-policy-binding MODEL_ARMOR_PROJECT_ID \ --member=serviceAccount:service-AGENT_PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com \ --role=roles/modelarmor.userErsetzen Sie Folgendes:
AGENT_PROJECT_ID: Die Projekt-ID des Projekts, in dem Sie den Agenten bereitstellen möchten.AGENT_PROJECT_NUMBER: Die Projektnummer des Projekts, in dem Sie den Agenten bereitstellen möchten.MODEL_ARMOR_PROJECT_ID: Die Projekt-ID des Projekts, in dem die Model Armor-Vorlagen erstellt werden.
Agent Runtime-Traffic über Agent Gateway weiterleiten
So leiten Sie Agent Runtime-Traffic über Agent Gateway weiter:
Erstellen Sie eine Agent Gateway-Ressource und fügen Sie bei Bedarf Autorisierungsrichtlinien hinzu. Sie können ein Gateway entweder im Modus „Agent zu beliebigem Ziel (ausgehend)“ oder „Client zu Agent (eingehend)“ erstellen. Der Agent und das Gateway müssen im selben Projekt und in derselben Region erstellt werden. Eine Anleitung finden Sie unter Set up Agent Gateway.
Achten Sie darauf, dass das Gateway so konfiguriert ist, dass es die Anforderungen Ihrer Bereitstellung erfüllt. Wenn Ihr Agent beispielsweise Zugriff auf LLMs benötigt, konfigurieren Sie das Gateway so, dass dieser Zugriff zulässig ist, um potenzielle Fehler bei der Bereitstellung von Agent Runtime zu vermeiden.
Geben Sie die Gateway-Ressource an, während Sie Ihren Agenten bereitstellen. Wenn Sie den Agenten beispielsweise in Agent Runtime bereitstellen möchten, verwenden Sie
client.agent_engines.create, um das Objektlocal_agentzusammen mit optionalen Konfigurationen zu übergeben.remote_agent = client.agent_engines.create( agent=local_agent, config={ "agent_gateway_config": { "agent_to_anywhere_config": {"agent_gateway": AGENT_GATEWAY_TO_ANYWHERE_RESOURCE_ID}, # "client_to_agent_config": {"agent_gateway": AGENT_GATEWAY_CLIENT_TO_AGENT_RESOURCE_ID} }, "identity_type": types.IdentityType.AGENT_IDENTITY, # Other optional configuration ... # "requirements": requirements, # "gcs_dir_name": gcs_dir_name, }, )
Ersetzen Sie
AGENT_GATEWAY_TO_ANYWHERE_RESOURCE_IDdurch den vollständigen Pfad des Agent Gateway, das Sie im Modus „Agent zu beliebigem Ziel (ausgehend)“ erstellt haben. Beispiel:projects/PROJECT_NAME/locations/REGION/agentGateways/AGENT_GATEWAY_NAME.Wenn Sie ein Gateway im Modus „Client zu Agent (eingehend)“ erstellt haben, verwenden Sie stattdessen das Feld
client_to_agent_configund ersetzen SieAGENT_GATEWAY_CLIENT_TO_AGENT_RESOURCE_IDdurch den vollständigen Pfad des Agent Gateway, das Sie für eingehenden Traffic erstellt haben.Registrieren Sie Ihren Agenten bei der Agent Registry-Instanz im selben Projekt und in derselben Region wie der Agent und das Gateway. Weitere Informationen finden Sie unter Agent registrieren.
Agent Runtime auf genehmigte Agent Gateways beschränken
Sie können benutzerdefinierte Einschränkungen für Organisationsrichtlinien erstellen, um die Gruppe der infrage kommenden Agent Gateway-Ressourcen zu definieren, die bei der Bereitstellung von Agenten verwendet werden können.
Benutzerdefinierte Einschränkungen für Organisationsrichtlinien erstellen
In diesem Beispiel werden benutzerdefinierte Einschränkungen erstellt, die nur Traffic zu und von einer vorab genehmigten Liste von Gateways zulassen.
Agent zu beliebigem Ziel
Wenn Sie eine benutzerdefinierte Einschränkung für den Modus „Agent zu beliebigem Ziel (ausgehender Traffic)“ definieren möchten, erstellen Sie eine Datei mit dem Namen
constraint-agent-gateway-egress.yaml.Im folgenden Beispiel gibt das Feld
conditionan, dass der Vorgang nur zulässig ist, wenn eine Agent Gateway-Ressource angegeben ist (Feld ist vorhanden und nicht leer) und wenn sich das angegebene Gateway in der vorab genehmigten Liste befindet.name: organizations/ORGANIZATION_ID/customConstraints/custom.allowlistedEgressAgentGatewaysForAgentEngine resource_types: - aiplatform.googleapis.com/ReasoningEngine condition: >- has(resource.spec.deploymentSpec.agentGatewayConfig.agentToAnywhereConfig.agentGateway) && resource.spec.deploymentSpec.agentGatewayConfig.agentToAnywhereConfig.agentGateway != '' && (resource.spec.deploymentSpec.agentGatewayConfig.agentToAnywhereConfig.agentGateway in [ 'projects/PROJECT_ID_1/locations/REGION/agentGateways/AGENT_GATEWAY_NAME_1', 'projects/PROJECT_ID_2/locations/REGION/agentGateways/AGENT_GATEWAY_NAME_2', ]) method_types: - CREATE - UPDATE action_type: ALLOW display_name: Restrict Reasoning Engine Egress to Approved Agent Gateways description: Reasoning Engines can only be bound to a pre-approved list of Agent Gateway instances. Binding to any other gateway is denied.Ersetzen Sie Folgendes:
- ORGANIZATION_ID: Ihre Organisations-ID.
- PROJECT_ID: Ihre Projekt-ID.
- REGION: Die Region, in der das Gateway erstellt wurde.
- AGENT_GATEWAY_NAME: Der Name Ihres Gateways.
Wenden Sie die benutzerdefinierte Einschränkung an.
gcloud alpha org-policies set-custom-constraint EGRESS_CONSTRAINT_PATH
Ersetzen Sie EGRESS_CONSTRAINT_PATH durch den vollständigen Pfad zur benutzerdefinierten Einschränkungsdatei, die Sie im vorherigen Schritt erstellt haben.
Erstellen Sie die Organisationsrichtlinie, um die Einschränkung zu erzwingen. Erstellen Sie eine YAML-Richtliniendatei mit dem Namen
policy-agent-gateway-egress.yaml, um die Organisationsrichtlinie zu definieren. In diesem Beispiel wird diese Einschränkung auf Projektebene erzwungen. Sie können diese Einschränkung aber auch auf Organisations- oder Ordnerebene festlegen.name: projects/PROJECT_ID/policies/custom.allowlistedEgressAgentGatewaysForAgentEngine spec: rules: - enforce: trueErsetzen Sie
PROJECT_IDdurch Ihre Projekt-ID.Erzwingen Sie die Organisationsrichtlinie.
gcloud alpha org-policies set-policy EGRESS_POLICY_PATH
Ersetzen Sie EGRESS_POLICY_PATH durch den vollständigen Pfad zur YAML-Datei der Organisationsrichtlinie, die Sie im vorherigen Schritt erstellt haben. Es kann bis zu 15 Minuten dauern, bis die Richtlinie wirksam wird.
Client zu Agent
Wenn Sie eine benutzerdefinierte Einschränkung für den Modus „Client zu Agent (eingehend)“ definieren möchten, erstellen Sie eine Datei mit dem Namen
constraint-agent-gateway-ingress.yaml.Im folgenden Beispiel gibt das Feld
conditionan, dass der Vorgang nur zulässig ist, wenn eine Agent Gateway-Ressource angegeben ist (Feld ist vorhanden und nicht leer) und wenn sich das angegebene Gateway in der vorab genehmigten Liste befindet.name: organizations/ORGANIZATION_ID/customConstraints/custom.allowlistedIngressAgentGatewaysForAgentEngine resource_types: - aiplatform.googleapis.com/ReasoningEngine condition: >- has(resource.spec.deploymentSpec.agentGatewayConfig.clientToAgentConfig.agentGateway) && resource.spec.deploymentSpec.agentGatewayConfig.clientToAgentConfig.agentGateway != '' && (resource.spec.deploymentSpec.agentGatewayConfig.clientToAgentConfig.agentGateway in [ 'projects/PROJECT_ID_1/locations/REGION/agentGateways/AGENT_GATEWAY_NAME_1', 'projects/PROJECT_ID_2/locations/REGION/agentGateways/AGENT_GATEWAY_NAME_2', ]) method_types: - CREATE - UPDATE action_type: ALLOW display_name: Restrict Reasoning Engine Ingress to Approved Agent Gateways description: Reasoning Engines can only be bound to a pre-approved list of Agent Gateway instances. Binding to any other gateway is denied.Ersetzen Sie Folgendes:
- ORGANIZATION_ID: Ihre Organisations-ID.
- PROJECT_ID: Ihre Projekt-ID.
- REGION: Die Region, in der das Gateway erstellt wurde.
- AGENT_GATEWAY_NAME: Der Name Ihres Gateways.
Wenden Sie die benutzerdefinierte Einschränkung an.
gcloud alpha org-policies set-custom-constraint INGRESS_CONSTRAINT_PATH
Ersetzen Sie INGRESS_CONSTRAINT_PATH durch den vollständigen Pfad zur benutzerdefinierten Einschränkungsdatei, die Sie im vorherigen Schritt erstellt haben.
Erstellen Sie die Organisationsrichtlinie, um die Einschränkung zu erzwingen. Erstellen Sie eine YAML-Richtliniendatei mit dem Namen
policy-agent-gateway-ingress.yaml, um die Organisationsrichtlinie zu definieren. In diesem Beispiel wird diese Einschränkung auf Projektebene erzwungen. Sie können diese Einschränkung aber auch auf Organisations- oder Ordnerebene festlegen.name: projects/PROJECT_ID/policies/custom.allowlistedIngressAgentGatewaysForAgentEngine spec: rules: - enforce: trueErsetzen Sie
PROJECT_IDdurch Ihre Projekt-ID.Erzwingen Sie die Organisationsrichtlinie.
gcloud alpha org-policies set-policy INGRESS_POLICY_PATH
Ersetzen Sie INGRESS_POLICY_PATH durch den vollständigen Pfad zur YAML-Datei der Organisationsrichtlinie , die Sie im vorherigen Schritt erstellt haben. Es kann bis zu 15 Minuten dauern, bis die Richtlinie wirksam wird.
Weitere Informationen zur Verwendung benutzerdefinierter Einschränkungen für Organisationsrichtlinien finden Sie unter Benutzerdefinierte Einschränkungen erstellen.