1. Введение
В этом практическом занятии вы безопасно развернете систему с одним агентом/несколькими инструментами, используя Agent Development Kit (ADK), Agent Engine и Google Kubernetes Engine. Вы узнаете, как ИИ-агент, запущенный пользователем в Gemini Enterprise, безопасно взаимодействует с Google Cloud, используя GKE Gateway с Service Extensions для защиты конфиденциальных данных, передаваемых через MCP-инструменты.
Чему вы научитесь
- Разверните агента-помощника по ипотеке ADK в Agent Engine с использованием инструментов OpenTelemetry.
- Разверните серверы MCP на стороне бэкэнда в Google Kubernetes Engine (GKE) за внутренним шлюзом.
- Подключите Agent Engine к проектной VPC, используя интерфейс PSC и DNS-пиринг.
- Предоставляйте доступ к REST API в качестве инструментов MCP, используя Apigee MCP Discovery Proxy.
- Настройте шлюз GKE для управляемого исходящего трафика агентов с использованием расширений служб для удаления данных из DLP и авторизации MCP.
- Примените защитные механизмы ИИ с помощью Model Armor для оперативного и быстрого реагирования на запросы.
Что вам нужно
- Веб-браузер, например Chrome.
- Проект Google Cloud с включенной функцией выставления счетов.
- Базовые знания Terraform, Kubernetes и Python.
Данный практический семинар предназначен для разработчиков и специалистов по безопасности, которые хотят развернуть и обеспечить безопасность рабочих процессов с использованием агентов в корпоративных средах.
2. Прежде чем начать
Создайте проект в Google Cloud и включите необходимые API.
- В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud .
- Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить , включена ли функция выставления счетов для проекта .
Необходимые роли IAM
В этом практическом занятии предполагается, что у вас есть роль « Владелец проекта» для вашего проекта в Google Cloud.
Включить API
- В консоли Google Cloud нажмите «Активировать Cloud Shell» : если вы никогда раньше не использовали Cloud Shell, появится панель, позволяющая запустить Cloud Shell в доверенной среде с ускорением или без него. Если вас попросят авторизовать Cloud Shell, нажмите «Авторизовать» .
- В Cloud Shell включите все необходимые API:
gcloud services enable \ compute.googleapis.com \ container.googleapis.com \ dns.googleapis.com \ certificatemanager.googleapis.com \ dlp.googleapis.com \ aiplatform.googleapis.com \ discoveryengine.googleapis.com \ apigee.googleapis.com
Установите зависимости
В Cloud Shell убедитесь, что у вас установлены необходимые инструменты. Terraform, kubectl и Go обычно уже установлены. Вам также необходимо установить uv (менеджер пакетов Python) и Skaffold:
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install Skaffold
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64 && \
sudo install skaffold /usr/local/bin/
Установите переменные среды
Установите следующие переменные среды, которые будут использоваться на протяжении всего этого практического занятия:
export PROJECT_ID=$(gcloud config get project)
export REGION=us-central1
export LOCATION=${REGION}
Создайте общедоступную DNS-зону.
Для выполнения этого практического задания необходимо предварительно создать общедоступную DNS-зону в вашем проекте до применения конфигурации Terraform. Эта зона необходима для делегирования серверов имен, чтобы автоматизировать создание необходимых записей для Certificate Manager .
Для создания зоны выполните следующую команду в Cloud Shell:
gcloud dns managed-zones create "inference-gateway-zone" \
--dns-name="gateway.example.com." \
--description="Public zone for Inference Gateway" \
--visibility="public" \
--project="${PROJECT_ID}"
3. Клонируйте репозиторий GitHub.
- В терминале на вашем локальном компьютере клонируйте репозиторий
cloud-networking-solutions:git clone https://github.com/googleCloudPlatform/cloud-networking-solutions.git - Перейдите в каталог загруженного репозитория:
cd cloud-networking-solutions/demos/service-extensions-gke-gateway
4. Развертывание инфраструктуры с помощью Terraform.
Для создания базовой сети, кластера GKE и необходимых конфигураций идентификации вы будете использовать Terraform.
- Перейдите в каталог
terraformв клонированном репозитории:cd terraform - Настройте бэкенд Terraform. Создайте файл
backend.confдля частичной настройки бэкенда. Заменитес уникальным в глобальном масштабе названием корзины.cat <<EOF > backend.conf bucket = "<YOUR_TERRAFORM_STATE_BUCKET>" prefix = "terraform" EOF
- Скопируйте пример файла с переменными и обновите его значениями из вашего проекта:
cp example.tfvars terraform.tfvars - Отредактируйте файл
terraform.tfvarsи замените значения-заполнители. Замените следующее:- project_id : идентификатор вашего проекта в Google Cloud.
- organization_id : ваш числовой идентификатор организации GCP.
- dns_zone_domain : домен, который вы контролируете (например,
demo.example.com.). Должен заканчиваться точкой.
-
enable_certificate_manager = true -
enable_model_armor = true -
enable_agent_engine = true -
enable_psc_interface = true
- Инициализируйте и примените конфигурацию Terraform:
terraform init -backend-config=backend.conf terraform plan -out=tfplan terraform apply "tfplan"
5. Разверните тестовые рабочие нагрузки с помощью Skaffold.
Далее разверните серверы MCP и внешние службы обработки данных в вашем кластере GKE.
- Подключитесь к кластеру GKE, созданному с помощью Terraform:
gcloud container clusters get-credentials gateway-cluster \ --region=${REGION} \ --project=${PROJECT_ID} - Вернитесь в корневую папку проекта и настройте шаблоны манифеста Kubernetes. Скопируйте пример конфигурации и задайте идентификатор вашего проекта и базовый домен: установите
BASE_DOMAINв соответствии с вашей средой. ЗначениеBASE_DOMAINдолжно совпадать с переменной Terraformdns_zone_domain(без точки в конце).export BASE_DOMAIN=example.com - Сгенерируйте манифесты Kubernetes и
skaffold.yamlиз шаблонов:bash k8s/generate.sh envsubst '${PROJECT_ID}' < skaffold.yaml.tmpl > skaffold.yaml - Разверните все серверные службы:
skaffold run -m legacy-dms,income-verification-api,corporate-email,dlp-ext-proc - Разверните конфигурацию шлюза и HTTPRoute:
kubectl apply -k k8s/gateway-internal/
6. Примените ограничения для ИИ с помощью Model Armor.
Вы можете делегировать принятие решений по обеспечению безопасности контента, таких как удаление вредоносных запросов или предотвращение утечек данных, системе Model Armor .
Предварительные требования: предоставление ролей IAM
Необходимо предоставить необходимые роли учетной записи службы GKE Gateway. Учетная запись службы имеет следующий формат: service-GATEWAY_PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com .
Выполните следующие команды, чтобы предоставить необходимые права доступа:
export GATEWAY_PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
# Grant roles in the Gateway project
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:service-${GATEWAY_PROJECT_NUMBER}@gcp-sa-dep.iam.gserviceaccount.com \
--role=roles/modelarmor.calloutUser
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:service-${GATEWAY_PROJECT_NUMBER}@gcp-sa-dep.iam.gserviceaccount.com \
--role=roles/serviceusage.serviceUsageConsumer
# Grant role in the project containing Model Armor templates
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:service-${GATEWAY_PROJECT_NUMBER}@gcp-sa-dep.iam.gserviceaccount.com \
--role=roles/modelarmor.user
Создайте расширение авторизации Model Armor.
Укажите расширение, указывающее на службу Model Armor в вашем регионе. Сохраните эту конфигурацию как ma-content-authz-extension.yaml .
Экспортируйте идентификатор шаблона брони модели, созданный Terraform.
export MA_TEMPLATE_ID=$(cd terraform && terraform output -raw model_armor_template_id)
cat >ma-content-authz-extension.yaml <<EOF
name: ma-ext
service: modelarmor.$LOCATION.rep.googleapis.com
metadata:
model_armor_settings: '[
{
"response_template_id": "projects/${PROJECT_ID}/locations/$LOCATION/templates/${MA_TEMPLATE_ID}",
"request_template_id": "projects/${PROJECT_ID}/locations/$LOCATION/templates/${MA_TEMPLATE_ID}"
}
]'
failOpen: true
EOF
gcloud beta service-extensions authz-extensions import ma-ext \
--source=ma-content-authz-extension.yaml \
--location=$LOCATION
Создайте политику авторизации образцов брони.
Создайте политику, которая связывает расширение Model Armor с вашим Agent Gateway. Сохраните эту конфигурацию как ma-content-authz-policy.yaml .
cat >ma-content-authz-policy.yaml <<EOF
name: ma-content-authz-policy
target:
resources:
- "projects/$PROJECT_ID/locations/$LOCATION/gateways/mortgage-gateway"
policyProfile: CONTENT_AUTHZ
action: CUSTOM
customProvider:
authzExtension:
resources:
- "projects/$PROJECT_ID/locations/$LOCATION/authzExtensions/ma-ext"
EOF
gcloud network-security authz-policies import ma-content-authz-policy \
--source=ma-content-authz-policy.yaml \
--location=$LOCATION
7. Настройка Gemini Enterprise
Включить возможность мониторинга
В системе ипотечного агента по умолчанию включена инструментальная среда OpenTelemetry, а также следующие переменные среды телеметрии:
-
GOOGLE_CLOUD_AGENT_ENGINE_ENABLE_TELEMETRY=true -
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true -
OTEL_TRACES_SAMPLER=parentbased_traceidratio
Подробную информацию о настройке трассировки и диапазонов в Gemini Enterprise см. в разделе «Управление параметрами мониторинга» .
Включить броню модели в Gemini Enterprise
Примените фильтрацию Model Armor к помощнику Gemini Enterprise, чтобы проверить как запросы пользователей, так и ответы модели. Для глобальных приложений Gemini Enterprise в многорегиональной версии us требуется шаблон Model Armor, поэтому Terraform развертывает для этой цели отдельный шаблон.
Получите имя шаблона из вывода Terraform:
cd terraform
export GE_MA_TEMPLATE_NAME=$(terraform output -raw model_armor_gemini_enterprise_template_name)
Получите идентификатор приложения (APP ID) вашего экземпляра Gemini Enterprise:
- В консоли Google Cloud перейдите на страницу Gemini Enterprise.
- В навигационном меню нажмите «Приложения».
- Скопируйте идентификатор экземпляра Gemini Enterprise.
Экспортируйте идентификатор в качестве переменной среды.
export APP_ID=<PASTE_APP_ID>
Внесите изменения в помощника, чтобы включить модель брони:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: ${PROJECT_ID}" \
"https://global-discoveryengine.googleapis.com/v1/projects/${PROJECT_ID}/locations/global/collections/default_collection/engines/${APP_ID}/assistants/default_assistant?update_mask=customerPolicy" \
-d '{
"customerPolicy": {
"modelArmorConfig": {
"userPromptTemplate": "'"$GE_MA_TEMPLATE_NAME"'",
"responseTemplate": "'"$GE_MA_TEMPLATE_NAME"'",
"failureMode": "FAIL_OPEN"
}
}
}'
Установите failureMode в FAIL_OPEN чтобы разрешить запросы, когда Model Armor недоступен, или FAIL_CLOSED чтобы заблокировать их.
8. Развертывание агента и добавление агента в Gemini Enterprise
Получите данные для авторизации.
Выполните следующие шаги, чтобы получить данные для авторизации.
- В консоли Google Cloud на странице «API и сервисы» перейдите на страницу «Учетные данные».
- Перейдите в раздел «Учетные данные» .
- Нажмите «Создать учетные данные» и выберите идентификатор клиента OAuth.
- В поле «Тип приложения» выберите «Веб-приложение».
- В разделе «Авторизованные URI перенаправления» добавьте следующие URI:
- https://vertexaisearch.cloud.google.com/oauth-redirect
- https://vertexaisearch.cloud.google.com/static/oauth/oauth.html
- Нажмите «Создать».
- Экспортируйте идентификатор клиента и секретный ключ клиента для развертывания.
export OAUTH_CLIENT_ID=<Client ID>
export OAUTH_CLIENT_SECRET=<Client Secret>
Привлеките ипотечного агента
Скрипт src/mortgage-agent/deploy_agent.py развертывает агент ADK в Agent Engine и, при необходимости, регистрирует его в Gemini Enterprise. Дополнительную информацию о процессе регистрации в Gemini Enterprise см. в разделе «Регистрация и управление агентом A2A» .
Экспорт переменных из развертывания Terraform.
export VPC_NAME=$(cd terraform && terraform output -raw vpc_name)
export PSC_ATTACHMENT=$(cd terraform && terraform output -raw psc_interface_network_attachment_id)
export DNS_PEERING_DOMAIN=$(cd terraform && terraform output -raw psc_interface_dns_peering_domain)
Установите зависимости и выполните развертывание:
cd src/mortgage-agent
uv sync
Разверните агент в Vertex Agent Engine и зарегистрируйте его в Gemini Enterprise:
uv run python deploy_agent.py \
--project=${PROJECT_ID} \
--dms-mcp-url=https://dms.${DNS_PEERING_DOMAIN%%.}/mcp \
--income-verification-url=https://income-verification.${DNS_PEERING_DOMAIN%%.} \
--email-mcp-url=https://email.${DNS_PEERING_DOMAIN%%.}/mcp \
--network-attachment=projects/${PROJECT_ID}/regions/${REGION}/networkAttachments/${PSC_ATTACHMENT} \
--dns-peering-domain=${DNS_PEERING_DOMAIN} \
--dns-peering-target-project=${PROJECT_ID} \
--dns-peering-target-network=${VPC_NAME} \
--enable-agent-identity \
--ge-deploy \
--app-id=${APP_ID} \
--oauth-client-id=${OAUTH_CLIENT_ID} \
--agent-name=mortgage-agent
Ссылка на флаг
Флаг | По умолчанию | Описание |
| | Идентификатор проекта GCP |
| (необходимый) | URL-адрес сервера DMS MCP |
| (необходимый) | Базовый URL API для проверки доходов; |
| (необходимый) | URL-адрес сервера MCP для отправки электронной почты |
| | регион GCP |
| | Корзина GCS для подготовки к посадке |
| | Отображаемое имя для развернутого агента |
| (необязательный) | Обновить существующий агент на месте (укажите полное имя ресурса) |
| (необязательный) | Подключение к сети для интерфейса PSC (полный путь или имя) |
| (необязательный) | DNS-домен для DNS-пиринга PSC-I (должен заканчиваться точкой) |
| (необязательный) | Проект, размещающий целевую сеть VPC для DNS-пиринга. |
| (необязательный) | Имя сети VPC для DNS-пиринга |
| | Включить учетные данные с минимальными привилегиями для каждого агента. |
| | Зарегистрируйте агента в Gemini Enterprise после развертывания. |
| (необязательный) | Идентификатор движка Gemini Enterprise (требуется при использовании |
| | Идентификатор клиента OAuth2 (требуется при использовании |
| | Секретный ключ клиента OAuth2 (требуется при использовании |
| | Название модели Gemini для агента |
| | Авторизация и имя агента Gemini Enterprise |
| (необязательный) | Зарегистрируйте существующий механизм логических рассуждений в Gemini Enterprise без повторного развертывания (укажите полное имя ресурса). |
Добавить пользователей с правами доступа
Чтобы добавить пользователей с правами доступа к агенту ADK с помощью консоли Google Cloud , см. раздел «Добавление или изменение пользователей и их прав доступа».
9. Проверьте своего агента.
Теперь, когда вы развернули и настроили агента, шлюз GKE и все внутренние службы, протестируйте сквозной процесс, чтобы убедиться, что политики безопасности работают должным образом. Вы будете взаимодействовать с «ипотечным агентом» в интерфейсе Gemini Enterprise.
Доступ к Агенту
- Перейдите на страницу Gemini Enterprise в консоли Google Cloud.
- Выберите приложение Gemini Enterprise, которое вы настроили ранее, где зарегистрирован "ипотечный агент".
- На вкладке «Обзор» перейдите по URL-адресу, указанному в разделе «Ваше веб-приложение Gemini Enterprise готово».
- В меню слева выберите вкладку «Агенты» ( Галерея агентов) .
- Теперь вы сможете пообщаться с "помощником ипотечного агента".
Тестовый пример 1: «Оптимальный сценарий» — обобщение данных с удалением персональных данных.
Этот тест подтверждает, что агент может получить доступ к внутренним системам через Agent Gateway и что политики предотвращения потери данных (DLP) применяются для удаления конфиденциальной информации.
- Отправьте следующее сообщение помощнику ипотечного агента:
I'm reviewing the Sterling family's current application. Can you summarize their 2024 and 2025 tax returns and verify if their total household income meets our 2026 debt-to-income requirements? - Что происходит за кулисами:
- Агент в Gemini Enterprise формирует запросы к необходимым инструментам (например, к системе управления документами (СУБД) для налоговых деклараций, API для проверки доходов).
- Программа Model Armor проверяет полезные нагрузки запроса и ответа на наличие угроз.
- Настроенная вами «Политика авторизации на основе контента» запускает пользовательское расширение DLP (
dlp-content-authz-ext). Это расширение проверяет данные, полученные из бэкэнд-систем. - Сервис DLP удаляет любую персональную идентификационную информацию (PII), такую как номера социального страхования (SSN), из данных налоговой декларации до того, как они попадут к агенту.
- Ожидаемый результат: Агент вернет сводку налоговых деклараций и статус подтверждения дохода. Внимательно изучите предоставленную агентом сводку. Обратите внимание, что конфиденциальная информация, такая как идентификационные номера налогоплательщиков (SSN), заменена заполнителями (например,
[REDACTED]). Это подтверждает выполнение политики DLP через шлюз.
Наблюдаемость и аудит
В ходе этих тестов платформа агентов и связанные с ней сервисы собирают телеметрию:
- Ведение журналов в облаке: Подробные журналы от шлюза GKE, рабочих нагрузок GKE и других служб обеспечивают контрольный след запросов, оценок политик и результатов.
- Cloud Trace: Инструментарий OpenTelemetry, настроенный в агенте и бэкэнд-сервисах, позволяет визуализировать весь поток вызовов, от Gemini Enterprise через шлюз GKE до бэкэнд-инструментов. Это бесценно для отладки и понимания жизненного цикла запроса.
Просмотрите трассировки ваших сессий:
- В консоли Google Cloud перейдите на страницу Vertex AI Agent Engine.
- Перейдите в Agent Engine . В списке отобразятся экземпляры Agent Engine, входящие в выбранный проект. Вы можете использовать поле «Фильтр», чтобы отфильтровать список по указанному столбцу.
- Щелкните по имени вашего экземпляра Agent Engine.
- Нажмите вкладку «Трассировки».
- Вы можете выбрать режим просмотра сессии или режим просмотра периода.
- Щелкните по сеансу или участку, чтобы просмотреть подробные сведения о трассировке, включая направленный ациклический граф (DAG) его участков, входных и выходных данных, а также атрибуты метаданных.
10. Дополнительно: Преобразование REST API в MCP с помощью Apigee.
Хотя наша служба проверки доходов изначально поддерживает протокол контекста модели (MCP), многие устаревшие корпоративные системы предоставляют только RESTful API. На этом необязательном шаге вы будете использовать Apigee MCP Discovery Proxy для преобразования REST-адреса службы проверки доходов в инструмент MCP. Это позволит вам применять расширенные политики управления, ограничения скорости и безопасности Apigee к вашим устаревшим инструментам.
Для получения более подробной информации см. обзор Apigee MCP .
Предварительные требования
Прежде чем продолжить, убедитесь, что вы создали и настроили Apigee API Hub . Следуйте инструкциям в документации по созданию API Hub , чтобы настроить его и подключить свой экземпляр Apigee.
Шаг 1: Создайте сервисное вложение для Apigee.
Чтобы Apigee мог взаимодействовать с вашими внутренними сервисами, работающими в GKE, необходимо создать подключение к сервису.
- Найдите внутреннее правило переадресации шлюза GKE:
export RULE_URI=$(gcloud compute forwarding-rules list \ --filter="loadBalancingScheme=INTERNAL_MANAGED AND target~targetHttpsProxies" \ --format="value(selfLink.segment(6), region.basename(), name)" | \ awk '{print "projects/" $1 "/regions/" $2 "/forwardingRules/" $3}') - Создайте сервисное вложение:
gcloud compute service-attachments create internal-gke-gateway-apigee \ --region=${REGION} \ --target-service=$RULE_URI \ --connection-preference=ACCEPT_AUTOMATIC \ --nat-subnets=gateway-psc-subnet
Шаг 2: Включите Apigee в Terraform.
Теперь обновите конфигурацию инфраструктуры, чтобы создать организацию и экземпляр Apigee.
- Перейдите в каталог
terraform:cd terraform - Отредактируйте
terraform.tfvarsи установитеenable_apigee = true. - Внесите изменения:
terraform apply
Шаг 3: Определение спецификации OpenAPI
Apigee использует стандартные определения OpenAPI (OAS) для обнаружения и преобразования инструментов. Создайте файл с именем income-verification-oas.yaml со следующим содержимым:
openapi: 3.0.0
info:
title: Income Verification API
description: Verify applicant income through third-party employer records.
version: 1.0.0
servers:
- url: https://income-verification.internal.${DNS_PEERING_DOMAIN%%.}/api
paths:
/income-verification/verify:
post:
summary: Verify applicant income
operationId: verifyApplicant
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
first_name:
type: string
last_name:
type: string
responses:
'200':
description: Successful verification
content:
application/json:
schema:
type: object
Шаг 4: Разверните прокси-сервер обнаружения Apigee MCP.
MCP Discovery Proxy — это специализированный прокси-сервер Apigee, который выступает в качестве сервера MCP.
- В пользовательском интерфейсе Apigee перейдите в раздел Разработка > API-прокси .
- Нажмите «Создать новый» и выберите «Прокси для обнаружения MCP» .
- Назовите процедуру
income-verification-discoveryчерез доверенное лицо. - В разделе OpenAPI Spec загрузите созданный вами файл
income-verification-oas.yaml. - В качестве группы окружения выберите ту, к которой доступен ваш внутренний шлюз.
- Нажмите «Развернуть» .
(Необязательно) Добавьте политику безопасности
Перед развертыванием или предоставлением доступа к прокси-серверу необходимо обеспечить его безопасность. Вы можете добавить политики для обеспечения соблюдения требований безопасности, таких как токены OAuth или ключи API. Инструкции по добавлению политики безопасности см. в документации Apigee по обеспечению безопасности API .
Шаг 5: Проверка доступа к инструменту с транскодированными данными.
После развертывания Apigee автоматически преобразует конечную точку POST /verify в инструмент MCP verifyApplicant .
- Перечислите инструменты, доступные через конечную точку Apigee MCP:
curl -X POST https://api.internal.${DNS_PEERING_DOMAIN%%.}/income-verification-discovery/mcp \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {} }' - В ответе вы должны увидеть инструмент
verifyApplicant, преобразованный из вашей REST-спецификации. Теперь вы можете вызвать этот инструмент через Apigee, и Apigee обработает преобразование в базовый REST-сервис, применив при этом любые настроенные вами политики безопасности.
Шаг 6: Обновите настройки ипотечного агента для использования Apigee.
Теперь, когда Apigee успешно преобразует ваш REST API в инструмент, совместимый с MCP, вам необходимо обновить конфигурацию развертывания агента. Указав агенту конечную точку Apigee, вы обеспечите всем запросам на проверку дохода преимущества корпоративного уровня безопасности, ведения журналов и управления трафиком Apigee.
- Определите URL-адрес вашей учетной записи Apigee MCP: ваша конечная точка должна соответствовать следующему шаблону:
https://api.internal.${DNS_PEERING_DOMAIN%%.}/income-verification-discovery/mcp. - Повторно запустите скрипт развертывания: используйте флаг
--updateвместе с новым параметром--income-verification-url. Это обновит существующего агента в Agent Engine без необходимости полного удаления.cd src/mortgage-agent # Update the agent to route income verification through Apigee uv run python deploy_agent.py \ --project=${PROJECT_ID} \ --update \ --agent-name=mortgage-agent \ --dms-mcp-url=https://dms.${DNS_PEERING_DOMAIN%%.}/mcp \ --income-verification-url=https://api.internal.${DNS_PEERING_DOMAIN%%.}/income-verification-discovery/mcp \ --email-mcp-url=https://email.${DNS_PEERING_DOMAIN%%.}/mcp \ --network-attachment=projects/${PROJECT_ID}/regions/${REGION}/networkAttachments/${PSC_ATTACHMENT} \ --dns-peering-domain=${DNS_PEERING_DOMAIN} \ --dns-peering-target-project=${PROJECT_ID} \ --dns-peering-target-network=${VPC_NAME} \ --ge-deploy \ --app-id=${APP_ID} \ --oauth-client-id=${OAUTH_CLIENT_ID}
- Подтвердите изменение: вернитесь в интерфейс Gemini Enterprise и попросите агента проверить доход заявителя.
На вкладке «Отладка» в Apigee вы должны увидеть, как входящий JSON-RPC запрос от шлюза GKE преобразуется в стандартный REST"Can you verify the joint income for the Sterlings using the verification service?"POSTзапрос к вашему бэкэнд-сервису GKE.
11. Уборка
Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, созданные в этом практическом задании, удалите их после завершения работы.
- Удалите вложение услуги, если оно было создано вручную:
gcloud compute service-attachments delete internal-gke-gateway \ --region=${REGION} --quiet - Перейдите в каталог
terraformи удалите все ресурсы:cd terraform terraform destroy - При желании можно полностью удалить проект Google Cloud:
gcloud projects delete ${PROJECT_ID}
12. Поздравляем!
Вы успешно завершили этот практический урок и научились обеспечивать безопасность развертывания агентских корпоративных систем в различных облачных средах.
Что вы осветили
- Внедрил агента-помощника по ипотеке ADK в Agent Engine с использованием инструментов OpenTelemetry.
- Развернуты серверы MCP на стороне бэкэнда в GKE за внутренним шлюзом.
- Agent Engine подключен к проектной VPC с использованием интерфейса PSC и DNS-пиринга.
- Настроен шлюз GKE для управляемого исходящего трафика агентов с маскировкой DLP и авторизацией MCP.
- Применение средств защиты на основе искусственного интеллекта с использованием Model Armor для оперативного и быстрого реагирования на запросы.
- При необходимости REST API-интерфейсы могут быть преобразованы в MCP с использованием Apigee MCP Discovery Proxy.
Следующие шаги
- Изучите модель брони
- Почитайте об Agent Engine
- Изучите возможности Gemini Enterprise