Per attivare Transparent Data Encryption (TDE), devi fornire le variabili di ambiente del vault richieste e includere il flag --tde-kek-url all'interno di POSTGRES_INITDB_ARGS.
Prima di iniziare
- Configura il motore dei secret KV-V2 di HashiCorp Vault per assicurarti che il percorso della chiave di crittografia della chiave (KEK) e il token web JSON (JWT) siano disponibili.
- Assicurati che AlloyDB Omni abbia l'autorizzazione per leggere il file del token JWT.
Crea il cluster
Per creare un cluster abilitato alla 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.
Seleziona la scheda relativa al runtime del container.
Docker
docker run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \ -e VAULT_AUTH_TYPE=jwt \ -e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ -e VAULT_JWT_PATH=JWT_FILE_PATH \ -e VAULT_ROLE=VAULT_ROLE \ -e VAULT_CERT_PATH=VAULT_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
Docker
docker run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \ -e VAULT_AUTH_TYPE=jwt \ -e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ -e VAULT_JWT_PATH=JWT_FILE_PATH \ -e VAULT_ROLE=VAULT_ROLE \ -e VAULT_CERT_PATH=VAULT_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
Podman
podman run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \ -e VAULT_AUTH_TYPE=jwt \ -e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ -e VAULT_JWT_PATH=JWT_FILE_PATH \ -e VAULT_ROLE=VAULT_ROLE \ -e VAULT_CERT_PATH=VAULT_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
Podman
podman run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \ -e VAULT_AUTH_TYPE=jwt \ -e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ -e VAULT_JWT_PATH=JWT_FILE_PATH \ -e VAULT_ROLE=VAULT_ROLE \ -e VAULT_CERT_PATH=VAULT_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
Sostituisci quanto segue:
CONTAINER_NAME: il nome del container da creare. Ad esempio,alloydb-tde.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: 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 esempio,tde-tls/jwt-token.- (Facoltativo)
VAULT_ROLE: il ruolo client definito nella configurazione di Vault che consente a HashiCorp Vault di verificare l'autenticità del token JWT. VAULT_CERT_PATH_ON_DISK: il percorso dei certificati del vault sulla macchina host. Ad esempio,/local/vault/config.VAULT_CERT_PATH: il percorso in cui si trovano i certificati per la connessione al vault nel container. Ad esempio,/tde-tls. Se non impostati, 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 fornitore di KMS, ad esempiovault://127.0.0.1:8200/v1/secrets/data/alloydb_kek.IMAGE_TAG: utilizza18.1.0per l'ultima immagine Debian o18.1.0-ubiper l'ultima immagine UBI.
Visualizzare le metriche TDE
Dopo l'inizializzazione del cluster, completa i seguenti passaggi per verificare che TDE sia abilitato e visualizzare le metriche TDE correlate.
- Connettiti al database utilizzando
psqlo il tuo client preferito. Per istruzioni dettagliate su come connetterti alle tue istanze, consulta Esegui e connettiti ad AlloyDB Omni. Esegui questo comando:
select * FROM pgsnap.g$tde_stats;Se TDE è abilitato correttamente, l'output mostra le metriche TDE, ad esempio se TDE è abilitato, l'URL KEK, la versione KEK e il timestamp di creazione 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 per la decriptografia del blocco 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 attivato. Non applicabile misuratore alloydb_omni_database_tde_kek_infoInformazioni sulla KEK 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 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 per la decriptazione del blocco temporaneo. Non applicabile microsecondi contatore alloydb_omni_database_tde_temp_encryption_time_us_totalTempo totale trascorso nella crittografia del blocco temporaneo. 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 per la decrittografia del blocco 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