Richtlinien für die semantische Governance und die Policy Engine konfigurieren
In diesem Abschnitt wird der Übergang von der Infrastrukturvorbereitung zur Richtlinienerstellung behandelt.
Vorbereitung
Führen Sie die folgenden Schritte aus, bevor Sie Richtlinien für die semantische Governance konfigurieren.
Erforderliche APIs aktivieren
Aktivieren Sie zuerst die APIs, die für die semantische Governance-Richtlinie und ihre Netzwerkkomponenten erforderlich sind:
gcloud services enable \
aiplatform.googleapis.com \
agentregistry.googleapis.com \
networkservices.googleapis.com \
networksecurity.googleapis.com \
compute.googleapis.com \
dns.googleapis.com \
--project=PROJECT_ID
Dem Vertex AI-Dienstkonto IAM-Berechtigungen gewähren (nur von Google verwaltete Bindung)
Wenn Sie während der Bereitstellung die Option Von Google verwaltete Bindung verwenden, weisen Sie dem Vertex AI-Dienstkonto (P4SA) die Rollen zu, die es zum Erstellen des Private Service Connect-Endpunkts (PSC) (roles/compute.networkAdmin) und des DNS-Eintragssatzes (roles/dns.admin) in Ihrem Projekt benötigt. Wenn Sie die Option Selbstverwaltete Bindung verwenden, können Sie diesen Schritt überspringen, da Sie diese Netzwerkressourcen selbst erstellen.
Erstellen Sie die Dienstidentität (idempotent) und weisen Sie die Rollen zu:
export PROJECT_NUM=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
gcloud beta services identity create \
--service=aiplatform.googleapis.com \
--project=PROJECT_ID
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-${PROJECT_NUM}@gcp-sa-aiplatform.s3ns-system.iam.gserviceaccount.com" \
--role="roles/compute.networkAdmin"
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-${PROJECT_NUM}@gcp-sa-aiplatform.s3ns-system.iam.gserviceaccount.com" \
--role="roles/dns.admin"
Die entsprechenden Befehle zum Entfernen finden Sie im Abschnitt „Bereinigen“ unter IAM-Bindungen entfernen.
Teilnahmevoraussetzungen für Agenten
Damit ein KI-Agent in derCloud de Confiance Console in der Agent-Auswahl einer semantischen Governance-Richtlinie angezeigt wird, muss die Reasoning Engine des KI-Agenten mit sowohl identity_type=AGENT_IDENTITY als auch agent_gateway_config bereitgestellt worden sein. Wenn eines der beiden fehlt, wird der Agent in der Cloud de Confiance -Konsole aus der Auswahl herausgefiltert.
Die API und gcloud geben stattdessen einen expliziten Fehler zurück.
Wenn Sie einen Agenten bereitstellen möchten, der diese Anforderungen erfüllt, folgen Sie der Anleitung unter Agent Runtime-Traffic über Agent Gateway weiterleiten. Beide Felder sind in einer vorhandenen Reasoning Engine unveränderlich. Daher muss ein Agent, der ohne sie bereitgestellt wird, neu bereitgestellt werden. Patchen ist nicht möglich.
So prüfen Sie, ob ein vorhandener Agent infrage kommt: Die Reasoning Engine des Agents (spec.effectiveIdentity) muss mit agents.global. beginnen:
gcloud ai reasoning-engines describe REASONING_ENGINE_ID \
--region=LOCATION \
--project=PROJECT_ID \
--format='value(spec.effectiveIdentity)' \
| grep -q '^agents.global.' \
&& echo "Eligible" || echo "Not eligible"
Unterstützte Standorte
Die Policy Engine für semantische Governance und semantische Governance-Richtlinien werden an den folgenden regionalen Standorten unterstützt:
| Geografie | Verfügbare Regionen |
|---|---|
| Amerika | us-central1, us-east1, us-east4, us-west1 |
| Europa | europe-southwest1, europe-west1, europe-west4, europe-west8 |
Bereitstellung und Aktivierung
Aktivieren Sie die Policy Engine für semantische Governance. Dadurch wird die erforderliche Laufzeitumgebung bereitgestellt. Die Bereitstellung dauert in der Regel etwa 2 bis 3 Minuten. Bei hoher Nachfrage oder wenn der Warmup-Pool wieder aufgefüllt wird, kann die Bereitstellung jedoch bis zu 20 Minuten dauern. Wählen Sie eine der folgenden Optionen für die Bereitstellung aus:
- Von Google verwaltete Bindung:Google erstellt die zugrunde liegenden Netzwerkressourcen in Ihrem Cloud de Confiance by S3NS -Projekt und verwaltet ihren Lebenszyklus automatisch.
- Selbstverwaltete Bindung:Sie erstellen und verwalten die erforderlichen Netzwerkressourcen (
network,subnetworkunddnsZoneName) direkt in Ihrem Cloud de Confiance by S3NS -Projekt.
Nachdem Sie die Bereitstellung abgeschlossen haben, müssen Sie die Policy Engine mit dem Agent Gateway verbinden.
Von Google verwaltete Bindung
REST
curl -X PATCH \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/semanticGovernancePolicyEngine?updateMask=gatewayConfigs" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
-d '{ "gatewayConfigs": {
"GATEWAY_NAME": {
"network": "NETWORK_NAME",
"subnetwork": "SUBNETWORK_NAME",
"dnsZoneName": "DNS_NAME" }
}
}'
gcloud
gcloud beta ai semantic-governance-policy-engine update \
--location=LOCATION \
--project=PROJECT_ID \
--gateway-config="name='GATEWAY_NAME',network=NETWORK_NAME,subnetwork=SUBNETWORK_NAME,dns-zone-name=DNS_NAME"
Ersetzen Sie Folgendes:
GATEWAY_NAMEdurch einen eindeutigen Gateway-Namen.- Ersetzen Sie
DNS_NAMEdurch den Namen der zu verwendenden privaten DNS-Zone. PROJECT_IDdurch Ihre Projekt-ID in Cloud de Confiance by S3NS (projects/PROJECT_ID/global/networks/default). Wenn Sie ein benutzerdefiniertes Netzwerk und Subnetz verwenden, ersetzen Sie die vollständigen Ressourcenpfadenetworkundsubnetworkentsprechend.
Automatisch generierten DNS-Hostnamen abrufen
Wenn Sie die Engine mit einer von Google verwalteten Bindung bereitstellen, erstellt Google automatisch einen Private Service Connect-Endpunkt (PSC) und registriert einen DNS-A-Eintrag in Ihrer privaten DNS-Zone. Der FQDN dieses Eintrags dient als SGP_DNS_HOSTNAME und wird im schreibgeschützten Feld dnsRecord Ihrer Gateway-Konfiguration ausgefüllt.
So rufen Sie den automatisch generierten DNS-Hostnamen ab:
gcloud
Führen Sie den folgenden Befehl aus, um die Konfiguration der Policy Engine zu beschreiben:
gcloud beta ai semantic-governance-policy-engine describe \
--location=LOCATION \
--project=PROJECT_ID
REST
Senden Sie eine GET-Anfrage, um die Engine-Ressource abzurufen:
curl "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/semanticGovernancePolicyEngine" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)"
Suchen Sie in der Antwort unter gatewayConfigs.GATEWAY_NAME.dnsRecord nach dem Feld dnsRecord. Speichern Sie diesen FQDN. Sie benötigen ihn als SGP_DNS_HOSTNAME, wenn Sie die Policy Engine mit dem Agent Gateway verbinden.
Selbstverwaltete Bindung
REST
curl -X PATCH "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/semanticGovernancePolicyEngine" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/PROJECT_ID/locations/LOCATION/semanticGovernancePolicyEngine"
}'
gcloud
gcloud beta ai semantic-governance-policy-engine update \
--location=LOCATION \
--project=PROJECT_ID
Dieser Befehl gibt einen Vorgang mit langer Ausführungszeit zurück. Sie können den Status des Vorgangs abfragen, indem Sie OPERATION durch den Wert name aus der Antwort ersetzen:
curl "https://LOCATION-aiplatform.googleapis.com/v1beta1/OPERATION" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
Alternativ können Sie den Gesamtstatus der Engine prüfen, bis das Feld state den Wert ACTIVE zurückgibt:
curl "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/semanticGovernancePolicyEngine" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
Netzwerk konfigurieren (nur selbstverwaltet)
Nachdem die Policy Engine bereitgestellt wurde, konfigurieren Sie die Netzwerkkomponenten, die für die Kommunikation des Agent Gateway mit der Policy Engine erforderlich sind.
Während Google den PSC-Endpunkt im von Google verwalteten Mandantenprojekt für den von Google verwalteten Pfad automatisch erstellt, müssen Sie ihn für den selbstverwalteten Pfad manuell in Ihrem eigenen Cloud de Confiance by S3NS Projekt erstellen und verwalten.
1. VPC-Netzwerk und ‑Subnetz bereitstellen
In diesem Schritt erstellen Sie ein VPC-Netzwerk, ein Subnetz und ein Nur-Proxy-Subnetz für Agent-Traffic. Die angezeigten IP-Bereiche (10.11.12.0/24 und 10.11.13.0/24) sind Beispiele. Sie können einen beliebigen privaten RFC 1918-Bereich verwenden, der zu Ihrem Netzwerkdesign passt.
VPC-Netzwerk erstellen:
gcloud compute networks create NETWORK_NAME \ --subnet-mode=auto \ --project=PROJECT_IDErsetzen Sie
NETWORK_NAMEdurch den Namen Ihres VPC-Netzwerk (z. B.agent-network).Erstellen Sie das Subnetz:
gcloud compute networks subnets create SUBNET_NAME \ --network=NETWORK_NAME \ --region=LOCATION \ --range=10.11.12.0/24 \ --project=PROJECT_IDErsetzen Sie
SUBNET_NAMEdurch den Namen Ihres Subnetzes (z. B.agent-subnet).Erstellen Sie das Nur-Proxy-Subnetz (erforderlich für verwaltete Load Balancer):
gcloud compute networks subnets create PROXY_SUBNET_NAME \ --network=NETWORK_NAME \ --region=LOCATION \ --range=10.11.13.0/24 \ --purpose=REGIONAL_MANAGED_PROXY --role=ACTIVE \ --project=PROJECT_IDErsetzen Sie
PROXY_SUBNET_NAMEdurch den Namen Ihres Nur-Proxy-Subnetzes, z. B.agent-proxy-subnet.
2. Private DNS-Zone bereitstellen
Erstellen Sie eine private DNS-Zone, damit Agent Gateway den Hostnamen der Policy Engine auflösen kann:
gcloud dns managed-zones create DNS_ZONE_NAME \
--description="Private zone for my internal agentic VPC services" \
--dns-name="internal.example.com." \
--visibility=private \
--networks=NETWORK_NAME \
--project=PROJECT_ID
Replace the following:
DNS_ZONE_NAME: der Name Ihrer DNS-Zone, z. B.my-private-zone.internal.example.com.: der DNS-Name für Ihre Zone, einschließlich des abschließenden Punkts.
3. Netzwerkanhang erstellen
Erstellen Sie einen Netzwerkanhang, damit Agent Gateway eine Verbindung zu Ressourcen in Ihrer VPC herstellen kann. Die Verbindungseinstellung muss auf ACCEPT_AUTOMATIC festgelegt sein.
gcloud compute network-attachments create NETWORK_ATTACHMENT_NAME \
--region=LOCATION \
--subnets=SUBNET_NAME \
--connection-preference=ACCEPT_AUTOMATIC \
--project=PROJECT_ID
Replace the following:
NETWORK_ATTACHMENT_NAME: Der Name des Netzwerkanhangs, z. B.sgp-nw-attachment.SUBNET_NAME: Das Subnetz, das Sie in Schritt 1 erstellt haben.
4. Statische IP-Adresse, PSC-Endpunkt und DNS-Eintrag erstellen
Reservieren Sie eine statische IP-Adresse, erstellen Sie einen Private Service Connect-Endpunkt (PSC), der auf den Dienstanhang der Policy Engine verweist, und erstellen Sie einen DNS-Eintrag, damit er erreichbar ist.
# Reserve a static IP address
gcloud compute addresses create STATIC_IP_NAME \
--region=LOCATION \
--subnet=SUBNET_NAME \
--purpose=GCE_ENDPOINT \
--project=PROJECT_ID
# Capture the reserved IP address
IP=$(gcloud compute addresses describe STATIC_IP_NAME \
--region=LOCATION \
--project=PROJECT_ID \
--format=value(address))
# Create the PSC endpoint
gcloud compute forwarding-rules create PSC_ENDPOINT_NAME \
--region=LOCATION \
--network=NETWORK_NAME \
--address=STATIC_IP_NAME \
--target-service-attachment=PSC_SERVICE_ATTACHMENT \
--project=PROJECT_ID
# Create a DNS A record for the policy engine
gcloud dns record-sets create SGP_DNS_HOSTNAME \
--zone=DNS_ZONE_NAME \
--type=A \
--ttl=300 \
--rrdatas=$IP \
--project=PROJECT_ID
Ersetzen Sie Folgendes:
STATIC_IP_NAME: der Name Ihrer reservierten IP-Adresse, z. B.sgp-psc-ip.PSC_ENDPOINT_NAME: der Name für Ihren PSC-Endpunkt (z. B.sgp-psc-endpoint).PSC_SERVICE_ATTACHMENT: DerpscServiceAttachment-Wert, der in der Bereitstellungsantwort gespeichert wurde.SGP_DNS_HOSTNAME: ein Hostname in Ihrer privaten DNS-Zone im FormatLOCATION.DNS_ZONE_SUFFIX, wobeiDNS_ZONE_SUFFIXder DNS-Name ist, den Sie beim Erstellen Ihrer privaten DNS-Zone angegeben haben. Wenn Ihr Standort beispielsweiseus-west1und Ihr DNS-Zonensuffixinternal.example.comist, verwenden Sieus-west1.internal.example.com.
5. VPC-Verbindung im KI-Agenten-Gateway konfigurieren
Nachdem Sie die Netzwerkressourcen erstellt haben, müssen Sie die Netzwerkverbindung und das DNS-Peering in Ihrem Agent Gateway registrieren, damit die Policy Engine über das private Netzwerk erreicht werden kann.
Eine ausführliche Anleitung finden Sie im Einrichtungsleitfaden für das Agent Gateway unter VPC-Verbindung konfigurieren. Sie müssen mindestens Folgendes tun:
- Registrieren Sie den in Schritt 3 erstellten Netzwerkanhang mit der Egress-Konfiguration Ihres Agent Gateways.
- Registrieren Sie DNS-Peering, damit das Gateway den privaten DNS-Hostnamen auflösen kann, der in Schritt 4 erstellt wurde.
Policy Engine mit Agent Gateway verbinden
Nachdem das Netzwerk konfiguriert wurde, müssen Sie eine Autorisierungserweiterung und eine Autorisierungsrichtlinie erstellen, damit das Agent Gateway Traffic zur Auswertung an die Policy Engine weiterleiten kann.
Autorisierungserweiterung erstellen: Erstellen Sie eine Autorisierungserweiterung, die auf den DNS-Hostnamen der Policy Engine verweist. Verwenden Sie dieselbe
SGP_DNS_HOSTNAME, für die Sie in Netzwerk konfigurieren (Schritt 4) einen DNS-Eintrag erstellt haben. Über diesen Mechanismus sendet Agent Gateway Traffic zur Auswertung an die Richtlinien-Engine.gcloud
Definieren Sie die Erweiterungskonfiguration in einer YAML-Datei (
authz-ext.yaml) und importieren Sie sie:name: AUTHZ_EXTENSION_NAME service: SGP_DNS_HOSTNAME authority: SGP_DNS_HOSTNAME failOpen: false loadBalancingScheme: LOAD_BALANCING_SCHEME_UNSPECIFIEDgcloud service-extensions authz-extensions import AUTHZ_EXTENSION_NAME \ --source=authz-ext.yaml \ --location=LOCATION \ --project=PROJECT_IDREST
curl -X POST \ "https://networkservices.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/authzExtensions?authzExtensionId=AUTHZ_EXTENSION_NAME" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "service": "SGP_DNS_HOSTNAME", "authority": "SGP_DNS_HOSTNAME", "failOpen": false, "loadBalancingScheme": "LOAD_BALANCING_SCHEME_UNSPECIFIED" }'Ersetzen Sie
SGP_DNS_HOSTNAMEdurch den DNS-Hostnamen, für den Sie in Netzwerk konfigurieren (Schritt 4) einen A-Eintrag erstellt haben.Dieser Befehl gibt einen Vorgang mit langer Ausführungszeit zurück. Warten Sie, bis der Vorgang abgeschlossen ist, bevor Sie fortfahren.
Autorisierungsrichtlinie erstellen: Erstellen Sie eine Autorisierungsrichtlinie, die die Erweiterung an Ihr Agent Gateway bindet. Dadurch wird Agent Gateway angewiesen, Traffic zur Bewertung über die Policy Engine zu senden.
gcloud
Definieren Sie die Konfiguration der Autorisierungsrichtlinie in einer YAML-Datei (
authz-policy.yaml) und importieren Sie sie:name: AUTHZ_POLICY_NAME target: loadBalancingScheme: LOAD_BALANCING_SCHEME_UNSPECIFIED resources: - projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME httpRules: - to: operations: - paths: - prefix: / when: "!request.headers['content-type'].startsWith('application/grpc') && (request.path.endsWith(':generateContent') || request.path.endsWith(':streamGenerateContent'))" action: CUSTOM policyProfile: CONTENT_AUTHZ customProvider: authzExtension: resources: - projects/PROJECT_ID/locations/LOCATION/authzExtensions/AUTHZ_EXTENSION_NAMEgcloud network-security authz-policies import AUTHZ_POLICY_NAME \ --source=authz-policy.yaml \ --location=LOCATION \ --project=PROJECT_IDREST
curl -X POST \ "https://networksecurity.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/authzPolicies?authzPolicyId=AUTHZ_POLICY_NAME" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "target": { "loadBalancingScheme": "LOAD_BALANCING_SCHEME_UNSPECIFIED", "resources": ["projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME"] }, "httpRules": [{ "to": { "operations": [{"paths": [{"prefix": "/"}]}] }, "when": "!request.headers['"'"'content-type'"'"'].startsWith('"'"'application/grpc'"'"') && (request.path.endsWith('"'"':generateContent'"'"') || request.path.endsWith('"'"':streamGenerateContent'"'"'))" }], "action": "CUSTOM", "policyProfile": "CONTENT_AUTHZ", "customProvider": { "authzExtension": { "resources": ["projects/PROJECT_ID/locations/LOCATION/authzExtensions/AUTHZ_EXTENSION_NAME"] } } }'Dieser Befehl gibt einen Vorgang mit langer Ausführungszeit zurück. Warten Sie, bis der Vorgang abgeschlossen ist, bevor Sie fortfahren.
Richtlinie erstellen
Sobald die Policy Engine aktiv ist, können Sie die technischen und verhaltensbezogenen Schutzmaßnahmen für Ihre Agenten definieren.
- Bereich definieren: Legen Sie fest, ob die Richtlinie für alle Aktionen eines KI-Agents oder für ein bestimmtes Tool gilt.
- Beschränkungen erstellen: Geben Sie Ihre Geschäftsregeln in einfachem Deutsch an.
Console
- Rufen Sie in der Cloud de Confiance Console die Seite Richtlinien für semantische Governance auf.
- Klicken Sie auf + Richtlinie hinzufügen.
- Konfigurieren Sie in der Seitenleiste Richtlinie hinzufügen Folgendes:
- Name: Geben Sie eine eindeutige ID für die Richtlinie ein. Der Name darf nur Kleinbuchstaben, Zahlen und Bindestriche enthalten.
- Beschreibung: (Optional) Geben Sie eine kurze Beschreibung des Zwecks der Richtlinie ein.
- KI-Agent auswählen: Wählen Sie den bestimmten KI-Agenten oder alle KI-Agenten aus, für die diese Regel gilt. Wenn die Auswahl leer ist oder ein erwarteter Agent fehlt, lesen Sie die Teilnahmevoraussetzungen für Agenten.
- Zugriffsziele:
- Wenn Sie die Einschränkung auf alle Aktionen anwenden möchten, setzen Sie ein Häkchen bei Einschränkungen auf alle Tools anwenden.
- Wenn Sie bestimmte Ressourcen anvisieren möchten, wählen Sie in den Drop-down-Menüs einen MCP-Server und die einzelnen Tools aus.
- Einschränkungen: Geben Sie Ihre Geschäftsregeln in natürlicher Sprache ein (bis zu 5.000 Zeichen).
- Ablehnungsnachricht: (Optional) Geben Sie eine Nachricht (bis zu 1.000 Zeichen) ein, die Nutzern angezeigt wird, wenn diese Richtlinie eine Anfrage ablehnt, anstelle der Begründung der Richtlinie. In der REST API wird dies
agentResponseCustomization.denialMessagein der Richtlinienressource zugeordnet. Verwenden Sie mit der Google Cloud CLI--agent-response-denial-messagefürgcloud beta ai semantic-governance-policies createodergcloud beta ai semantic-governance-policies update(siehe Tab gcloud unten). Weitere Informationen finden Sie unter Risiko der Offenlegung von Informationen und Ablehnungsnachrichten mit mehreren Richtlinien.
- Klicken Sie auf Erstellen.
gcloud
Sie können eine Einschränkung mit dem Befehl gcloud beta ai semantic-governance-policies create entweder auf Agent-Ebene (gilt für alle Tools) oder auf Tool-Ebene konfigurieren.
Kundenservicemitarbeiter-ID finden
Zum Erstellen einer Richtlinie benötigen Sie die eindeutige ID Ihres KI-Agenten aus der Agent Registry. So finden Sie die ID:
gcloud alpha agent-registry agents list \
--project=PROJECT_ID \
--location=LOCATION
Die Agent-ID ist das letzte Segment des Felds name (z. B. agentregistry-00000000-0000-0000-abcd-012345678901). Verwenden Sie diesen Wert für das Segment AGENT_ID des vollständig qualifizierten Agent-Namens – projects/PROJECT_ID/locations/LOCATION/agents/AGENT_ID –, das mit den folgenden Befehlen an --agent übergeben wird.
Legen Sie vor dem Ausführen von Befehlen für Richtlinien für die semantische Governance die regionale API-Endpunktüberschreibung fest:
gcloud config set api_endpoint_overrides/aiplatform \
https://LOCATION-aiplatform.googleapis.com/
Richtlinie mit Agent-Bereich erstellen
gcloud beta ai semantic-governance-policies create POLICY_ID \
--location=LOCATION \
--display-name="Semantic governance policy for ShippingAgent-1" \
--description="Applies to all tool calls from the Cymbal shipping assistant agent" \
--agent=projects/PROJECT_ID/locations/LOCATION/agents/AGENT_ID \
--natural-language-constraint="Always use UPS as the shipping provider for shipments within the USA. Always use DHL as the shipping provider for shipments within the EU." \
--project=PROJECT_ID
Wenn Sie eine Ablehnungsnachricht konfigurieren möchten (siehe den Aufzählungspunkt Ablehnungsnachricht auf dem Tab Console und Ablehnungsnachrichten mit mehreren Richtlinien), fügen Sie --agent-response-denial-message hinzu:
gcloud beta ai semantic-governance-policies create POLICY_ID \
--location=LOCATION \
--display-name="Semantic governance policy for ShippingAgent-1" \
--agent=projects/PROJECT_ID/locations/LOCATION/agents/AGENT_ID \
--natural-language-constraint="Always use UPS as the shipping provider for shipments within the USA. Always use DHL as the shipping provider for shipments within the EU." \
--agent-response-denial-message="Sorry, I can only book shipments through the approved carriers for your region." \
--project=PROJECT_ID
Sie können auch --agent-response-denial-message mit gcloud beta ai semantic-governance-policies update zu einer vorhandenen Richtlinie hinzufügen oder aktualisieren.
MCP-Server finden
gcloud alpha agent-registry mcp-servers list \
--project=PROJECT_ID \
--location=LOCATION
Richtlinie mit Tool-Umfang erstellen
gcloud beta ai semantic-governance-policies create POLICY_ID \
--location=LOCATION \
--display-name="DISPLAY_NAME" \
--description="DESCRIPTION" \
--agent=projects/PROJECT_ID/locations/LOCATION/agents/AGENT_ID \
--mcp-tools="mcp-server=MCP_SERVER,tools=TOOL_NAME" \
--natural-language-constraint="NLC_TEXT" \
--project=PROJECT_ID
Ablehnungsnachrichten mit mehreren Richtlinien
Wenn durch eine einzelne Anfrage Ablehnungen aufgrund mehrerer Richtlinien ausgelöst werden, kombiniert die Richtlinien-Engine die in diesen Richtlinien konfigurierten Ablehnungsmitteilungen, bevor sie die Antwort an den Nutzer zurückgibt. Das folgende Verhalten gilt:
- Ablehnungsnachrichten aus jeder Richtlinie mit einem Ablehnungsurteil werden zusammen angezeigt und durch Leerzeilen getrennt.
- Doppelte Nachrichten werden nur einmal angezeigt.
- Wenn für einige Auslösungsrichtlinien eine Ablehnungsnachricht konfiguriert ist und für andere nicht, wird eine allgemeine Zeile „Diese Anfrage wurde aufgrund einer anderen Unternehmensrichtlinie abgelehnt.“ angehängt, um die Richtlinien ohne Ablehnungsnachricht abzudecken.
- Pro Anfrage werden maximal fünf Ablehnungsmeldungen angezeigt. Weitere Meldungen werden ausgelassen.
Probelaufmodus aktivieren
Sie können den Probelaufmodus (DRY_RUN) aktivieren. Der Probelauf ist ein reiner Prüf- oder Simulationsmodus, mit dem Sie Richtlinien auswerten können, ohne sie zu erzwingen. In diesem Modus wertet die Policy Engine alle Tool-Aufrufe anhand Ihrer Einschränkungen aus und protokolliert Ergebnisse, blockiert aber niemals Aktionen. So können Sie Ihre Einschränkungen testen und validieren, bevor Sie die Erzwingung aktivieren.
Wenn Sie den Probelaufmodus aktivieren möchten, fügen Sie den Metadaten Ihrer Autorisierungserweiterung sgpEnforcementMode: DRY_RUN hinzu:
curl -X PATCH \
"https://networkservices.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/authzExtensions/AUTHZ_EXTENSION_NAME?updateMask=metadata" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"metadata": {
"sgpEnforcementMode": "DRY_RUN"
}
}'
Im Probelaufmodus:
- Alle Tool-Aufrufe sind zulässig, unabhängig vom Ergebnis.
- Entscheidungen und Begründungen werden zur Überprüfung protokolliert.
- Sie können die Logs prüfen, um herauszufinden, welche Aktionen blockiert worden wären, und Ihre Einschränkungen anpassen, bevor Sie in den erzwungenen Modus wechseln.
Wenn Sie wieder zum normalen erzwungenen Modus zurückkehren möchten, entfernen Sie sgpEnforcementMode aus den Metadaten:
curl -X PATCH \
"https://networkservices.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/authzExtensions/AUTHZ_EXTENSION_NAME?updateMask=metadata" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"metadata": {}
}'
Logs zur Richtlinienbewertung ansehen
Die Richtlinien-Engine schreibt für jede Bewertung einen strukturierten Logeintrag in Cloud Logging in Ihrem Projekt. Der Eintrag enthält einen allgemeinen verdict und ein evaluations-Array mit einem verdict und rationale für jedes Tool oder jede Aktion.
- Über die Konsole:Wählen Sie auf der Seite Richtlinien eine Richtlinie aus.
- Klicken Sie im Bereich Details im Abschnitt Beobachtbarkeit auf Cloud Logging > Details ansehen.
Im Log-Explorer: Geben Sie
semantic-governance-policyin das Abfragefeld ein oder verwenden Sie den folgenden expliziten Filter:logName="projects/PROJECT_ID/logs/semantic-governance-policy"
Das folgende Beispiel zeigt einen Logeintrag:
{
"jsonPayload": {
"token_usage": 1859,
"verdict": "ALLOW",
"token_usage_breakdown": {"output": 43, "thinking": 0, "input": 1816, "total": 1859},
"evaluations": [
{
"toolName": "process_refund",
"verdict": "ALLOW",
"actionName": "process_refund",
"rationale": "The action is aligned with the user's request to process a refund and complies with the constraints regarding order ID length."
}
]
},
"resource": {"type": "global", "labels": {"project_id": "PROJECT_NUMBER"}},
"logName": "projects/PROJECT_ID/logs/semantic-governance-policy"
}
Wichtigste Felder:
verdict: Gesamte Entscheidung, entwederALLOWoderDENY.evaluations[].rationale: Die Begründung dafür, warum die Policy Engine für jedes Tool oder jede Aktion ein bestimmtes Ergebnis erzielt hat.token_usage: Die Anzahl der Modell-Tokens, die für die Bewertung verwendet wurden.
Anfrage-Tracing aktivieren
Die Richtlinien-Engine exportiert für jede Anfrage, die sie auswertet, einen Trace nach Cloud Trace in Ihrem Projekt. So können Sie die Latenz pro Anfrage und die Richtliniendurchsetzung prüfen. Wenn Sie diese Traces erhalten möchten, aktivieren Sie die Cloud Trace API und gewähren Sie dem Vertex AI-Dienstkonto (P4SA) die Berechtigung zum Schreiben von Traces.
Cloud Trace API aktivieren:
gcloud services enable cloudtrace.googleapis.com \ --project=PROJECT_IDWeisen Sie dem Vertex AI-Dienstkonto die Rolle „Cloud Trace Agent“ (
roles/cloudtrace.agent) zu. Diese Rolle gewährt nur die Berechtigung zum Schreiben von Traces (cloudtrace.traces.patch):export PROJECT_NUM=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-${PROJECT_NUM}@gcp-sa-aiplatform.s3ns-system.iam.gserviceaccount.com" \ --role="roles/cloudtrace.agent"
Nachdem Sie beide konfiguriert haben, senden Sie eine Anfrage über Ihren Agenten und sehen Sie sich die Traces in Trace Explorer für Ihr Projekt an.
Richtlinienkonfiguration verwalten
Nachdem die Richtlinie für semantische Governance ausgeführt wurde, können Sie einzelne Richtlinien löschen oder die Engine von Ihrem Agent Gateway trennen.
Richtlinie löschen
So entfernen Sie eine einzelne Richtlinie, ohne die Integration der Richtlinie für die semantische Governance insgesamt zu beeinträchtigen:
gcloud beta ai semantic-governance-policies delete POLICY_ID \
--location=LOCATION \
--project=PROJECT_ID
Alternativ können Sie den folgenden curl-Befehl verwenden:
curl -X DELETE \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/semanticGovernancePolicies/POLICY_ID" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)"
Bereitstellung einer Policy Engine aufheben
REST
curl -X POST "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/semanticGovernancePolicyEngine:deprovision" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
-d '{}'
gcloud
gcloud beta ai semantic-governance-policy-engine deprovision \
--location=LOCATION \
--project=PROJECT_ID
Verbindung der Policy Engine zu Agent Gateway trennen
Sie können die Policy Engine von Ihrem Agent Gateway trennen, damit Tool-Aufrufe nicht mehr anhand Ihrer Einschränkungen ausgewertet werden.
Löschen Sie die Autorisierungsrichtlinie, mit der die Durchsetzung der Richtlinie für die semantische Governance an Ihr Agent Gateway gebunden ist:
gcloud network-security authz-policies delete AUTHZ_POLICY_NAME \
--location=LOCATION \
--project=PROJECT_ID
Wenn Sie die Policy Engine später wieder verbinden möchten, erstellen Sie die Autorisierungsrichtlinie neu, wie unter Policy Engine mit Agent Gateway verbinden beschrieben.
(Optional) Autorisierungserweiterung löschen
Löschen Sie die Autorisierungserweiterung, die während der Einrichtung erstellt wurde.
gcloud network-services authz-extensions delete AUTHZ_EXTENSION_NAME \
--location=LOCATION \
--project=PROJECT_ID
(Optional) Kundenverwaltete Ressourcen bereinigen
Beim Aufheben der Bereitstellung der Engine werden nur die von Google verwalteten Sicherungsressourcen entfernt. Sie müssen die Ressourcen, die Sie während der Einrichtung in Ihrem eigenen Projekt erstellt haben, manuell löschen, wenn sie nicht mehr benötigt werden.
Private DNS-Zone entfernen
gcloud dns managed-zones delete DNS_ZONE_NAME \
--project=PROJECT_ID
Subnetz und VPC entfernen
gcloud compute networks subnets delete SUBNET_NAME \
--region=LOCATION \
--project=PROJECT_ID
gcloud compute networks delete NETWORK_NAME \
--project=PROJECT_ID
(Optional) IAM-Bindungen entfernen
Wenn Sie dem Vertex AI-Dienstkonto (P4SA) Berechtigungen erteilt haben, können Sie diese entfernen:
export PROJECT_NUM=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-${PROJECT_NUM}@gcp-sa-aiplatform.s3ns-system.iam.gserviceaccount.com" \
--role="roles/compute.networkAdmin"
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-${PROJECT_NUM}@gcp-sa-aiplatform.s3ns-system.iam.gserviceaccount.com" \
--role="roles/dns.admin"
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-${PROJECT_NUM}@gcp-sa-aiplatform.s3ns-system.iam.gserviceaccount.com" \
--role="roles/cloudtrace.agent"
(Optional) Cloud Trace API deaktivieren
gcloud services disable cloudtrace.googleapis.com --project=PROJECT_ID
(Optional) Agent Platform API deaktivieren
gcloud services disable aiplatform.googleapis.com --project=PROJECT_ID
Durchsetzung von Richtlinien debuggen
| Symptom | Wahrscheinliche Ursache | Was Sie prüfen sollten |
|---|---|---|
| Toolaufruf erlaubt, aber Blockierung erwartet | Die Richtlinie entsprach nicht dem Bereich und dem Agenten oder die Einschränkung war zu weitreichend. | Prüfen Sie im Bewertungslog, ob die Richtlinie übereinstimmt, lesen Sie das Ergebnis und optimieren Sie die NLC. |
| Toolaufruf abgelehnt, aber „Zulassen“ erwartet | Einschränkung zu streng oder widersprüchliche Regeln | rationale im Log lesen, NLC optimieren, im Probelaufmodus iterieren |
| Kein Urteil | Engine nicht aktiv oder Gateway nicht gebunden | Prüfen Sie, ob die Engine state ACTIVE ist und ob die Autorisierungsrichtlinie, die Erweiterung oder beides vorhanden ist. |
So beheben Sie Fehler bei einem unerwarteten Urteil:
- Prüfen Sie das Ergebnis und die Begründung in den Richtlinienauswertungsprotokollen.
- Anfrage verfolgen – siehe Anfrage-Tracing aktivieren.
- Änderungen im Probelaufmodus sicher validieren.
- Bereitstellung bestätigen: Der Engine-Status ist
ACTIVEund die Gateway-Bindung wurde hergestellt.
Fehlerkatalog
In der folgenden Tabelle sind Fehler aufgeführt, die bei der Verwaltung von Richtlinien für die semantische Governance auftreten können, sowie Schritte zur Behebung dieser Fehler:
| Fehlername | Beschreibung | Vorgeschlagene Maßnahme |
|---|---|---|
SEMANTIC_GOVERNANCE_POLICY_ALREADY_EXISTS |
Die von Ihnen angegebene Richtlinien-ID ist in diesem Projekt und an diesem Standort bereits vorhanden. | Verwenden Sie eine eindeutige Richtlinien-ID oder aktualisieren Sie die vorhandene Richtlinie mit einer PATCH-Anfrage. |
SEMANTIC_GOVERNANCE_POLICY_ETAG_MISMATCH |
Das ETag in Ihrer Anfrage stimmt nicht mit der aktuellen Version der Ressource überein. | Rufen Sie die aktuelle Version der Richtlinie ab, um das aktuelle ETag zu erhalten, bevor Sie die Aktualisierung versuchen. |
SEMANTIC_GOVERNANCE_POLICY_AGENT_REQUIRED |
Das Feld agent fehlt in der Anfrage. |
Geben Sie den Ressourcennamen des KI-Agenten an, für den diese Richtlinie gilt. |
SEMANTIC_GOVERNANCE_POLICY_CONSTRAINT_REQUIRED |
Das Feld „natural_language_constraint“ fehlt. |
Geben Sie Ihre Geschäftsregeln im Feld „Einschränkung“ in einfachem Englisch an. |
SEMANTIC_GOVERNANCE_POLICY_AGENT_INVALID_NAME |
Der Ressourcenname des KI-Agenten ist fehlerhaft. | Prüfen Sie das Format: projects/PROJECT_ID/locations/LOCATION/agents/AGENT_ID. |
SEMANTIC_GOVERNANCE_POLICY_AGENT_UNSUPPORTED_REGION |
Die für den Agenten angegebene Region wird von Agent Registry nicht unterstützt. | Verwenden Sie eine Region, die sowohl von der Agent Registry als auch von der Richtlinie für die semantische Governance unterstützt wird. |
SEMANTIC_GOVERNANCE_POLICY_AGENT_NOT_FOUND |
Der angegebene KI-Agent wurde nicht gefunden. | Prüfen Sie, ob der Agent in der Agent Registry für das angegebene Projekt und den angegebenen Standort vorhanden ist. |
SEMANTIC_GOVERNANCE_POLICY_AGENT_NOT_CONFIGURED |
Für den Agent ist kein gültiger RuntimeIdentity vorhanden. |
Konfigurieren Sie Ihren Agenten mit einer gültigen Laufzeitidentität, bevor Sie eine Richtlinie anwenden. |
SEMANTIC_GOVERNANCE_POLICY_MCP_SERVER_NOT_FOUND |
Der angegebene MCP-Server wurde nicht gefunden. | Prüfen Sie, ob der MCP-Server in der Agent Registry für das Projekt registriert ist. |
SEMANTIC_GOVERNANCE_POLICY_MCP_SERVER_INVALID_NAME |
Der Ressourcenname des MCP-Servers ist fehlerhaft. | Prüfen Sie das Format: projects/PROJECT_ID/locations/LOCATION/mcpServers/SERVER_ID. |
SEMANTIC_GOVERNANCE_POLICY_MCP_SERVER_UNSUPPORTED_REGION |
Die für den MCP-Server angegebene Region wird nicht unterstützt. | Verwenden Sie eine unterstützte Region für Ihren MCP-Server. |
SEMANTIC_GOVERNANCE_POLICY_REGISTRY_DENIED |
Das System kann die Agent Registry aufgrund fehlender Berechtigungen nicht abfragen. | Aktivieren Sie die Agent Registry API und weisen Sie Ihrem Konto die Rolle agentregistry.viewer zu. |
SEMANTIC_GOVERNANCE_POLICY_ENGINE_NOT_ENABLED_IN_REGION |
Die Policy Engine ist in der angeforderten Region nicht aktiv. | Folgen Sie der Anleitung unter Bereitstellung und Aktivierung, um die Engine in Ihrer Region zu aktivieren. |
SEMANTIC_GOVERNANCE_POLICY_ENGINE_SERVICE_NOT_AVAILABLE_IN_LOCATION |
Der Dienst für die Richtlinie für semantische Governance ist am angeforderten Standort nicht verfügbar. | Verwenden Sie einen der unterstützten Standorte für den Policy Engine-Dienst für semantische Governance. |
Nächste Schritte
- Weitere Informationen zu den gcloud CLI-Befehlen für Vertex AI
- Richtlinienentscheidungen im Log-Explorer im Blick behalten.