Questa pagina mostra come configurare il routing in uscita per i workload in esecuzione su Google Kubernetes Engine (GKE) ambient networking a un gateway Secure Web Proxy (SWP).
Se instradi il traffico in uscita tramite un gateway Secure Web Proxy, puoi applicare policy di sicurezza in uscita centralizzate, come il filtro URL, le liste consentite di domini e l'ispezione TLS, senza modificare il codice dell'applicazione. Il proxy del nodo di livello 4 intercetta il traffico in uscita al di fuori del pod dell'applicazione, fornendo l'isolamento della sicurezza out-of-pod anche se un container del workload è compromesso.
Architettura e flusso del traffico
In questo modello di deployment, mantieni la proprietà dell'infrastruttura, inclusi il cluster GKE, l'istanza Secure Web Proxy e tutti gli endpoint Private Service Connect (PSC).
Il flusso di traffico in uscita funziona come segue:
- Un pod di un carico di lavoro o di un agente AI avvia il traffico in uscita verso un endpoint esterno o una destinazione internet.
- Il proxy del nodo ambiente di livello 4 locale intercetta la richiesta in uscita sul nodo.
- Il proxy del nodo stabilisce un tunnel HTTP CONNECT al gateway di uscita.
- Se Secure Web Proxy si trova in una rete VPC diversa, il traffico attraversa un collegamento del servizio PSC.
- Secure Web Proxy termina il tunnel, applica le policy di sicurezza in uscita configurate e inoltra le richieste autorizzate alla destinazione.
Limitazioni
Prima di configurare il routing di uscita di Secure Web Proxy, esamina le seguenti limitazioni in anteprima:
- Policy a livello di spazio dei nomi:le policy di routing in uscita si applicano solo a livello di spazio dei nomi. La selezione granulare dei pod tramite i selettori di etichette non è supportata.
- Il filtro dei nomi host richiede l'ispezione TLS: le policy Secure Web Proxy possono filtrare il traffico in uscita solo in base all'indirizzo IP, a meno che non sia abilitata l'ispezione TLS.
- Workload Identity:GKE ambient networking supporta Workload Identity standard. I pool di identità dell'agente gestito non sono supportati per questa anteprima.
- Autenticazione:la connessione tra il proxy del nodo ambiente e il Secure Web Proxy ignora la verifica del certificato del server. La richiesta CONNECT include un token senza limiti insieme al certificato client.
- Ricreazione delle risorse in caso di aggiornamenti della configurazione:le modifiche apportate a una configurazione PSC o a un'istanza Secure Web Proxy esistente non vengono propagate automaticamente.
Se aggiorni la configurazione di Secure Web Proxy o PSC, devi eliminare e ricreare la risorsa
GCPEgressPolicye l'istanza Secure Web Proxy per applicare le modifiche. - Ancora di attendibilità per l'ispezione TLS:GKE non inserisce automaticamente il certificato CA privata di Secure Web Proxy nei container dei workload. Se utilizzi l'ispezione TLS, devi installare manualmente il certificato di attendibilità nelle immagini container.
Prerequisiti
Prima di configurare il routing in uscita, verifica di disporre di quanto segue:
- Un cluster GKE con ambient networking abilitato. Per istruzioni, vedi Prepara GKE Ambient Networking.
- Un'istanza di Secure Web Proxy di cui è stato eseguito il deployment con un
serverTlsPolicyconfigurato conclientValidationMode: ALLOW_INVALID_OR_MISSING_CLIENT_CERTnel tuo progettoCloud de Confiance by S3NS o VPC condiviso. - Se Secure Web Proxy si trova in una rete VPC diversa dal cluster GKE:
- Un collegamento del servizio PSC creato per Secure Web Proxy.
- Un endpoint consumer PSC configurato nella rete VPC del cluster GKE.
Per completare questi passaggi, devi disporre dei seguenti ruoli:
- Agent Gateway / Network Services:
networkservices.agentGateways.*(oroles/networkservices.admin) per configurare le risorse del gateway dell'agente. - Gestione PSC:
compute.networkAttachments.list(oroles/compute.networkAdmin) per gestire le connessioni Private Service Connect. - GKE Management:
roles/container.clusterAdminper eseguire il deployment di risorse personalizzate (GCPBackend,GCPEgressPolicy).
Configura l'attendibilità per l'ispezione TLS
Se il criterio Secure Web Proxy utilizza l'ispezione TLS per ispezionare il traffico in uscita criptato, il proxy genera certificati firmati dalla propria autorità di certificazione (CA) privata per impersonare destinazioni esterne.
L'applicazione del workload deve considerare attendibile il certificato CA privato presentato da Secure Web Proxy. Poiché GKE non inserisce automaticamente questo certificato, devi installare il certificato CA SWP (trust anchor) nell'archivio di attendibilità del container.
Per aggiungere il certificato CA all'immagine container, includi le seguenti righe nel Dockerfile:
COPY swp-ca-cert.pem /usr/local/share/ca-certificates/swp-ca-cert.crt
RUN update-ca-certificates
Definisci l'endpoint del gateway
Il primo passaggio per configurare il routing di uscita ambient è creare un endpoint gateway, che definisce l'endpoint Secure Web Proxy all'interno del cluster GKE e comunica a ambient networking la posizione del proxy.
Per specificare l'URI del tuo collegamento di servizio Secure Web Proxy o Private Service Connect (PSC), crea una risorsa personalizzata GCPBackend nel tuo cluster GKE:
Salva il seguente manifest come
swp-backend.yaml:Stesso VPC
apiVersion: networking.gke.io/v1 kind: GCPBackend metadata: name: swp-backend namespace: ambient-test spec: serviceUris: - //networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/SWP_NAMESostituisci quanto segue:
ambient-test: lo spazio dei nomi registrato in ambient networking.PROJECT_ID: il tuo ID progetto Cloud de Confiance by S3NS .REGION: la regione in cui viene eseguito il deployment di Secure Web Proxy o del collegamento del servizio PSC.SWP_NAME: il nome del tuo Secure Web Proxy.
Cross-VPC
apiVersion: networking.gke.io/v1 kind: GCPBackend metadata: name: swp-backend namespace: ambient-test spec: serviceUris: - //compute.googleapis.com/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAMESostituisci quanto segue:
ambient-test: lo spazio dei nomi registrato in ambient networking.PROJECT_ID: il tuo ID progetto Cloud de Confiance by S3NS .REGION: la regione in cui viene eseguito il deployment di Secure Web Proxy o del collegamento del servizio PSC.ATTACHMENT_NAME: il nome del tuo collegamento del servizio PSC, se il tuo Secure Web Proxy si trova in una rete VPC diversa.
Applica la risorsa
GCPBackend:kubectl apply -f swp-backend.yaml
Configura il reindirizzamento del traffico in uscita
Crea una risorsa personalizzata GCPEgressPolicy per instradare il traffico in uscita dallo spazio dei nomi al gateway Secure Web Proxy. In questo modo viene fornita la segnalazione necessaria
al proxy del nodo ambiente per stabilire un tunnel HTTP CONNECT con
Secure Web Proxy, necessario per il routing di uscita.
Salva il seguente manifest come
swp-egress-policy.yaml:apiVersion: networking.gke.io/v1 kind: GCPEgressPolicy metadata: name: swp-egress-policy namespace: ambient-test spec: to: excludeCIDRRanges: - "CLUSTER_CONTROL_PLANE_CIDR" proxyRef: group: networking.gke.io kind: GCPBackend name: swp-backendSostituisci quanto segue:
ambient-test: lo spazio dei nomi registrato nel networking ambientale.CLUSTER_CONTROL_PLANE_CIDR: l'intervallo CIDR per le comunicazioni interne che devono bypassare Secure Web Proxy (ad esempio l'intervallo di indirizzi del control plane GKE o le subnet VPC interne).
Applica la risorsa
GCPEgressPolicy:kubectl apply -f swp-egress-policy.yamlUna volta applicata la policy, il traffico in uscita dai carichi di lavoro nello spazio dei nomi viene reindirizzato a Secure Web Proxy.
Risoluzione dei problemi
Utilizza le seguenti indicazioni per diagnosticare e risolvere i problemi relativi al routing dell'uscita ambientale:
- Il traffico non raggiunge Secure Web Proxy:
- Verifica che la risorsa
GCPBackendpunti all'URI corretto del collegamento al servizio PSC. - Verifica che l'endpoint PSC sia stabilito e accettato nel VPC producer.
- Controlla che
excludeCIDRRangesinGCPEgressPolicynon corrisponda inavvertitamente al traffico di destinazione.
- Verifica che la risorsa
- Errori di connessione mTLS:
- Verifica che Secure Web Proxy sia configurato per accettare connessioni dal proxy del nodo.
- Errori del certificato di ispezione TLS:
- Se le richieste client non vanno a buon fine a causa di errori di convalida del certificato (ad esempio
x509: certificate signed by unknown authority), verifica che il certificato CA di Secure Web Proxy sia installato correttamente nell'archivio certificati di sistema del container del carico di lavoro.
- Se le richieste client non vanno a buon fine a causa di errori di convalida del certificato (ad esempio