Lección 12 — Mise en œuvre de la note

05. Palier D : contrôle de sortie (Agent Gateway, Secure Web Proxy)

3 min de lectura

Este contenido aún no está traducido. Se muestra la versión original.

Pour qui : DevOps + équipe réseau, sécurité (liste blanche). Mesure : §5.


1. D'abord, la bonne question : qui sort vers Internet, et par où ?

Qui appelle InternetPar où ça sortLe bon contrôle
Gemini Enterprise (connecteurs, recherche web, appels d'agents)Infrastructure Google (SaaS), pas le VPC AcmeAgent Gateway + politiques d'org sur les destinations + IP fixes des connecteurs
Agents sur Agent Runtime (géré)Infrastructure GoogleAgent Gateway (agent_to_anywhere_config)
Agents Agent Runtime reliés au VPC (interface PSC), Cloud Run avec sortie VPC, VMVPC AcmeSecure Web Proxy

C'est la correction 2.6 de la note : un Secure Web Proxy ne voit pas le trafic de Gemini Enterprise. Les deux outils sont complémentaires, pas concurrents.


2. Agent Gateway (recommandé dès qu'il y a des agents ou des outils MCP)

Ce que c'est. Un point de passage géré par Google pour les appels des agents et de Gemini Enterprise vers d'autres agents, outils MCP et API. Refus par défaut : seuls les éléments enregistrés dans Agent Registry sont joignables.

Variables.

enable_agent_gateway = true

Code (60_advanced.tf, déjà dans le socle 06) :

resource "google_network_services_agent_gateway" "egress" {
  count    = var.enable_agent_gateway ? 1 : 0
  name     = "${var.app_id}-egress"
  location = var.region                       # app 'eu' -> europe-west1
  google_managed {
    governed_access_path = "AGENT_TO_ANYWHERE"
  }
  registries = ["//agentregistry.googleapis.com/projects/${var.project_id}/locations/global"]
}

L'app Gemini Enterprise y est reliée par agentGatewaySetting (50_app.tf), et l'agent exemple par (90_agents_registry.tf) :

dynamic "agent_gateway_config" {
  for_each = var.enable_agent_gateway ? [1] : []
  content {
    agent_to_anywhere_config {
      agent_gateway = google_network_services_agent_gateway.egress[0].id
    }
  }
}

Vérifier. Un agent tente d'appeler un outil non enregistré → refusé ; enregistré → accepté.


3. Secure Web Proxy (seulement si des charges sortent par votre VPC)

Ce que c'est. Un proxy HTTPS géré, placé dans votre VPC : les charges l'utilisent comme HTTPS_PROXY, il ne laisse passer que les domaines de la liste blanche.

Variables.

swp = {
  network         = "projects/acme-ge-prod/global/networks/agents"
  subnetwork      = "projects/acme-ge-prod/regions/europe-west1/subnetworks/agents"
  proxy_only_cidr = "10.129.0.0/23"     # plage libre, réservée au proxy (demande à l'équipe réseau)
  address         = "10.128.0.99"       # IP du proxy dans le sous-réseau des charges
  allowed_hosts   = ["*.googleapis.com", "api.github.com", "*.acme.example"]
}

Code (95_secure_web_proxy.tf), 5 ressources :

RessourceRôle
google_compute_subnetwork.swp_proxy_onlySous-réseau réservé au proxy (purpose = "REGIONAL_MANAGED_PROXY"), exigé par Google
google_network_security_url_lists.allowedLa liste blanche
google_network_security_gateway_security_policy.swpLa politique (refus implicite de tout le reste)
google_network_security_gateway_security_policy_rule.allow_listedsession_matcher = "inUrlList(host(), '<liste>')" → ALLOW
google_network_services_gateway.swpLe proxy (type = "SECURE_WEB_GATEWAY", routing_mode = "EXPLICIT_ROUTING_MODE", port 443)

Côté charges. Variables d'environnement HTTPS_PROXY=https://10.128.0.99:443 (valeur : terraform output swp_proxy), et une règle de pare-feu qui interdit la sortie directe vers Internet (sinon le proxy est contournable).

Vérifier.

curl -x https://10.128.0.99:443 --proxy-insecure https://api.github.com     # autorisé -> 200
curl -x https://10.128.0.99:443 --proxy-insecure https://example.org        # refusé  -> 403

Limites assumées.

  • Filtrage par nom d'hôte seulement : pas d'inspection TLS (elle exige une autorité de certification, CA Service).
  • À valider au premier déploiement : si l'API exige un certificat même sans inspection TLS, ajouter certificate_urls (Certificate Manager).

Gouvernance de la liste blanche. Ajouter un domaine = une PR validée par la sécurité ; revue trimestrielle.


4. Appliquer et revenir en arrière

terraform plan -out=tfplan      # + 5 ressources SWP, + éventuellement Agent Gateway

Retour arrière : swp = null / enable_agent_gateway = false. Attention : retirer le proxy coupe les charges qui l'utilisent ; retirer Agent Gateway rouvre la sortie des agents.

Siguiente