Utilizza Secret Manager per gestire i secret in Cloud SQL

Panoramica

La corretta gestione dei tuoi informazioni sensibili è una parte essenziale della creazione di un un flusso di lavoro sicuro per lo sviluppo. Per Cloud SQL, ti consigliamo di archiviare le informazioni sensibili come secret che crei in Secret Manager. I secret includono chiavi API, password, informazioni sensibili o credenziali che potresti utilizzare per accedere a un sistema riservato.

Secret Manager offre comodità e migliora la sicurezza. Puoi e applicare il controllo delle versioni ai secret e condividerli con il tuo team. Per scoprire di più su come condividere i secret con il tuo team, vedi Controllo dell'accesso (IAM).

In questa pagina vengono descritti quattro casi d'uso per l'utilizzo di Secret Manager per gestire i secret con Cloud SQL:

Prima di iniziare

Prima di iniziare a utilizzare Secret Manager per gestire i secret in Cloud SQL:

Nomi utente e password

Utilizzo di Secret Manager per archiviare nomi utente e password di Cloud SQL account utente come segreti è un modo sicuro e affidabile per gestire queste informazioni sensibili.

Innanzitutto, devi creare un utente in Cloud SQL. Come parte della creazione dell'utente, devi inserisci un nome utente e una password. Per saperne di più sulla creazione di un utente in Cloud SQL, consulta Creare e gestire gli utenti.

Dopo aver creato l'utente, crea un secret in Secret Manager per archiviare il nome utente e password. In questo modo eviterai di perdere queste informazioni sensibili. Per Per saperne di più sulla creazione e sull'accesso ai secret in Secret Manager, consulta Creazione e accesso ai secret.

Istanze Cloud SQL

Quando ti connetti all'istanza Cloud SQL, puoi utilizzare Secret Manager per gestire i secret e creare un flusso di lavoro di sviluppo sicuro.

Per iniziare, connettiti all'istanza Cloud SQL dal computer locale. Dopo il giorno se l'istanza è in esecuzione, usa le variabili di ambiente per connetterti. Alcuni valori associate alle variabili sono più sensibili, come l'istanza il nome della connessione. Per ogni valore, puoi creare un secret in Secret Manager per archiviare e gestire queste informazioni. Per scoprire di più sull'utilizzo dell'ambiente per connetterti all'istanza Cloud SQL, consulta Configura ed esegui un'app di esempio.

Puoi recuperare direttamente il nome della connessione dell'istanza archiviato come secret di Secret Manager. Ciò fornisce un flusso di lavoro flessibile che può aiutare di condividere queste informazioni sensibili in più applicazioni e gestirle da una posizione centralizzata. Per ulteriori informazioni sul recupero dei secret da Secret Manager, vedi Creare un secret con Secret Manager.

Per avviare un'applicazione sono necessarie le informazioni contenute nei secret. Queste informazioni include i valori associati alle variabili di ambiente utilizzate per la connessione un'applicazione. L'applicazione accede ai secret all'avvio e poi utilizza i secret per configurare una connessione a Cloud SQL. Se i secret pertinenti vengono aggiornati in Secret Manager, potresti dover riavviare l'applicazione.

Certificati SSL/TLS

Se ti connetti a un'istanza Cloud SQL utilizzando un indirizzo IP pubblico o privato, utilizzare un certificato TLS (Transport Layer Security) che protegge i dati viene trasmesso. Ogni certificato TLS include un certificato di chiave pubblica e un chiave privata. Per ulteriori informazioni sulla configurazione dei certificati TLS, vedi Configurare i certificati SSL/TLS.

Puoi salvare il certificato TLS, il certificato di chiave pubblica e la chiave privata come segreti per tenerli al sicuro e condividerli con il tuo team. Per saperne di più sulla creazione e sull'accesso ai secret, consulta Creare un secret con Secret Manager. Per ulteriori informazioni dei secret, consulta Controllo dell'accesso (IAM).

Scenari di ripristino di emergenza

Se un'istanza principale in Cloud SQL ha esito negativo, potresti promuovere una replica di lettura all'istanza principale. Quando la replica di lettura diventa l'istanza principale, devi aggiorna il nome della connessione istanza in modo che rifletta questa promozione. Se la connessione all'istanza è memorizzato in un secret, devi aggiornare il secret con il nome della nuova istanza principale. Per ulteriori informazioni, consulta Modificare un secret.

Un modo per utilizzare Secret Manager per i failover è archiviare il nome principale in un secret, quindi configura il connettore Cloud SQL ogni volta che il secret viene aggiornato.

Puoi usare il seguente script wrapper bash con il proxy di autenticazione Cloud SQL per rileva quando il valore per il nome della connessione dell'istanza viene aggiornato, quindi riavvia il proxy con il nuovo valore:

#!/bin/bash

SECRET_ID="my-secret-id" # TODO(developer): replace this value
REFRESH_INTERVAL=5
PORT=5432                # TODO(developer): change this port as needed

# Get the latest version of the secret and start the proxy
INSTANCE=$(gcloud secrets versions access "latest" --secret="$SECRET_ID")
cloud_sql_proxy -instances="$INSTANCE"=tcp:"$PORT" &
PID=$!

# Every 5s, get the latest version of the secret. If it's changed, restart the
# proxy with the new value.
while true; do
    sleep $REFRESH_INTERVAL
    NEW=$(gcloud secrets versions access "latest" --secret="$SECRET_ID")
    if [ "$INSTANCE" != "$NEW" ]; then
        INSTANCE=$NEW
        kill $PID
        wait $PID
        cloud_sql_proxy -instances="$INSTANCE"=tcp:"$PORT" &
        PID=$!
    fi
done

Per ulteriori informazioni sulla creazione e sull'accesso un secret contenente il nome di connessione istanza della replica principale. Consulta Creare un secret con Secret Manager. Per ulteriori informazioni sull'utilizzo del proxy di autenticazione Cloud SQL, consulta Connettersi a Cloud SQL utilizzando il proxy di autenticazione Cloud SQL.

Passaggi successivi

  • Puoi integrare Secret Manager con altri servizi Google Cloud come Cloud Run.
  • Per scoprire come integrare Secret Manager nel tuo ambiente di sviluppo, guarda i vari esempi disponibili in All Secret Manager di esempio.