Questa pagina descrive i diversi metodi per proteggere i gateway in Google Kubernetes Engine (GKE). Puoi anche scoprire come proteggere un gateway.
Come funziona la sicurezza del gateway
Un gateway rappresenta il frontend di un bilanciatore del carico. Esistono due percorsi che puoi proteggere con l'autenticazione e la crittografia per i gateway:
- Da client a gateway: traffico proveniente dal client e terminato in corrispondenza del gateway.
- Gateway del pod: il traffico proviene dal gateway e termina nei pod 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 caricati e gestiti a livello di gateway. Per informazioni su come proteggere il traffico dal gateway al pod, consulta Proteggere il traffico dal bilanciatore del carico alle applicazioni utilizzando TLS.
Vantaggi
Puoi proteggere un'applicazione in molti modi diversi utilizzando l'API Gateway, che offre flessibilità ai diversi ruoli di interazione con il 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 di interi cluster. Gestiscono i criteri, l'accesso alla rete e le autorizzazioni delle applicazioni.
- Sviluppatore di applicazioni: lo sviluppatore dell'applicazione 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 la generazione dei certificati.
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 di eseguire il deployment e gestire il proprio HTTPRoute per un controllo più distribuito e consente agli amministratori di piattaforme di eseguire il deployment e gestire i gateway per il 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
dell'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 ulteriori informazioni sui certificati SSL di Google Cloud, consulta la panoramica dei certificati SSL.
Secret di Kubernetes
La specifica API Gateway supporta i secret di Kubernetes per l'archiviazione e il collegamento dei certificati ai gateway. Puoi associare uno o
più secret di Kubernetes a un gateway utilizzando il campo
Gateway.spec.tls.certificateRef
.
Le risorse gateway protette tramite i secret di Kubernetes hanno i seguenti requisiti:
- Devi impostare i listener di gateway
port
eprotocol
su443
eHTTPS
. - Devi impostare il campo
listener.tls.mode
suTerminate
. - Devi fare riferimento alle credenziali TLS nel blocco
listeners.tls
.
Le risorse del gateway protette tramite i secret di Kubernetes presentano le seguenti limitazioni:
- Solo i listener HTTPS terminano il traffico utilizzando i secret specificati, anche se 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 coppia di porta e protocollo. - Puoi assegnare un solo certificato predefinito per ciascun gateway.
Per scoprire come proteggere un gateway utilizzando un secret di Kubernetes, consulta Proteggere 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 ulteriori informazioni sulle differenze tra questi due tipi di certificati, consulta la 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 può essere usato da un gateway regionale.
La seguente tabella elenca l'ambito e i requisiti di località dei certificati SSL per ogni 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 |
Per informazioni su come proteggere un gateway mediante un certificato SSL, consulta Proteggere un gateway utilizzando un certificato SSL.
Gestore certificati
Gestore certificati è una posizione centralizzata per la gestione dei certificati TLS.
Quando proteggi un gateway utilizzando Gestore certificati, puoi:
- Fai riferimento a
CertificateMap
direttamente da un gateway che hai creato in Gestore 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 i certificati SSL autogestiti e gestiti da Google.
Per scoprire come proteggere un gateway utilizzando Gestione certificati, vedi Proteggere un gateway utilizzando Gestione certificati.
Supporto TLS GatewayClass
La seguente tabella descrive i metodi di terminazione TLS supportati da GKE 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 globaleCertificateMap |
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
- Scopri come proteggere un gateway.