Bảo mật các hoạt động triển khai doanh nghiệp dựa trên tác nhân trên nhiều đám mây

1. Giới thiệu

Trong lớp học lập trình này, bạn sẽ triển khai một tác nhân / nhiều công cụ một cách an toàn bằng Bộ công cụ phát triển tác nhân (ADK), Agent Engine và Google Kubernetes Engine. Bạn sẽ tìm hiểu cách một tác nhân AI do người dùng khởi tạo trong Gemini Enterprise điều hướng Google Cloud một cách an toàn, dựa vào Cổng GKE có Tiện ích dịch vụ để chỉnh sửa dữ liệu nhạy cảm trong quá trình truyền dữ liệu từ các phản hồi của công cụ MCP.

Kiến thức bạn sẽ học được

Bạn cần có

  • Một trình duyệt web như Chrome
  • Một dự án trên Google Cloud đã bật tính năng thanh toán
  • Quen thuộc cơ bản với Terraform, Kubernetes và Python

Lớp học lập trình này dành cho các nhà phát triển và chuyên gia bảo mật muốn triển khai và bảo mật quy trình làm việc dựa trên tác nhân trong môi trường doanh nghiệp.

2. Trước khi bắt đầu

Tạo một dự án trên Google Cloud và bật các API bắt buộc.

  1. Trong Google Cloud Console, trên trang chọn dự án, hãy chọn hoặc tạo một dự án trên Google Cloud .
  2. Đảm bảo bạn đã bật tính năng thanh toán cho dự án trên Cloud. Tìm hiểu cách kiểm tra xem tính năng thanh toán có được bật trên một dự án hay không.

Các vai trò IAM bắt buộc

Lớp học lập trình này giả định rằng bạn có vai trò Chủ sở hữu dự án cho dự án Google Cloud của mình.

Bật API

  1. Trong bảng điều khiển Google Cloud, hãy nhấp vào Kích hoạt Cloud Shell: Nếu bạn chưa từng sử dụng Cloud Shell, một ngăn sẽ xuất hiện để bạn chọn khởi động Cloud Shell trong một môi trường đáng tin cậy có hoặc không có chế độ tăng tốc. Nếu được yêu cầu uỷ quyền cho Cloud Shell, hãy nhấp vào Uỷ quyền.
  2. Trong Cloud Shell, hãy bật tất cả các API bắt buộc:
    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
    

Cài đặt các phần phụ thuộc

Trong Cloud Shell, hãy đảm bảo bạn đã cài đặt các công cụ cần thiết. Terraform, kubectl và Go thường được cài đặt sẵn. Bạn cần cài đặt uv (trình quản lý gói Python) và 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/

Đặt các biến môi trường

Thiết lập các biến môi trường sau đây được dùng trong suốt lớp học lập trình này:

export PROJECT_ID=$(gcloud config get project)
export REGION=us-central1
export LOCATION=${REGION}

Tạo một vùng DNS công khai

Lớp học lập trình này yêu cầu phải có một vùng DNS công khai trong dự án trước khi bạn áp dụng cấu hình Terraform. Vùng này là cần thiết cho việc uỷ quyền máy chủ tên để quá trình thiết lập có thể tự động hoá việc tạo các bản ghi bắt buộc cho Certificate Manager.

Chạy lệnh sau trong Cloud Shell để tạo vùng:

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. Sao chép kho lưu trữ GitHub

  1. Trong một cửa sổ dòng lệnh trên máy cục bộ, hãy sao chép kho lưu trữ cloud-networking-solutions:
    git clone https://github.com/googleCloudPlatform/cloud-networking-solutions.git
    
  2. Chuyển đến thư mục kho lưu trữ đã tải xuống:
    cd cloud-networking-solutions/demos/service-extensions-gke-gateway
    

4. Triển khai cơ sở hạ tầng bằng Terraform

Bạn sẽ sử dụng Terraform để cung cấp mạng cơ sở, cụm GKE và các cấu hình danh tính bắt buộc.

  1. Chuyển đến thư mục terraform trong kho lưu trữ đã sao chép:
    cd terraform
    
  2. Định cấu hình phần phụ trợ Terraform. Tạo tệp backend.conf để định cấu hình một phần phụ trợ. Thay thế bằng một tên bộ chứa duy nhất trên toàn cầu.
    cat <<EOF > backend.conf
    bucket = "<YOUR_TERRAFORM_STATE_BUCKET>"
    prefix = "terraform"
    EOF
    
  1. Sao chép tệp biến mẫu và cập nhật tệp đó bằng các giá trị dự án của bạn:
    cp example.tfvars terraform.tfvars
    
  2. Chỉnh sửa terraform.tfvars và thay thế các giá trị trình giữ chỗ.Thay thế nội dung sau:
    • project_id: mã dự án trên đám mây của bạn.
    • organization_id: mã nhận dạng tổ chức GCP dạng số của bạn.
    • dns_zone_domain: một miền mà bạn kiểm soát (ví dụ: demo.example.com.). Phải kết thúc bằng dấu chấm.
    Đảm bảo bạn đã bật các cờ tính năng sau (các cờ này được định cấu hình sẵn trong tệp ví dụ):
    • enable_certificate_manager = true
    • enable_model_armor = true
    • enable_agent_engine = true
    • enable_psc_interface = true
  3. Khởi chạy và áp dụng cấu hình Terraform:
    terraform init -backend-config=backend.conf
    terraform plan -out=tfplan
    terraform apply "tfplan"
    

5. Triển khai khối lượng công việc mẫu bằng Skaffold

Tiếp theo, hãy triển khai các máy chủ MCP và dịch vụ xử lý bên ngoài vào cụm GKE của bạn.

  1. Kết nối với cụm GKE do Terraform tạo:
    gcloud container clusters get-credentials gateway-cluster \
        --region=${REGION} \
        --project=${PROJECT_ID}
    
  2. Quay lại thư mục gốc của dự án và định cấu hình các mẫu tệp kê khai Kubernetes. Sao chép cấu hình mẫu và đặt mã dự án cũng như miền cơ sở:Đặt BASE_DOMAIN sao cho phù hợp với môi trường của bạn. BASE_DOMAIN phải khớp với biến dns_zone_domain Terraform (không có dấu chấm ở cuối).
    export BASE_DOMAIN=example.com
    
  3. Tạo tệp kê khai Kubernetes và skaffold.yaml từ các mẫu:
    bash k8s/generate.sh
    envsubst '${PROJECT_ID}' < skaffold.yaml.tmpl > skaffold.yaml
    
  4. Triển khai tất cả các dịch vụ phụ trợ:
    skaffold run -m legacy-dms,income-verification-api,corporate-email,dlp-ext-proc
    
  5. Triển khai cấu hình Gateway và HTTPRoute:
    kubectl apply -k k8s/gateway-internal/
    

6. Áp dụng các biện pháp bảo vệ AI bằng Model Armor

Bạn có thể uỷ quyền cho Model Armor đưa ra các quyết định về bảo mật nội dung, chẳng hạn như xoá các câu lệnh gây hại hoặc ngăn chặn rò rỉ dữ liệu.

Điều kiện tiên quyết: Cấp vai trò IAM

Bạn phải cấp các vai trò bắt buộc cho tài khoản dịch vụ GKE Gateway. Tài khoản dịch vụ có định dạng: service-GATEWAY_PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com.

Chạy các lệnh sau để cấp các quyền cần thiết:

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

Tạo tiện ích uỷ quyền Model Armor

Xác định một tiện ích trỏ đến dịch vụ Model Armor ở khu vực của bạn. Lưu cấu hình này dưới dạng ma-content-authz-extension.yaml.

Xuất Mã mẫu Model Armor do Terraform tạo.

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

Tạo Chính sách uỷ quyền Model Armor

Tạo một chính sách liên kết tiện ích Model Armor với Agent Gateway. Lưu cấu hình này dưới dạng 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. Định cấu hình Gemini Enterprise

Bật khả năng ghi nhận

Tác nhân thế chấp được triển khai bằng khả năng đo lường OpenTelemetry và các biến môi trường đo từ xa sau đây được bật theo mặc định:

  • GOOGLE_CLOUD_AGENT_ENGINE_ENABLE_TELEMETRY=true
  • OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true
  • OTEL_TRACES_SAMPLER=parentbased_traceidratio

Để biết thông tin chi tiết về cách định cấu hình dấu vết và khoảng thời gian trong Gemini Enterprise, hãy xem phần Quản lý chế độ cài đặt khả năng quan sát.

Bật Model Armor trong Gemini Enterprise

Áp dụng tính năng lọc Model Armor cho trợ lý Gemini Enterprise để sàng lọc cả câu lệnh của người dùng và câu trả lời của mô hình. Các ứng dụng Gemini Enterprise trên toàn cầu yêu cầu một mẫu Model Armor trong us nhiều khu vực, vì vậy Terraform triển khai một mẫu riêng cho mục đích này.

Truy xuất tên mẫu từ đầu ra của Terraform:

cd terraform
export GE_MA_TEMPLATE_NAME=$(terraform output -raw model_armor_gemini_enterprise_template_name)

Tìm nạp mã ứng dụng của phiên bản Gemini Enterprise:

  1. Trong bảng điều khiển Cloud, hãy chuyển đến trang Gemini Enterprise.
  2. Trong trình đơn điều hướng, hãy nhấp vào Ứng dụng.
  3. Sao chép mã của phiên bản Gemini Enterprise

Xuất mã nhận dạng dưới dạng một biến môi trường.

export APP_ID=<PASTE_APP_ID>

Vá trợ lý để bật Model Armor:

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"
      }
    }
  }'

Đặt failureMode thành FAIL_OPEN để cho phép các yêu cầu đi qua khi Model Armor không hoạt động hoặc đặt thành FAIL_CLOSED để chặn các yêu cầu đó.

8. Triển khai tác nhân và thêm tác nhân trong Gemini Enterprise

Lấy thông tin uỷ quyền

Hãy làm theo các bước sau để lấy thông tin uỷ quyền.

  1. Trong bảng điều khiển Cloud, trên trang API và dịch vụ, hãy chuyển đến trang Thông tin xác thực.
  2. Chuyển đến phần Thông tin đăng nhập
  3. Nhấp vào Tạo thông tin xác thực rồi chọn Mã ứng dụng OAuth.
  4. Trong phần Loại ứng dụng, hãy chọn Ứng dụng web.
  5. Trong phần URI chuyển hướng được uỷ quyền, hãy thêm các URI sau:
  • https://vertexaisearch.cloud.google.com/oauth-redirect
  • https://vertexaisearch.cloud.google.com/static/oauth/oauth.html
  1. Nhấp vào Tạo.
  2. Xuất Mã ứng dụng khách và Khoá bí mật của ứng dụng khách để triển khai.
export OAUTH_CLIENT_ID=<Client ID>
export OAUTH_CLIENT_SECRET=<Client Secret>

Triển khai trợ lý ảo về thế chấp

Tập lệnh src/mortgage-agent/deploy_agent.py sẽ triển khai tác nhân ADK vào Agent Engine và tuỳ ý đăng ký tác nhân đó trong Gemini Enterprise. Hãy xem phần Đăng ký và quản lý tác nhân A2A để biết thông tin cơ bản về quy trình đăng ký Gemini Enterprise.

Xuất các biến từ quá trình triển khai 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)

Cài đặt các phần phụ thuộc và triển khai:

cd src/mortgage-agent
uv sync

Triển khai Tác nhân vào Vertex Agent Engine và đăng ký với 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

Tham chiếu cờ

Cờ

Mặc định

Mô tả

--project

$PROJECT_ID

Mã dự án GCP

--dms-mcp-url

(bắt buộc)

URL máy chủ DMS MCP

--income-verification-url

(bắt buộc)

URL cơ sở của Income Verification API; /mcp sẽ được thêm tự động

--email-mcp-url

(bắt buộc)

URL máy chủ MCP của email

--region

$REGION

Vùng GCP

--staging-bucket

gs://PROJECT-staging

Bộ chứa GCS để dàn dựng

--display-name

Mortgage Assistant Agent

Tên hiển thị của nhân viên hỗ trợ được triển khai

--update

(không bắt buộc)

Cập nhật một tác nhân hiện có tại chỗ (truyền tên tài nguyên đầy đủ)

--network-attachment

(không bắt buộc)

Thiết bị mạng cho Giao diện PSC (đường dẫn hoặc tên đầy đủ)

--dns-peering-domain

(không bắt buộc)

Miền DNS cho hoạt động ngang hàng DNS PSC-I (phải kết thúc bằng dấu chấm)

--dns-peering-target-project

(không bắt buộc)

Dự án lưu trữ mạng VPC mục tiêu để kết nối ngang hàng DNS

--dns-peering-target-network

(không bắt buộc)

Tên mạng VPC để kết nối ngang hàng DNS

--enable-agent-identity

false

Bật thông tin đăng nhập có đặc quyền tối thiểu cho mỗi tác nhân

--ge-deploy

false

Đăng ký tác nhân trong Gemini Enterprise sau khi triển khai

--app-id

(không bắt buộc)

Mã công cụ Gemini Enterprise (bắt buộc khi dùng --ge-deploy)

--oauth-client-id

$OAUTH_CLIENT_ID

Mã ứng dụng OAuth2 (bắt buộc đối với --ge-deploy)

--oauth-client-secret

$OAUTH_CLIENT_SECRET

Khoá bí mật của ứng dụng OAuth2 (bắt buộc đối với --ge-deploy)

--model

gemini-3.1-flash-lite-preview

Tên mô hình Gemini cho tác nhân

--agent-name

mortgage-agent

Uỷ quyền Gemini Enterprise và tên tác nhân

--ge-deploy-only

(không bắt buộc)

Đăng ký một công cụ suy luận hiện có trong Gemini Enterprise mà không cần triển khai lại (truyền tên tài nguyên đầy đủ)

Thêm người dùng được cấp quyền

Để thêm người dùng được cấp quyền vào một tác nhân ADK bằng Bảng điều khiển Cloud, hãy xem phần Thêm hoặc sửa đổi người dùng và quyền của họ.

9. Thử nghiệm Nhân viên hỗ trợ

Giờ đây, sau khi bạn triển khai và định cấu hình tác nhân, Cổng GKE và tất cả các dịch vụ phụ trợ, hãy kiểm thử quy trình từ đầu đến cuối để xác minh rằng các chính sách bảo mật đang hoạt động như mong đợi. Bạn sẽ tương tác với "mortgage-agent" trong giao diện Gemini Enterprise.

Truy cập vào Trợ lý

  1. Chuyển đến trang Gemini Enterprise trong Google Cloud Console.
  2. Chọn Ứng dụng Gemini Enterprise mà bạn đã định cấu hình trước đó, nơi "mortgage-agent" được đăng ký.
  3. Trên thẻ Tổng quan, hãy duyệt đến URL xuất hiện trong phần "Ứng dụng Gemini Enterprise trên web đã sẵn sàng".
  4. Chọn thẻ Agent Gallery (Thư viện về các trợ lý ảo) trong trình đơn bên trái
  5. Giờ đây, bạn có thể trò chuyện với "Trợ lý thế chấp".

Trường hợp kiểm thử 1: "Lộ trình phù hợp" – Tóm tắt dữ liệu bằng tính năng loại bỏ thông tin nhận dạng cá nhân

Thử nghiệm này xác minh rằng tác nhân có thể truy cập vào các hệ thống phụ trợ thông qua Cổng tác nhân và các chính sách Ngăn chặn mất dữ liệu (DLP) được thực thi để biên tập thông tin nhạy cảm.

  1. Gửi câu lệnh sau cho Trợ lý thế chấp:
    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?
    
  2. Những điều đang diễn ra ở hậu trường:
    • Tác nhân trong Gemini Enterprise sẽ đưa ra yêu cầu đối với các công cụ cần thiết (ví dụ: Hệ thống quản lý tài liệu (DMS) cho tờ khai thuế, API Xác minh thu nhập).
    • Model Armor kiểm tra các tải trọng yêu cầu và phản hồi để phát hiện các mối đe doạ.
    • "Chính sách uỷ quyền dựa trên nội dung" mà bạn đã định cấu hình sẽ kích hoạt tiện ích DLP tuỳ chỉnh (dlp-content-authz-ext). Tiện ích này kiểm tra dữ liệu được tìm nạp từ các hệ thống phụ trợ.
    • Dịch vụ DLP sẽ loại bỏ mọi Thông tin nhận dạng cá nhân (PII), chẳng hạn như Số an sinh xã hội (SSN), khỏi dữ liệu tờ khai thuế trước khi dữ liệu đó đến được với nhân viên hỗ trợ.
  3. Kết quả dự kiến: Trợ lý sẽ trả về thông tin tóm tắt về tờ khai thuế và trạng thái xác minh thu nhập. Kiểm tra kỹ thông tin tóm tắt do trợ lý ảo cung cấp. Bạn nên lưu ý rằng thông tin nhạy cảm, chẳng hạn như Mã số nhận dạng người nộp thuế (SSN), đã được thay thế bằng các phần giữ chỗ (ví dụ: [REDACTED]). Điều này xác nhận việc thực thi chính sách DLP thông qua cổng.

Khả năng ghi nhận và kiểm tra

Trong suốt quá trình kiểm thử này, Nền tảng đại lý và các dịch vụ liên quan sẽ thu thập dữ liệu đo từ xa:

  • Cloud Logging: Nhật ký chi tiết từ Cổng GKE, tải GKE và các dịch vụ khác cung cấp nhật ký kiểm tra về các yêu cầu, hoạt động đánh giá chính sách và kết quả.
  • Cloud Trace: Khả năng đo lường OpenTelemetry được định cấu hình trong các dịch vụ tác nhân và phụ trợ cho phép bạn trực quan hóa toàn bộ quy trình gọi, từ Gemini Enterprise thông qua Cổng GKE đến các công cụ phụ trợ. Điều này rất hữu ích cho việc gỡ lỗi và tìm hiểu vòng đời của yêu cầu.

Xem Dấu vết cho các phiên của bạn:

  1. Trong bảng điều khiển Cloud, hãy chuyển đến trang Vertex AI Agent Engine.
  2. Chuyển đến Agent Engine. Các phiên bản Agent Engine thuộc dự án đã chọn sẽ xuất hiện trong danh sách. Bạn có thể sử dụng trường Bộ lọc để lọc danh sách theo cột mà bạn chỉ định.
  3. Nhấp vào tên của phiên bản Agent Engine.
  4. Nhấp vào thẻ Dấu vết.
  5. Bạn có thể chọn chế độ xem Phiên hoặc chế độ xem Khoảng thời gian.
  6. Nhấp vào một phiên hoặc khoảng thời gian để kiểm tra thông tin chi tiết về dấu vết, bao gồm cả biểu đồ có hướng không có chu trình (DAG) của các khoảng thời gian, đầu vào và đầu ra cũng như các thuộc tính siêu dữ liệu.

10. Không bắt buộc: Chuyển mã API REST sang MCP bằng Apigee

Mặc dù dịch vụ xác minh thu nhập của chúng tôi hỗ trợ Giao thức bối cảnh mô hình một cách tự nhiên, nhưng nhiều hệ thống cũ của doanh nghiệp chỉ cung cấp API RESTful. Trong bước không bắt buộc này, bạn sẽ sử dụng Apigee MCP Discovery Proxy để chuyển mã điểm cuối REST của dịch vụ xác minh thu nhập thành một công cụ MCP. Nhờ đó, bạn có thể áp dụng các chính sách bảo mật, giới hạn tốc độ và quản trị nâng cao của Apigee cho các công cụ cũ.

Để biết thêm thông tin, hãy xem bài viết Tổng quan về MCP của Apigee.

Điều kiện tiên quyết

Trước khi tiếp tục, hãy đảm bảo bạn đã cung cấp và định cấu hình Apigee API Hub. Làm theo các bước trong tài liệu Cung cấp API Hub để thiết lập và đính kèm phiên bản Apigee của bạn.

Bước 1: Tạo tệp đính kèm dịch vụ cho Apigee

Để cho phép Apigee truy cập vào các dịch vụ nội bộ đang chạy trên GKE, bạn phải tạo một tệp đính kèm dịch vụ.

  1. Tìm quy tắc chuyển tiếp GKE Gateway nội bộ:
    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}')
    
  2. Tạo tệp đính kèm dịch vụ:
    gcloud compute service-attachments create internal-gke-gateway-apigee \
        --region=${REGION} \
        --target-service=$RULE_URI \
        --connection-preference=ACCEPT_AUTOMATIC \
        --nat-subnets=gateway-psc-subnet
    

Bước 2: Bật Apigee bằng Terraform

Bây giờ, hãy cập nhật cấu hình cơ sở hạ tầng để cung cấp tổ chức và phiên bản Apigee.

  1. Chuyển đến thư mục terraform:
    cd terraform
    
  2. Chỉnh sửa terraform.tfvars và đặt enable_apigee = true.
  3. Áp dụng các thay đổi:
    terraform apply
    

Bước 3: Xác định quy cách OpenAPI

Apigee sử dụng các định nghĩa OpenAPI (OAS) tiêu chuẩn để khám phá và chuyển mã các công cụ. Tạo một tệp có tên là income-verification-oas.yaml với nội dung sau:

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

Bước 4: Triển khai Apigee MCP Discovery Proxy

MCP Discovery Proxy là một proxy Apigee chuyên biệt, đóng vai trò là máy chủ MCP.

  1. Trong giao diện người dùng Apigee, hãy chuyển đến Phát triển > API Proxy.
  2. Nhấp vào Create New (Tạo mới) rồi chọn MCP Discovery Proxy (MCP Discovery Proxy).
  3. Đặt tên cho proxy income-verification-discovery.
  4. Trong phần OpenAPI Spec, hãy tải tệp income-verification-oas.yaml mà bạn đã tạo lên.
  5. Đặt Nhóm môi trường thành nhóm mà bạn có thể truy cập vào cổng nội bộ.
  6. Nhấp vào Triển khai.

(Không bắt buộc) Thêm chính sách bảo mật

Bạn nên bảo mật proxy trước khi triển khai hoặc chia sẻ. Bạn có thể thêm các chính sách để thực thi các yêu cầu về bảo mật, chẳng hạn như mã thông báo OAuth hoặc khoá API. Để biết hướng dẫn về cách thêm chính sách bảo mật, hãy xem tài liệu của Apigee về cách bảo mật API.

Bước 5: Xác minh quyền truy cập vào công cụ chuyển mã

Sau khi triển khai, Apigee sẽ tự động chuyển mã điểm cuối POST /verify thành công cụ verifyApplicant MCP.

  1. Liệt kê các công cụ có sẵn thông qua điểm cuối MCP của Apigee:
    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": {}
      }'
    
  2. Bạn sẽ thấy công cụ verifyApplicant trong phản hồi, được chuyển mã từ quy cách REST của bạn. Giờ đây, bạn có thể gọi công cụ này thông qua Apigee và Apigee sẽ xử lý việc dịch sang dịch vụ REST cơ bản trong khi áp dụng mọi chính sách bảo mật mà bạn đã định cấu hình.

Bước 6: Cập nhật Mortgage Agent để sử dụng Apigee

Vì Apigee đã chuyển mã thành công API REST của bạn thành một công cụ tuân thủ MCP, nên bạn phải cập nhật cấu hình triển khai của tác nhân. Bằng cách trỏ tác nhân đến điểm cuối Apigee, tất cả các yêu cầu xác minh thu nhập hiện sẽ được hưởng lợi từ tính năng bảo mật, ghi nhật ký và quản lý lưu lượng truy cập cấp doanh nghiệp của Apigee.

  1. Xác định URL MCP của Apigee: Điểm cuối của bạn phải tuân theo mẫu: https://api.internal.${DNS_PEERING_DOMAIN%%.}/income-verification-discovery/mcp.
  2. Chạy lại tập lệnh triển khai: Sử dụng cờ --update cùng với --income-verification-url mới. Thao tác này sẽ cập nhật tác nhân hiện có trong Agent Engine mà không cần xoá hoàn toàn.
    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}
    
  1. Xác minh nội dung thay đổi: Quay lại giao diện Gemini Enterprise và yêu cầu tác nhân xác minh thu nhập của người đăng ký.
    "Can you verify the joint income for the Sterlings using the verification service?"
    
    Trong thẻ Apigee Debug, giờ đây, bạn sẽ thấy yêu cầu JSON-RPC đến từ GKE Gateway đang được chuyển đổi thành yêu cầu REST POST tiêu chuẩn cho dịch vụ GKE phụ trợ của bạn.

11. Dọn dẹp

Để tránh bị tính phí vào tài khoản Google Cloud cho các tài nguyên được tạo trong lớp học lập trình này, hãy xoá các tài nguyên đó khi bạn hoàn tất.

  1. Xoá tệp đính kèm dịch vụ nếu bạn tạo tệp này theo cách thủ công:
    gcloud compute service-attachments delete internal-gke-gateway \
        --region=${REGION} --quiet
    
  2. Chuyển đến thư mục terraform và huỷ tất cả tài nguyên:
    cd terraform
    terraform destroy
    
  3. Bạn có thể xoá hoàn toàn dự án trên Google Cloud:
    gcloud projects delete ${PROJECT_ID}
    

12. Xin chúc mừng

Bạn đã hoàn thành lớp học lập trình này và học được cách bảo mật các hoạt động triển khai doanh nghiệp có tác nhân trên nhiều đám mây.

Nội dung bạn đã đề cập

  • Triển khai một tác nhân trợ lý thế chấp ADK vào Agent Engine bằng tính năng đo lường OpenTelemetry
  • Triển khai các máy chủ MCP phụ trợ cho GKE đằng sau một Cổng nội bộ
  • Kết nối Agent Engine với một VPC dự án bằng Giao diện PSC và tính năng kết nối ngang hàng DNS
  • Đã định cấu hình Cổng GKE để kiểm soát lưu lượng truy cập ra của tác nhân bằng tính năng biên tập DLP và uỷ quyền MCP
  • Áp dụng các biện pháp bảo vệ AI bằng Model Armor để sàng lọc câu lệnh và câu trả lời
  • Tuỳ chọn chuyển mã các API REST sang MCP bằng Apigee MCP Discovery Proxy

Các bước tiếp theo