Autorizzazione con certificati SSL/TLS

In questa pagina viene descritto come utilizzare il protocollo Secure Socket Layer (SSL), ora Transport Layer Security (TLS), dalla tua applicazione per criptare alle istanze Cloud SQL.

Panoramica

Cloud SQL supporta la connessione a un'istanza tramite SSL/TLS protocollo. Le connessioni SSL/TLS forniscono un livello di sicurezza criptando i dati in transito tra il client e il database nell'istanza Cloud SQL. Facoltativamente, la connessione SSL/TLS può Eseguire la verifica dell'identità del server convalidando il certificato del server. installato sull'istanza Cloud SQL e sulla verifica dell'identità del client convalidando il certificato client installato sul client.

Certificati server

Quando crei un'istanza, Cloud SQL crea e installa automaticamente un certificato del server firmato da un'autorità di certificazione (CA). Puoi scaricare il certificato CA sulla macchina host client e utilizzarlo per verificare l'identità della CA e del server Cloud SQL. Se vuoi, puoi scegliere il tipo di CA utilizzato da Cloud SQL per firmare il certificato del server.

Certificati client

Se vuoi, puoi creare e scaricare i certificati client insieme alle chiavi per la macchina host del client per l'autenticazione reciproca (verifica dell'identità del server e del client). Non puoi scegliere il tipo di CA che Cloud SQL usa per firmare il certificato client.

Connessione tramite SSL/TLS

Quando ti connetti a un'istanza Cloud SQL dai client, puoi utilizzare SSL/TLS per le connessioni dirette e per le connessioni che utilizzano il proxy di autenticazione Cloud SQL o i connettori dei linguaggi Cloud SQL.

  • Per le connessioni dirette, Google consiglia vivamente di applicare la crittografia SSL/TLS utilizzando l'impostazione della modalità SSL in Cloud SQL. Facoltativamente, puoi di applicare anche la verifica dei certificati client. Per ulteriori informazioni, consulta Applicare la crittografia SSL/TLS.

  • Per le connessioni che utilizzano il proxy di autenticazione Cloud SQL o i connettori dei linguaggi di Cloud SQL, vengono automaticamente criptati con SSL/TLS, insieme all'identità client e server la verifica senza dover scaricare un certificato CA del server certificato client.

Per ulteriori informazioni sulle opzioni di connettività Cloud SQL, consulta Informazioni sulle connessioni Cloud SQL.

Per ulteriori informazioni sulla configurazione SSL/TLS lato client, vedi la documentazione per il motore del database.

Gerarchie delle autorità di certificazione (CA)

Questa sezione descrive i due tipi di autorità di certificazione (CA) del server che puoi scegliere per le tue istanze Cloud SQL. Sono disponibili due opzioni:

  • CA per istanza: con questa opzione, viene utilizzata una CA interna a ogni istanza Cloud SQL per quella istanza. Cloud SQL crea e gestisce queste CA. Per scegliere una CA per istanza, specifica GOOGLE_MANAGED_INTERNAL_CA per l'impostazione serverCaMode (API Cloud SQL Admin) o il flag --server-ca-mode (gcloud CLI) quando devi creare l'istanza. Se lasci l'impostazione o l'indicatore non specificato, questa opzione è il valore predefinito per l'istanza.
  • CA condivisa: con questa opzione viene utilizzata una gerarchia CA composta da una CA radice e da CA server subordinate. Le CA del server subordinate in una regione firmano i certificati del server e sono condivise tra le istanze della regione. Cloud SQL ospita e gestisce le risorse CA e CA server subordinate su Google Cloud Certificate Authority Service (CA Service). Cloud SQL gestisce anche la rotazione delle CA radice e delle CA del server subordinate e fornisce link disponibili pubblicamente ai bundle di certificati CA da scaricare. Per scegliere la condivisione CA, specifica GOOGLE_MANAGED_CAS_CA per l'impostazione serverCaMode (API Cloud SQL Admin) o il flag --server-ca-mode (gcloud CLI) quando crei l'istanza.

Dopo aver creato un'istanza, puoi visualizzare la gerarchia CA configurata per un'istanza Cloud SQL utilizzando il comando gcloud sql instances describe. Per ulteriori informazioni, vedi Visualizzare le informazioni sulle istanze.

La tabella seguente mette a confronto le due gerarchie di CA le opzioni di CPU e memoria disponibili.

Funzionalità CA per istanza CA condivisa
Struttura CA CA separata per ogni istanza CA radice e CA subordinate condivise tra le istanze nella stessa regione
Attributi crittografici Chiave RSA a 2048 bit con algoritmo SHA256 Algoritmo di firma digitale con curva ellittica (ECDSA) con chiave di 384 bit con algoritmo SHA384
Periodo di validità dell'autorità di certificazione 10 anni 25 anni per la CA radice e 10 anni per le CA subordinate
Periodo di validità del certificato del server 10 anni 1 anno
Rotazione della CA avviata dall'utente No. La rotazione delle CA è gestita da Cloud SQL
Rotazione del certificato del server avviata dall'utente?
Trust anchor CA per le connessioni TLS L'autorità di certificazione univoca per istanza è il trust anchor per l'istanza corrispondente. La CA radice e le CA secondarie sono le ancore di attendibilità per tutte le istanze in una determinata regione.
Verifica dell'identità del server La verifica della CA verifica l'identità del server, poiché ogni istanza ha una CA univoca. La verifica del nome host e della CA è necessaria per la verifica dell'identità del server, poiché le CA del server sono condivise tra le istanze.
Campo Subject Alternative Name (SAN) nei certificati del server Il campo SAN contiene il nome host (nome DNS dell'istanza) solo per le istanze abilitate con Private Service Connect. Per l'identità del server è possibile utilizzare il nome host verifica. Se ti connetti a un'istanza Cloud SQL utilizzando il nome DNS come nome host, devi configurare la risoluzione DNS. Il campo SAN contiene il nome host (nome DNS dell'istanza) per tutti i tipi di istanze. Il nome host può essere utilizzato per la verifica dell'identità del server. Se ti connetti a un'istanza Cloud SQL utilizzando il nome DNS come nome host, devi configurare la risoluzione DNS.

CA per istanza ospitata da Cloud SQL

Questa gerarchia di CA è la configurazione predefinita della modalità CA del server.

Cloud SQL crea una nuova CA del server autofirmata per ogni istanza quando la crei. Per utilizzare questa impostazione: configura serverCaMode su GOOGLE_MANAGED_INTERNAL_CA o lascia non specificata durante la creazione dell'istanza.

Il seguente diagramma mostra la gerarchia delle CA per istanza.

Diagramma della gerarchia delle CA interne per istanza.

CA condivise ospitate da CA Service

Questa modalità CA del server è composta da una CA radice e da CA del server subordinate in ogni regione. Le CA del server subordinate rilasciano certificati server e sono condivise tra le istanze della regione. Cloud SQL gestisce la rotazione delle CA del server regionali condivise e fornisce link disponibili pubblicamente per scaricare i bundle di certificati CA.

Puoi configurare un'istanza in modo che utilizzi una gerarchia di CA del server in cui le CA di emissione sono condivise tra le istanze nella stessa regione. Per utilizzare questa impostazione: configura serverCaMode su GOOGLE_MANAGED_CAS_CA quando crei l'istanza.

Il seguente diagramma mostra la gerarchia delle CA condivise.

Diagramma di una gerarchia di CA condivisa

Come funziona la rotazione dei certificati server

Cloud SQL offre modi per ruotare il certificato del server; in modo che il nuovo certificato possa essere sostituito senza problemi prima di quello precedente scade.

Il comando di rotazione da utilizzare dipende dall'eventuale utilizzo di un certificato del server emesso da un'autorità di certificazione per istanza o da un certificato del server emesso CA condivisa.

Circa tre mesi prima della scadenza del certificato del server per un'istanza Cloud SQL, i proprietari del progetto ricevono un'email da Cloud SQL che indica che è iniziata la procedura di rotazione del certificato per l'istanza. L'email fornisce il nome dell'istanza e comunica che Cloud SQL ha aggiunto un nuovo certificato del server al progetto. Il certificato del server esistente continua a funzionare normalmente. In pratica, l'istanza ha due certificati del server durante questo periodo.

Prima della scadenza del certificato attuale, scarica il nuovo file server-ca.pem, che contiene le informazioni del certificato sia per il certificato attuale sia per quello nuovo. Aggiorna i client MySQL per utilizzare il nuovo copiandolo su tutte le macchine host del client MySQL, sostituendo il file esistente.

Dopo aver aggiornato tutti i client MySQL, invia un'email comando rotate (per CA per istanza) oppure comando di rotazione (per CA condivisa) le API Cloud SQL per ruotare al nuovo certificato del server. Al termine, il vecchio certificato del server non viene più riconosciuto e può essere utilizzato solo il nuovo certificato del server.

I certificati client non sono interessati dalla rotazione dei certificati del server.

Scadenza del certificato SSL

Per impostazione predefinita, le istanze Cloud SQL utilizzano l'impostazione predefinita GOOGLE_MANAGED_INTERNAL_CA come serverCaMode. L'SSL i certificati hanno un periodo di scadenza di 10 anni. Prima della scadenza di questi certificati, esegui la rotazione delle CA.

Per le istanze che utilizzano CA condivise (serverCaMode è impostata su GOOGLE_MANAGED_CAS_CA), la scadenza dei certificati del server è di 1 anno. Prima della scadenza, esegui la rotazione del certificato SSL. Il certificato dell'autorità di certificazione (CA) radice ha un periodo di scadenza di 25 anni, mentre il certificato della CA condivisa subordinata ha un periodo di scadenza di 10 anni. Cloud SQL gestisce la rotazione.

Se un client è configurato per verificare l'autorità di certificazione o il nome host nel certificato del server, le connessioni del client alle istanze Cloud SQL con certificati del server scaduti non andranno a buon fine. Per evitare interruzioni delle connessioni client, gira il certificato del server prima della scadenza.

Indipendentemente dall'utilizzo della CA per istanza o della modalità del server CA condiviso, puoi reimpostare la configurazione SSL dell'istanza Cloud SQL in qualsiasi momento.

Passaggi successivi