Prima di iniziare
Configura il motore di secret KV-V2 di HashiCorp Vault per assicurarti che il percorso della chiave di crittografia della chiave (KEK) e il token JWT (JSON Web Token) siano disponibili.
Verifica che AlloyDB Omni abbia l'autorizzazione per leggere il file del token JWT.
Crea il cluster
Per creare un cluster abilitato a TDE, devi trasmettere la configurazione e le credenziali di autenticazione necessarie di Key Management Service (KMS) durante l'inizializzazione del database. L'unico tipo di autenticazione supportato è jwt.
Installa AlloyDB Omni utilizzando RPM per preparare l'ambiente e installare il pacchetto RPM di AlloyDB Omni.
Inizializza il database.
KMS di HashiCorp Vault
Utilizza questo approccio per i carichi di lavoro di produzione.
Esegui il seguente comando per inizializzare il database con TDE abilitato:
sudo PGPASSWORD=POSTGRES_PASSWORD \ PGDATA=DATA_DIR \ VAULT_AUTH_TYPE=jwt \ VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ VAULT_JWT_PATH=JWT_FILE_PATH \ VAULT_ROLE=VAULT_ROLE \ VAULT_CERT_PATH=VAULT_CERT_PATH \ POSTGRES_INITDB_ARGS="--tde-kek-url=KEK_URL" \ /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
Sostituisci quanto segue:
POSTGRES_PASSWORD: la password per l'utente del database.DATA_DIR: la directory locale da montare come volume di dati per AlloyDB Omni, ad esempio/local/data.VAULT_AUTH_TYPE: il tipo di autenticazione da utilizzare per la connessione al vault. È supportato solojwt.JWT_AUTH_ENGINE_MOUNT: il percorso in cui è montato il motore di autenticazione di HashiCorp Vault, ad esempio/auth/jwt.JWT_FILE_PATH: il percorso in cui è archiviato il JWT del vault sui nodi, ad esempiotde-tls/jwt-token.- (Facoltativo)
VAULT_ROLE: il ruolo client definito nella configurazione del vault che consente a HashiCorp Vault di verificare l'autenticità del token JWT. VAULT_CERT_PATH: il percorso in cui si trovano i certificati per la connessione al vault nel container, ad esempio/tde-tls. Se non è impostato, vengono utilizzati i certificati nell'archivio di attendibilità predefinito.KEK_URL: l'URL completo della KEK in HashiCorp Vault. Utilizzavaultcome protocollo per specificare HashiCorp Vault come provider KMS, ad esempiovault://127.0.0.1:8200/v1/secrets/data/alloydb_kek.
Per creare un file di override per
alloydbomni.service in /etc/systemd/system/alloydbomni18.service.d/override.conf, aggiungi quanto segue al fileoverride.conf:[Service] Environment="VAULT_AUTH_TYPE" Environment="VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT" Environment="VAULT_JWT_PATH=JWT_FILE_PATH" Environment="VAULT_ROLE=VAULT_ROLE" Environment="VAULT_CERT_PATH=VAULT_CERT_PATH"
Per applicare le modifiche, ricarica il daemon systemd.
sudo systemctl daemon-reload
KMS basato su file
Utilizza questo approccio solo a scopo di test.
Per testare TDE in locale utilizzando una chiave basata su file, devi prima generare una KEK di 32 byte sulla tua macchina.
Crea la directory, genera la chiave e imposta le autorizzazioni appropriate.
KEK_DIR=KEK_DIR mkdir -p $KEK_DIR sudo chown 999:999 $KEK_DIR openssl rand -base64 32 | sudo tee $KEK_DIR/key sudo chmod 0755 $KEK_DIR/key
Inizializza il database trasmettendo l'URI del file locale come URL della KEK.
sudo PGPASSWORD=POSTGRES_PASSWORD \ PGDATA=DATA_DIR \ POSTGRES_INITDB_ARGS="--tde-kek-url=file:///$KEK_DIR/key" \ /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
Sostituisci quanto segue:
POSTGRES_PASSWORD: la password per l'utente del database.DATA_DIR: la directory locale da montare come volume di dati per AlloyDB Omni, ad esempio/local/data.KEK_DIR: la directory in cui è archiviata la KEK locale basata su file, ad esempio/tmp/alloydb/kms.
Dopo aver inizializzato il database, segui le istruzioni riportate in Installare AlloyDB Omni utilizzando RPM per preparare il database, configurare l'host e avviare il servizio
systemd.
Visualizza le metriche TDE
Dopo aver inizializzato il cluster, completa i seguenti passaggi per verificare che TDE sia abilitato e visualizzare le metriche TDE correlate.
- Connettiti al database utilizzando
psqlo il client che preferisci. Per istruzioni dettagliate su come connetterti alle istanze, consulta Eseguire AlloyDB Omni e connettersi ad AlloyDB Omni. Esegui questo comando:
select * FROM pgsnap.g$tde_stats;L'output mostra le metriche TDE, ad esempio se TDE è abilitato, l'URL della KEK, la versione della KEK e il timestamp di creazione della KEK.
La tabella seguente spiega il significato di ogni metrica.
Nome Descrizione Etichetta Unità Tipo alloydb_omni_database_tde_data_blocks_decrypted_count_totalNumero di blocchi di dati decriptati. Non applicabile contatore alloydb_omni_database_tde_data_blocks_encrypted_count_totalNumero di blocchi di dati criptati. Non applicabile contatore alloydb_omni_database_tde_data_decryption_time_us_totalTempo totale trascorso nella decriptazione dei blocchi di dati. Non applicabile microsecondi contatore alloydb_omni_database_tde_data_encryption_time_us_totalTempo totale trascorso nella crittografia dei blocchi di dati. Non applicabile microsecondi contatore alloydb_omni_database_tde_enabledStato di TDE abilitato. Non applicabile misuratore alloydb_omni_database_tde_kek_infoInformazioni sulla KEK di TDE. kek_version: versione della KEK
in uso per il wrapping delle chiavi.kek_url: percorso completo
della KEK in KMSkek_creation_timestamp:
ora di creazione della versione della KEK in uso.
misuratore alloydb_omni_database_tde_temp_blocks_decrypted_count_totalNumero di blocchi temporanei decriptati. Non applicabile contatore alloydb_omni_database_tde_temp_blocks_encrypted_count_totalNumero di blocchi temporanei criptati. Non applicabile contatore alloydb_omni_database_tde_temp_decryption_time_us_totalTempo totale trascorso nella decriptazione dei blocchi temporanei. Non applicabile microsecondi contatore alloydb_omni_database_tde_temp_encryption_time_us_totalTempo totale trascorso nella crittografia dei blocchi temporanei. Non applicabile microsecondi contatore alloydb_omni_database_tde_wal_blocks_decrypted_count_totalNumero di blocchi WAL decriptati. Non applicabile contatore alloydb_omni_database_tde_wal_blocks_encrypted_count_totalNumero di blocchi WAL criptati. Non applicabile contatore alloydb_omni_database_tde_wal_decryption_time_us_totalTempo totale trascorso nella decriptazione dei blocchi WAL. Non applicabile microsecondi contatore alloydb_omni_database_tde_wal_encryption_time_us_totalTempo totale trascorso nella crittografia dei blocchi WAL. Non applicabile microsecondi contatore