Questo documento spiega come archiviare e gestire la codice licenza, installarla nella tua implementazione, aggiornare le chiavi in scadenza e verificare l'installazione in tutti i nodi.
Per eseguire un ambiente di produzione, devi installare un codice licenza Spanner Omni commerciale. In un ambiente non di produzione, puoi utilizzare le funzionalità di backup e ripristino eseguendo il deployment di Spanner Omni in una configurazione a server singolo con un massimo di quattro vCPU senza un codice licenza. La funzionalità worker non è supportata con la licenza Default o Developer, indipendentemente dal numero di server o vCPU utilizzati. Per acquistare una licenza commerciale per utilizzare i lavoratori, contatta Google.
Per scoprire di più sui tipi di licenza, sulle versioni e sulle funzionalità disponibili, consulta la panoramica delle versioni di Spanner Omni.
Memorizzare il codice licenza
Tratta il codice licenza Spanner Omni come una credenziale altamente sensibile. Se qualcuno compromette un codice licenza, Google lo invalida nelle versioni future di Spanner Omni. Per evitare l'esposizione delle chiavi, implementa le seguenti linee guida sul ciclo di vita. Ti consigliamo di utilizzare sistemi automatici per inserire la chiave anziché scriverla in testo non crittografato nell'archiviazione permanente. Le sezioni seguenti descrivono come archiviare la codice licenza, proteggere i file di deployment automatico e configurare la trasmissione in fase di runtime.
Archiviazione in Secret Manager centralizzati
Non eseguire il commit del codice licenza nel controllo del codice sorgente o codificarlo nei file di configurazione. Archivia sempre la chiave in un archivio delle credenziali centralizzato, ad esempio:
- Cloud: Google Cloud Secret Manager, Amazon Web Services (AWS) Secrets Manager, o Azure Key Vault di Microsoft.
- Indipendente dalla piattaforma: HashiCorp Vault.
Automazione del deployment
Quando esegui il deployment tramite strumenti di automazione come Terraform o Ansible, non trasmettere la codice licenza come variabili di configurazione di testo normale:
- Terraform: recupera il codice licenza in modo dinamico in fase di deployment utilizzando
le origini dati. Contrassegna la variabile utilizzando l'attributo
sensitive = trueper impedire che la chiave venga visualizzata nei log della console di esecuzione. - Ansible:mantieni la chiave in memoria durante l'esecuzione della configurazione tramite
plug-in di Secret Manager (come
google.cloud.gcp_secret_managerocommunity.hashicorp.vault) oppure cripta la chiave con Ansible Vault se è memorizzata in un repository.
Trasmettere il codice licenza in fase di runtime
Utilizza le seguenti tecniche per fornire il codice licenza ai processi del database senza esporlo a utenti non autorizzati:
Deployment basati su VM (cloud o on-premise)
- Inserimento basato su Identity and Access Management (IAM):associa le VM del database a un account di servizio gestito o a un ruolo IAM. Durante l'avvio o il provisioning (ad esempio con Ansible), utilizza questa identità per recuperare il codice licenza dal secret manager in memoria o in una directory con accesso limitato.
- Autorizzazioni del sistema operativo:se scrivi la chiave su disco, limita
l'accesso ai file in modo che solo l'utente che esegue il processo Spanner Omni
possa visualizzare il file (ad esempio,
chmod 400 /path/to/license). Limita severamente l'accesso SSH alle macchine host.
Deployment Kubernetes
- Utilizza il driver CSI Secrets Store:utilizza il driver CSI Secrets Store standard per montare la codice licenza direttamente dal gestore dei segreti esterno nei pod Spanner Omni come volume di memoria temporaneo (
tmpfs). La credenziale esiste solo in memoria e scompare quando il pod termina. - Evita i secret Kubernetes integrati:non utilizzare i secret Kubernetes integrati, che utilizzano solo la codifica base64 e vengono mantenuti in etcd.
Installa il codice licenza
Per installare o aggiornare un codice licenza, rendilo accessibile ai server Spanner Omni come percorso locale (ad esempio, /path/to/your/license).
Per passare il percorso della codice licenza al server, utilizza il flag --license-file-path o la variabile di ambiente SPANNER_LICENSE_FILE_PATH quando esegui il comando spanner start o spanner start-single-server.
Ad esempio:
spanner start --root \
--license-file-path=LICENSE_KEY_FILE_PATH \
--server-address=RESOLVABLE_HOSTNAME \
--zone=ZONE_NAME \
--base-dir=SPANNER_BASE_DIR
In alternativa, utilizza la variabile di ambiente per fornire il percorso della licenza:
SPANNER_LICENSE_FILE_PATH=LICENSE_KEY_FILE_PATH \
spanner start --root \
--server-address=RESOLVABLE_HOSTNAME \
--zone=ZONE_NAME \
--base-dir=SPANNER_BASE_DIR
Sostituisci quanto segue:
LICENSE_KEY_FILE_PATH: Il percorso locale del file del codice licenza.RESOLVABLE_HOSTNAME: Il nome host o l'indirizzo IP risolvibile del server dei nodi.ZONE_NAME: Il nome della zona per il deployment.SPANNER_BASE_DIR: la directory di base in cui sono archiviati i file del server.
In alternativa, puoi inserire il codice licenza nel percorso in cui il server si aspetta di trovarlo: BASE_DIR/license/license. Per i deployment Kubernetes, BASE_DIR
è impostato su /spanner per impostazione predefinita.
Aggiornare una licenza in scadenza
Per aggiornare, estendere o rinnovare una licenza Developer Edition in un deployment attivo, richiedi una licenza perpetua. Per estendere una licenza proof-of-concept in scadenza o acquistare una licenza commerciale, contatta Google. Dopo aver ricevuto la nuova licenza, fornisci il relativo percorso e avvia un riavvio graduale dei server Spanner Omni:
- Rendi accessibile il nuovo file di licenza a ogni nodo.
- Esegui un riavvio in sequenza riavviando un nodo server alla volta.
- Monitora l'integrità del deployment durante l'implementazione. Se il riavvio di un nodo non va a buon fine o si verificano errori, esegui il rollback alla configurazione precedente funzionante e controlla i log del server per assicurarti che la nuova licenza sia fornita correttamente.
Installa il codice licenza con Helm (Kubernetes)
Se esegui il deployment utilizzando il grafico Helm fornito da Google, puoi trasmettere il percorso del file di licenza in modo dinamico durante gli upgrade.
Poiché il flag --set-file di Helm richiede un percorso fisico su disco, non salvare
la codice licenza in un file permanente. Recupera invece la chiave dal secret manager in un file temporaneo effimero o in un percorso in memoria (ad esempio, /dev/shm su Linux). Passa questo percorso a Helm ed elimina o distruggi immediatamente
il file in seguito. In questo modo, il sistema non lascia la credenziale
in testo normale sul disco, impedendone la persistenza locale o l'invio accidentale
al controllo della versione.
helm upgrade --install spanner-omni \
--set-file licenseKey=LICENSE_KEY_FILE_PATH
Sostituisci quanto segue:
LICENSE_KEY_FILE_PATH: Il percorso locale del file del codice licenza.
Verifica l'installazione della licenza
Poiché installi il codice licenza su ogni nodo server attivo in un cluster, puoi verificare l'installazione controllando lo stato di uno dei nodi server che gestiscono le tue richieste. Utilizza il comando describe per l'endpoint:
spanner deployment describe --deployment-endpoint=SERVER_ADDRESS
Sostituisci quanto segue:
SERVER_ADDRESS: l'indirizzo del nodo del server.
Esegui un controllo a livello di cluster
Per verificare che tutti i nodi del cluster di VM o di Kubernetes StatefulSet abbiano installato ilcodice licenzaa corretto, esegui il comando di controllo a livello di cluster:
spanner admin license check
Un controllo a livello di cluster ispeziona ogni server nella topologia del database. Per questo motivo, assicurati che tutti i server nodo siano online e accessibili alla rete prima di eseguire questo comando.
Interpretare i risultati del controllo
Utilizza la seguente tabella per comprendere i risultati dell'audit a livello di cluster:
| Stato del cluster | Tipo output | Descrizione e azione richieste |
|---|---|---|
| Uniforme (previsto) | Identificatore di licenza singola | Tutti i nodi utilizzano lo stesso tipo e la stessa codice licenza. Non sono necessarie ulteriori azioni. |
| Misto (azione richiesta) | Elenco di identificatori e server di licenze | Vengono rilevate chiavi di licenza diverse nei nodi (ad esempio durante un aggiornamento in sequenza bloccato). Esamina i nodi elencati per assicurarti che il nuovo file di licenza sia stato applicato correttamente. |
Mantenere la conformità della licenza commerciale
Se utilizzi una licenza commerciale Spanner Omni, devi rispettare i termini del contratto di licenza. Il mantenimento della conformità consente di evitare contestazioni della fatturazione e monitora e segnala a Google l'utilizzo delle risorse del cluster. Completa i seguenti passaggi per mantenere la conformità a un contratto di licenza commerciale Spanner Omni:
Esegui lo strumento Spanner Omni Usage alla fine di ogni ciclo di fatturazione per raccogliere le metriche di utilizzo delle vCPU del cluster:
spanner admin license report --row-format=CSVCollabora con il Technical Account Manager (TAM) o con il team dedicato al tuo Account Google per confermare il canale di invio preferito della tua organizzazione.
Invia il payload risultante a Google entro il giorno 5 del mese successivo.