Sicurezza del gateway


Questa pagina descrive i diversi metodi per proteggere i gateway in Google Kubernetes Engine (GKE). Inoltre, puoi scoprire come Proteggi un gateway.

Come funziona la sicurezza del gateway

Un gateway rappresenta il frontend di un bilanciatore del carico. Esistono due percorsi puoi proteggere i gateway con autenticazione e crittografia:

  • Da client a gateway: il traffico proviene dal client e termina alla Gateway.
  • Gateway del pod: il traffico proviene dal gateway e terminato al di backend.

Il seguente diagramma mostra entrambi i percorsi per autenticare e criptare i gateway:

Questa pagina descrive come proteggere il percorso dal client al gateway utilizzando i certificati caricate e gestite a livello di gateway. Per scoprire come proteggere il gateway per il traffico dei pod, vedi Proteggi il bilanciatore del carico per il traffico delle applicazioni tramite TLS.

Vantaggi

Puoi proteggere un'applicazione in molti modi diversi utilizzando l'API Gateway, il che offre flessibilità ai diversi ruoli che interagiscono Gateway.

Chi è il proprietario del dominio e della configurazione TLS?

Il modello di API Gateway introduce due ruoli che utilizzano i gateway o ne eseguono il deployment:

  • Amministratore piattaforma: l'operatore del cluster è l'amministratore dell'intera infrastruttura cluster. Gestiscono i criteri, l'accesso alla rete e le autorizzazioni delle applicazioni.
  • Sviluppatore di applicazioni: lo sviluppatore definisce la propria applicazione e la configurazione del servizio.

Il seguente diagramma mostra i campi delle risorse Gateway e HTTPRoute che influenzano il TLS e la proprietà del dominio per due applicazioni, store-v1 e store-v2.

Nel diagramma, l'operatore del cluster controlla:

  • Quali domini gli sviluppatori di applicazioni possono utilizzare per le loro app in ogni spazio dei nomi.
  • I certificati specifici che terminano i diversi domini.
  • Certificati forniti dal proprietario del gateway.
  • Indica se i proprietari HTTPRoute possono specificare i propri nomi host per il certificato di classificazione.

Gli sviluppatori di applicazioni controllano il nome host che genera un certificato, se La definizione del gateway lo consente.

Questa separazione delle attività operative consente agli sviluppatori di applicazioni e gestire il proprio HTTPRoute per un controllo più distribuito e consentire alla piattaforma gli amministratori eseguono il deployment e gestiscono i gateway per un controllo centralizzato di TLS.

Gestione dei certificati del gateway

Puoi proteggere i gateway utilizzando uno dei seguenti metodi:

Se utilizzi i secret di Kubernetes o le risorse SslCertificate del Nell'API Compute Engine, puoi collegare al massimo 15 certificati a un singolo gateway.

Gestore certificati consente di collegare fino a 10.000.000 di certificati per bilanciatore del carico, se richiedi un aumento della quota.

Per saperne di più sui certificati SSL di Google Cloud, consulta Panoramica dei certificati SSL.

Secret di Kubernetes

La Specifiche dell'API Gateway supporta Secret di Kubernetes per l'archiviazione e il collegamento dei certificati ai gateway. Puoi associare uno o altri Secret Kubernetes con un gateway utilizzando il campo Gateway.spec.tls.certificateRef.

Le risorse gateway protette tramite i secret di Kubernetes hanno quanto segue requisiti:

  • Devi impostare i listener di gateway port e protocol su 443 e HTTPS.
  • Devi impostare il campo listener.tls.mode su Terminate.
  • Devi fare riferimento alle credenziali TLS nel blocco listeners.tls.

Le risorse del gateway protette tramite i secret di Kubernetes hanno quanto segue limitazioni:

  • Solo i listener HTTPS terminano il traffico utilizzando i Secret specificati, sebbene puoi specificare più listener con una combinazione di HTTP e HTTPS.
  • Se hai più listener che utilizzano HTTPS sullo stesso gateway, ogni listener deve avere un nome host univoco.
  • Puoi omettere un solo nome host o assegnare * per ogni porta e protocollo .
  • Puoi assegnare un solo certificato predefinito per ciascun gateway.

Per scoprire come proteggere un gateway utilizzando un secret di Kubernetes, vedi Proteggi un gateway utilizzando un secret di Kubernetes.

Certificati SSL

I certificati SSL archiviano e consegnano i certificati ai bilanciatori del carico.

Un certificato SSL può essere autogestito o gestito da Google.

Per saperne di più sulle differenze tra questi due tipi di certificati, consulta Panoramica dei certificati SSL.

L'ambito e la località del certificato SSL devono corrispondere all'ambito e alla località del gateway che lo utilizza.

Ad esempio, un certificato SSL globale non non potrà essere usato da un gateway regionale.

Nella tabella che segue sono elencati i requisiti di ambito e località del protocollo SSL per ognuna di queste GatewayClass:

GatewayClass Ambito del certificato SSL Posizione del certificato SSL
gke-l7-global-external-managed Certificato SSL globale Globale
gke-l7-global-external-managed-mc
gke-l7-gxlb
gke-l7-gxlb-mc
gke-l7-regional-external-managed Certificato SSL a livello di regione Deve essere la stessa regione del gateway
gke-l7-regional-external-managed-mc
gke-l7-rilb
gke-l7-rilb-mc
I certificati SSL gestiti da Google non sono compatibili con i gateway regionali.

Per informazioni su come proteggere un gateway utilizzando un certificato SSL, consulta Proteggi un gateway utilizzando un certificato SSL.

Gestore certificati

Gestore certificati è una una posizione centralizzata per gestire i tuoi certificati TLS.

Quando proteggi un gateway utilizzando Gestione certificati, puoi procedi nel seguente modo:

  • Fare riferimento a CertificateMap direttamente da un gateway che hai creato in Gestione certificati.
  • Gestire i tuoi certificati.
  • Migliora i tempi di propagazione dei certificati.
  • Utilizza Cloud Monitoring per i certificati scaduti e la propagazione dei certificati.

Gestore certificati supporta sia gli account autogestiti sia quelli gestiti da Google Certificati SSL.

Per scoprire come proteggere un gateway utilizzando Gestione certificati, vedi Proteggi un gateway utilizzando Gestione certificati.

Supporto TLS GatewayClass

La tabella seguente descrive i metodi di terminazione TLS che GKE supporta per ogni GatewayClass:

GatewayClass gke-l7-global-external-managed
gke-l7-global-external-managed-mc
gke-l7-gxlb
gke-l7-gxlb-mc
gke-l7-regional-external-managed
gke-l7-regional-external-managed-mc
gke-l7-rilb
gke-l7-rilb-mc
TLS client-gate Supportato Supportato
Gateway TLS backend Supportato Supportato
Risorsa certificato Google Cloud Certificato SSL globale
CertificateMap
Certificato SSL a livello di regione
Certificati autogestiti con secret di Kubernetes Supportato Supportato
Certificati SSL di Compute Engine autogestiti Supportato Supportato
Certificati SSL di Compute Engine gestiti da Google Supportato Non supportato
Certificati SSL autogestiti con Gestore certificati Supportato Supportato
Certificati SSL gestiti da Google con Gestore certificati Supportato Supportato (anteprima)

Passaggi successivi