Mengonfigurasi kebijakan tata kelola Semantik dan Policy Engine
Bagian ini membahas transisi dari kesiapan infrastruktur ke penulisan kebijakan.
Prasyarat
Sebelum mengonfigurasi kebijakan tata kelola semantik, selesaikan langkah-langkah berikut.
Aktifkan API yang diperlukan
Sebelum memulai, aktifkan API yang diperlukan untuk Kebijakan tata kelola semantik dan komponen jaringannya:
gcloud services enable \
aiplatform.googleapis.com \
agentregistry.googleapis.com \
networkservices.googleapis.com \
networksecurity.googleapis.com \
compute.googleapis.com \
dns.googleapis.com \
--project=PROJECT_ID
Memberikan izin IAM ke akun layanan Vertex AI (khusus binding yang dikelola Google)
Jika Anda menggunakan opsi binding yang dikelola Google selama
penyediaan, berikan peran yang diperlukan akun layanan Vertex AI (P4SA) untuk
membuat endpoint Private Service Connect (PSC)
(roles/compute.networkAdmin) dan set data DNS (roles/dns.admin) di project Anda. Jika menggunakan opsi Binding yang dikelola sendiri, Anda dapat
melewati langkah ini karena Anda membuat resource jaringan tersebut sendiri.
Buat identitas layanan (idempotensi) dan berikan peran:
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"
Perintah penghapusan yang sesuai ada di Hapus binding IAM di bagian pembersihan.
Persyaratan kelayakan agen
Agar muncul di pemilih agen kebijakan tata kelola Semantik di konsol
Cloud de Confiance , mesin penalaran agen harus telah di-deploy dengan setelan
identity_type=AGENT_IDENTITY dan agent_gateway_config. Jika salah satunya tidak ada, konsol Cloud de Confiance akan memfilter agen dari pemilih.
API dan gcloud akan menampilkan error eksplisit.
Untuk men-deploy agen yang memenuhi persyaratan ini, ikuti langkah-langkah di bagian Merutekan traffic Agent Runtime melalui Agent Gateway. Kedua kolom tidak dapat diubah pada mesin penalaran yang ada, sehingga agen yang di-deploy tanpa kolom tersebut harus di-deploy ulang — patching tidak akan berfungsi.
Untuk memverifikasi bahwa agen yang ada memenuhi syarat, konfirmasi bahwa mesin penalaran
spec.effectiveIdentity-nya dimulai dengan agents.global.:
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"
Lokasi yang didukung
Policy Engine Tata kelola semantik dan Kebijakan tata kelola semantik didukung di lokasi regional berikut:
| Geografi | Wilayah yang tersedia |
|---|---|
| Amerika | us-central1, us-east1, us-east4, us-west1 |
| Eropa | europe-southwest1, europe-west1, europe-west4, europe-west8 |
Penyediaan dan pemberdayaan
Aktifkan Policy Engine tata kelola semantik. Tindakan ini menyediakan lingkungan runtime yang diperlukan. Proses penyediaan biasanya memerlukan waktu sekitar 2 hingga 3 menit. Namun, saat permintaan tinggi atau pool warmup sedang diisi ulang, penyediaan dapat memerlukan waktu hingga 20 menit. Pilih salah satu opsi penyediaan berikut:
- Binding yang dikelola Google: Google membuat resource jaringan yang mendasarinya di project Cloud de Confiance by S3NS Anda dan mengelola siklus prosesnya secara otomatis.
- Pengikatan yang dikelola sendiri: Anda membuat dan mengelola resource jaringan yang diperlukan (
network,subnetwork, dandnsZoneName) langsung di project Cloud de Confiance by S3NS Anda.
Setelah menyelesaikan penyediaan, Anda harus menghubungkan Policy Engine ke Agent Gateway.
Binding yang dikelola Google
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"
Ganti kode berikut:
GATEWAY_NAMEdengan nama gateway yang unik.DNS_NAMEdengan nama zona DNS pribadi yang akan digunakan.PROJECT_IDdengan project ID Cloud de Confiance by S3NS Anda (projects/PROJECT_ID/global/networks/default). Jika Anda menggunakan jaringan dan subnet kustom, ganti jalur resourcenetworkdansubnetworklengkap sebagaimana mestinya.
Mengambil nama host DNS yang dibuat secara otomatis
Saat Anda menyediakan mesin dengan binding yang dikelola Google, Google akan otomatis membuat endpoint Private Service Connect (PSC) dan mendaftarkan data A DNS di zona DNS pribadi Anda. FQDN data ini berfungsi sebagai
SGP_DNS_HOSTNAME dan diisi di kolom khusus output dnsRecord pada
konfigurasi gateway Anda.
Untuk mengambil nama host DNS yang dibuat secara otomatis:
gcloud
Jalankan perintah berikut untuk menjelaskan konfigurasi Policy Engine:
gcloud beta ai semantic-governance-policy-engine describe \
--location=LOCATION \
--project=PROJECT_ID
REST
Kirim permintaan GET untuk mengambil resource mesin:
curl "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/semanticGovernancePolicyEngine" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)"
Dalam respons, temukan kolom dnsRecord di bagian
gatewayConfigs.GATEWAY_NAME.dnsRecord. Simpan FQDN ini—Anda akan memerlukannya sebagai
SGP_DNS_HOSTNAME saat menghubungkan Policy Engine ke
Agent Gateway.
Binding yang dikelola sendiri
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
Perintah ini menampilkan operasi yang berjalan lama. Anda dapat melakukan polling status operasi dengan mengganti OPERATION dengan nilai name dari respons:
curl "https://LOCATION-aiplatform.googleapis.com/v1beta1/OPERATION" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
Atau, periksa status mesin secara keseluruhan hingga kolom state menampilkan
ACTIVE:
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"
Mengonfigurasi jaringan (khusus yang dikelola sendiri)
Setelah Policy Engine disediakan, konfigurasi komponen jaringan yang diperlukan agar Agent Gateway dapat berkomunikasi dengan Policy Engine.
Meskipun Google otomatis membuat endpoint PSC di project tenant yang dikelola Google untuk jalur yang dikelola Google, untuk jalur yang dikelola sendiri, Anda harus membuat dan mengelola endpoint PSC secara manual di project Anda sendiri Cloud de Confiance by S3NS .
1. Menyediakan jaringan VPC dan subnet
Pada langkah ini, Anda akan membuat jaringan VPC, subnet, dan subnet khusus proxy untuk
traffic agen. Rentang IP yang ditampilkan (10.11.12.0/24 dan 10.11.13.0/24) adalah contoh. Anda dapat menggunakan rentang pribadi RFC 1918 apa pun yang sesuai dengan desain jaringan Anda.
Buat jaringan VPC:
gcloud compute networks create NETWORK_NAME \ --subnet-mode=auto \ --project=PROJECT_IDGanti
NETWORK_NAMEdengan nama untuk jaringan VPC Anda (misalnya,agent-network).Buat subnet:
gcloud compute networks subnets create SUBNET_NAME \ --network=NETWORK_NAME \ --region=LOCATION \ --range=10.11.12.0/24 \ --project=PROJECT_IDGanti
SUBNET_NAMEdengan nama untuk subnet Anda (misalnya,agent-subnet).Buat subnet khusus proxy (diperlukan untuk load balancer terkelola):
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_IDGanti
PROXY_SUBNET_NAMEdengan nama untuk subnet khusus proxy Anda (misalnya,agent-proxy-subnet).
2. Menyediakan zona DNS pribadi
Buat zona DNS pribadi agar Agent Gateway dapat me-resolve nama host Policy Engine:
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: nama untuk zona DNS Anda (misalnya,my-private-zone).internal.example.com.: nama DNS untuk zona Anda, termasuk titik di bagian akhir.
3. Buat network attachment
Buat lampiran jaringan untuk mengizinkan Agent Gateway terhubung ke
resource di VPC Anda. Preferensi koneksi harus ditetapkan ke
ACCEPT_AUTOMATIC.
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: nama untuk lampiran jaringan Anda (misalnya,sgp-nw-attachment).SUBNET_NAME: subnet yang Anda buat di langkah 1.
4. Buat IP statis, endpoint PSC, dan data DNS
Cadangkan alamat IP statis, buat endpoint Private Service Connect (PSC) yang mengarah ke lampiran layanan Policy Engine, dan buat catatan DNS agar dapat dijangkau.
# 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
Ganti kode berikut:
STATIC_IP_NAME: nama untuk alamat IP yang dipesan (misalnya,sgp-psc-ip).PSC_ENDPOINT_NAME: nama untuk endpoint PSC Anda (misalnya,sgp-psc-endpoint).PSC_SERVICE_ATTACHMENT: nilaipscServiceAttachmentyang disimpan dari respons penyediaan.SGP_DNS_HOSTNAME: nama host di zona DNS pribadi Anda, dalam formatLOCATION.DNS_ZONE_SUFFIX, denganDNS_ZONE_SUFFIXadalah nama DNS yang Anda tentukan saat membuat zona DNS pribadi. Misalnya, jika lokasi Anda adalahus-west1dan akhiran zona DNS Anda adalahinternal.example.com, gunakanus-west1.internal.example.com.
5. Mengonfigurasi konektivitas VPC di Agent Gateway
Setelah membuat resource jaringan, Anda harus mendaftarkan network attachment dan peering DNS di Agent Gateway agar dapat menjangkau Policy Engine melalui jaringan pribadi.
Untuk petunjuk mendetail, lihat Mengonfigurasi konektivitas VPC di panduan penyiapan Gateway Agen. Setidaknya, Anda harus:
- Daftarkan network attachment yang dibuat pada langkah 3 dengan konfigurasi egress Agent Gateway Anda.
- Daftarkan peering DNS agar gateway dapat me-resolve nama host DNS pribadi yang dibuat di langkah 4.
Menghubungkan mesin kebijakan ke Agent Gateway
Setelah jaringan dikonfigurasi, Anda harus membuat ekstensi otorisasi dan kebijakan otorisasi agar Agent Gateway dapat meneruskan traffic ke Policy Engine untuk dievaluasi.
Buat ekstensi otorisasi: Buat ekstensi otorisasi yang mengarah ke nama host DNS Policy Engine. Gunakan
SGP_DNS_HOSTNAMEyang sama dengan yang Anda buat data DNS-nya di Mengonfigurasi jaringan (langkah 4). Ini adalah mekanisme yang digunakan Agent Gateway untuk mengirim traffic ke mesin kebijakan untuk dievaluasi.gcloud
Tentukan konfigurasi ekstensi dalam file YAML (
authz-ext.yaml) dan impor: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" }'Ganti
SGP_DNS_HOSTNAMEdengan nama host DNS yang data A-nya Anda buat di Mengonfigurasi jaringan (langkah 4).Perintah ini menampilkan operasi yang berjalan lama. Tunggu hingga operasi selesai sebelum melanjutkan.
Buat kebijakan otorisasi: Buat kebijakan otorisasi yang mengikat ekstensi ke Agent Gateway Anda. Tindakan ini akan memberi tahu Agent Gateway untuk mengirim traffic melalui Policy Engine untuk dievaluasi.
gcloud
Tentukan konfigurasi kebijakan otorisasi dalam file YAML (
authz-policy.yaml) dan impor: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"] } } }'Perintah ini menampilkan operasi yang berjalan lama. Tunggu hingga operasi selesai sebelum melanjutkan.
Buat kebijakan
Setelah Policy Engine aktif, Anda dapat menentukan batas aman teknis dan perilaku untuk agen Anda.
- Tentukan cakupan: Tentukan apakah kebijakan berlaku untuk semua tindakan yang dilakukan oleh agen atau menargetkan alat tertentu.
- Tulis batasan: Berikan aturan bisnis Anda dalam bahasa Inggris yang jelas.
Konsol
- Di konsol Cloud de Confiance , buka halaman Semantic governance policies.
- Klik + Tambahkan Kebijakan.
- Di panel samping Add Policy, konfigurasikan hal berikut:
- Name: Masukkan ID unik untuk kebijakan. Nama hanya boleh berisi huruf kecil, angka, dan tanda hubung.
- Description: (Opsional) Masukkan deskripsi singkat tentang tujuan kebijakan.
- Pemilihan agen: Pilih agen tertentu atau semua agen yang akan menerapkan aturan ini. Jika pemilih kosong atau agen yang Anda harapkan tidak ada, lihat Persyaratan kelayakan agen.
- Target akses:
- Untuk menerapkan batasan ke setiap tindakan, centang kotak Apply constraints to all tools.
- Untuk menargetkan resource tertentu, pilih Server MCP dan Alat individual dari menu drop-down.
- Batasan: Masukkan aturan bisnis Anda dalam bahasa alami (maksimal 5.000 karakter).
- Pesan penolakan: (Opsional) Masukkan pesan (hingga 1.000
karakter) untuk ditampilkan kepada pengguna saat kebijakan ini menolak permintaan,
sebagai pengganti alasan kebijakan. Di REST API, ini dipetakan
ke
agentResponseCustomization.denialMessagepada resource kebijakan; dengan Google Cloud CLI, gunakan--agent-response-denial-messagepadagcloud beta ai semantic-governance-policies createataugcloud beta ai semantic-governance-policies update(lihat tab gcloud di bawah). Lihat Risiko pemaparan informasi dan Pesan penolakan dengan beberapa kebijakan.
- Klik Create.
gcloud
Anda dapat mengonfigurasi batasan pada cakupan agen (berlaku untuk semua alat) atau
cakupan alat menggunakan perintah
gcloud beta ai semantic-governance-policies create.
Menemukan ID agen Anda
Untuk membuat kebijakan, Anda memerlukan ID unik agen dari Agent Registry. Cantumkan agen di project Anda untuk menemukan ID:
gcloud alpha agent-registry agents list \
--project=PROJECT_ID \
--location=LOCATION
ID agen adalah segmen terakhir dari kolom name (misalnya,
agentregistry-00000000-0000-0000-abcd-012345678901). Gunakan nilai ini untuk
segmen AGENT_ID dari
nama agen yang sepenuhnya memenuhi syarat —
projects/PROJECT_ID/locations/LOCATION/agents/AGENT_ID —
yang diteruskan oleh perintah berikut ke --agent.
Sebelum menjalankan perintah kebijakan tata kelola semantik, tetapkan penggantian endpoint API regional:
gcloud config set api_endpoint_overrides/aiplatform \
https://LOCATION-aiplatform.googleapis.com/
Membuat kebijakan cakupan agen
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
Untuk mengonfigurasi pesan penolakan (lihat poin Pesan penolakan
di tab Konsol, dan
Pesan penolakan dengan beberapa kebijakan),
tambahkan --agent-response-denial-message:
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
Anda juga dapat menambahkan atau memperbarui --agent-response-denial-message pada kebijakan yang ada dengan gcloud beta ai semantic-governance-policies update.
Menemukan server MCP Anda
gcloud alpha agent-registry mcp-servers list \
--project=PROJECT_ID \
--location=LOCATION
Membuat kebijakan cakupan alat
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
Pesan penolakan dengan beberapa kebijakan
Jika satu permintaan memicu penolakan dari beberapa kebijakan, mesin kebijakan akan menggabungkan pesan penolakan yang dikonfigurasi pada kebijakan tersebut sebelum mengembalikan respons kepada pengguna. Perilaku berikut berlaku:
- Pesan penolakan dari setiap kebijakan dengan hasil penolakan ditampilkan bersama, dipisahkan oleh baris kosong.
- Pesan duplikat ditampilkan satu kali.
- Jika beberapa kebijakan penyiapan memiliki pesan penolakan yang dikonfigurasi dan yang lainnya tidak, baris umum "Permintaan ini ditolak karena kebijakan bisnis lainnya." ditambahkan untuk mencakup kebijakan yang tidak memiliki pesan penolakan.
- Maksimal 5 pesan penolakan ditampilkan per permintaan; pesan tambahan tidak ditampilkan.
Mengaktifkan mode uji coba
Anda dapat mengaktifkan mode uji coba (DRY_RUN). Uji coba adalah mode khusus audit atau simulasi yang memungkinkan Anda mengevaluasi kebijakan tanpa menerapkannya. Dalam mode ini, Policy Engine mengevaluasi semua panggilan alat berdasarkan batasan Anda dan mencatat keputusan, tetapi tidak pernah memblokir tindakan. Dengan begitu, Anda dapat menguji dan memvalidasi batasan sebelum mengaktifkan penerapan.
Untuk mengaktifkan mode uji coba, tambahkan sgpEnforcementMode: DRY_RUN ke metadata ekstensi otorisasi Anda:
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"
}
}'
Dalam mode uji coba:
- Semua panggilan alat diizinkan terlepas dari hasilnya.
- Putusan dan alasan dicatat untuk ditinjau.
- Anda dapat meninjau log untuk mengidentifikasi tindakan mana yang akan diblokir dan menyempurnakan batasan sebelum beralih ke mode diterapkan.
Untuk beralih kembali ke mode penegakan normal, hapus sgpEnforcementMode dari metadata:
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": {}
}'
Melihat log evaluasi kebijakan
Policy Engine menulis entri log terstruktur untuk setiap evaluasi ke Cloud Logging di project Anda. Entri mencatat verdict keseluruhan dan array evaluations dengan verdict dan rationale untuk setiap alat atau tindakan.
- Dari Konsol: Di halaman Kebijakan, pilih kebijakan.
- Di panel Details, di bagian Observability, klik Cloud Logging > View details.
Di Logs Explorer: ketik
semantic-governance-policydi kotak kueri atau gunakan filter eksplisit berikut:logName="projects/PROJECT_ID/logs/semantic-governance-policy"
Contoh berikut adalah contoh entri log:
{
"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"
}
Kolom utama:
verdict: Keputusan keseluruhan, baikALLOWmaupunDENY.evaluations[].rationale: Alasan mengapa Policy Engine mencapai putusan tertentu untuk setiap alat atau tindakan.token_usage: Jumlah token model yang digunakan evaluasi.
Mengaktifkan pelacakan permintaan
Policy Engine mengekspor trace untuk setiap permintaan yang dievaluasinya ke Cloud Trace di project Anda, sehingga Anda dapat memeriksa latensi per permintaan dan penegakan kebijakan. Untuk menerima rekaman aktivitas ini, aktifkan Cloud Trace API dan berikan izin akun layanan Vertex AI (P4SA) untuk menulis rekaman aktivitas.
Aktifkan Cloud Trace API:
gcloud services enable cloudtrace.googleapis.com \ --project=PROJECT_IDBerikan peran Cloud Trace Agent (
roles/cloudtrace.agent) ke akun layanan Vertex AI. Peran ini hanya memberikan izin trace-write (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"
Setelah keduanya dikonfigurasi, kirim permintaan melalui agen Anda dan lihat rekaman aktivitas di Trace explorer untuk project Anda.
Mengelola konfigurasi kebijakan
Setelah Kebijakan tata kelola semantik berjalan, Anda dapat menghapus kebijakan satu per satu atau memutuskan hubungan mesin dari Agent Gateway.
Menghapus kebijakan
Untuk menghapus kebijakan satu per satu tanpa memengaruhi integrasi Kebijakan tata kelola semantik secara keseluruhan:
gcloud beta ai semantic-governance-policies delete POLICY_ID \
--location=LOCATION \
--project=PROJECT_ID
Atau, gunakan perintah curl berikut:
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)"
Membatalkan penyediaan Policy Engine
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
Memutuskan hubungan Policy Engine dari Agent Gateway
Anda dapat memutuskan hubungan Policy Engine dari Agent Gateway untuk menghentikan evaluasi panggilan alat terhadap batasan Anda.
Hapus kebijakan otorisasi yang mengikat penerapan kebijakan tata kelola Semantik ke Agent Gateway Anda:
gcloud network-security authz-policies delete AUTHZ_POLICY_NAME \
--location=LOCATION \
--project=PROJECT_ID
Untuk menghubungkan kembali mesin kebijakan nanti, buat ulang kebijakan otorisasi seperti yang dijelaskan dalam Menghubungkan mesin kebijakan ke Agent Gateway.
(Opsional) Menghapus ekstensi otorisasi
Hapus ekstensi otorisasi yang dibuat selama penyiapan.
gcloud network-services authz-extensions delete AUTHZ_EXTENSION_NAME \
--location=LOCATION \
--project=PROJECT_ID
(Opsional) Membersihkan resource yang dikelola pelanggan
Membatalkan penyediaan mesin hanya akan menghapus resource pendukung yang dikelola Google. Anda harus menghapus resource yang Anda buat di project Anda sendiri secara manual selama penyiapan jika tidak lagi diperlukan.
Hapus zona DNS pribadi
gcloud dns managed-zones delete DNS_ZONE_NAME \
--project=PROJECT_ID
Hapus subnet dan VPC
gcloud compute networks subnets delete SUBNET_NAME \
--region=LOCATION \
--project=PROJECT_ID
gcloud compute networks delete NETWORK_NAME \
--project=PROJECT_ID
(Opsional) Menghapus binding IAM
Jika Anda memberikan izin ke akun layanan Vertex AI (P4SA), Anda dapat menghapusnya:
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"
(Opsional) Nonaktifkan Cloud Trace API
gcloud services disable cloudtrace.googleapis.com --project=PROJECT_ID
(Opsional) Menonaktifkan Agent Platform API
gcloud services disable aiplatform.googleapis.com --project=PROJECT_ID
Men-debug penegakan kebijakan
| Gejala | Kemungkinan penyebab | Yang harus diperiksa |
|---|---|---|
| Panggilan alat diizinkan, tetapi seharusnya diblokir | Kebijakan tidak cocok dengan cakupan dan agen atau batasan terlalu permisif | Dalam log evaluasi, konfirmasi bahwa kebijakan cocok dan baca hasilnya; perbaiki NLC |
| Panggilan alat ditolak, tetapi seharusnya diizinkan | Batasan terlalu ketat atau aturan yang bertentangan | Baca rationale dalam log; sesuaikan NLC; lakukan iterasi dalam mode uji coba |
| Tidak ada putusan sama sekali | Mesin tidak aktif atau gateway tidak terikat | Verifikasi bahwa mesin state adalah ACTIVE dan kebijakan otorisasi, ekstensi, atau keduanya ada |
Untuk men-debug keputusan yang tidak terduga:
- Periksa hasil dan alasan di log evaluasi kebijakan.
- Lacak permintaan -- lihat Mengaktifkan pelacakan permintaan.
- Validasi perubahan dengan aman menggunakan mode uji coba.
- Konfirmasi deployment -- status mesin adalah
ACTIVEdan binding gateway telah dibuat.
Katalog error
Tabel berikut mencantumkan error yang mungkin Anda alami saat mengelola Kebijakan Tata Kelola Semantik, beserta langkah-langkah untuk mengatasinya:
| Nama error | Deskripsi | Tindakan yang disarankan |
|---|---|---|
SEMANTIC_GOVERNANCE_POLICY_ALREADY_EXISTS |
ID kebijakan yang Anda tentukan sudah ada di project dan lokasi ini. | Gunakan ID kebijakan unik, atau gunakan permintaan PATCH untuk memperbarui kebijakan yang ada. |
SEMANTIC_GOVERNANCE_POLICY_ETAG_MISMATCH |
ETag dalam permintaan Anda tidak cocok dengan versi resource saat ini. | Ambil kebijakan versi terbaru untuk mendapatkan ETag saat ini sebelum mencoba melakukan update. |
SEMANTIC_GOVERNANCE_POLICY_AGENT_REQUIRED |
Kolom agent tidak ada dalam permintaan. |
Tentukan nama resource agen yang akan dikenai kebijakan ini. |
SEMANTIC_GOVERNANCE_POLICY_CONSTRAINT_REQUIRED |
Kolom natural_language_constraint tidak ada. |
Berikan aturan bisnis Anda dalam bahasa Inggris yang jelas di kolom batasan. |
SEMANTIC_GOVERNANCE_POLICY_AGENT_INVALID_NAME |
Nama resource agen salah format. | Verifikasi format: projects/PROJECT_ID/locations/LOCATION/agents/AGENT_ID. |
SEMANTIC_GOVERNANCE_POLICY_AGENT_UNSUPPORTED_REGION |
Region yang ditentukan untuk agen tidak didukung oleh Agent Registry. | Gunakan region yang didukung oleh Agent Registry dan Kebijakan tata kelola semantik. |
SEMANTIC_GOVERNANCE_POLICY_AGENT_NOT_FOUND |
Agen yang ditentukan tidak dapat ditemukan. | Pastikan agen ada di Agent Registry untuk project dan lokasi yang ditentukan. |
SEMANTIC_GOVERNANCE_POLICY_AGENT_NOT_CONFIGURED |
Agen tidak memiliki RuntimeIdentity yang valid. |
Konfigurasikan agen Anda dengan identitas runtime yang valid sebelum menerapkan kebijakan. |
SEMANTIC_GOVERNANCE_POLICY_MCP_SERVER_NOT_FOUND |
Server MCP yang ditentukan tidak dapat ditemukan. | Pastikan server MCP terdaftar di Agent Registry untuk project. |
SEMANTIC_GOVERNANCE_POLICY_MCP_SERVER_INVALID_NAME |
Nama resource server MCP salah bentuk. | Verifikasi format: projects/PROJECT_ID/locations/LOCATION/mcpServers/SERVER_ID. |
SEMANTIC_GOVERNANCE_POLICY_MCP_SERVER_UNSUPPORTED_REGION |
Wilayah yang ditentukan untuk server MCP tidak didukung. | Gunakan wilayah yang didukung untuk server MCP Anda. |
SEMANTIC_GOVERNANCE_POLICY_REGISTRY_DENIED |
Sistem tidak dapat membuat kueri Pendaftaran Agen karena izin tidak ada. | Aktifkan Agent Registry API dan pastikan akun Anda memiliki peran agentregistry.viewer. |
SEMANTIC_GOVERNANCE_POLICY_ENGINE_NOT_ENABLED_IN_REGION |
Policy Engine tidak aktif di region yang diminta. | Ikuti langkah-langkah di Penyediaan dan pengaktifan untuk mengaktifkan mesin di wilayah Anda. |
SEMANTIC_GOVERNANCE_POLICY_ENGINE_SERVICE_NOT_AVAILABLE_IN_LOCATION |
Layanan Policy Engine tata kelola semantik tidak tersedia di lokasi yang diminta. | Gunakan salah satu lokasi yang didukung untuk layanan Semantic governance policy engine. |
Langkah berikutnya
- Pelajari lebih lanjut perintah gcloud CLI Vertex AI.
- Pantau keputusan kebijakan di Log Explorer.