Per abilitare la crittografia trasparente dei dati (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 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.
- Assicurati che AlloyDB Omni abbia l'autorizzazione per leggere il file del token JWT.
Crea il cluster
Per creare un cluster abilitato per 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: il percorso in cui è montato il motore di autenticazione di HashiCorp Vault. Ad esempio,/auth/jwt.JWT_FILE_PATH: il percorso in cui il JWT del vault è archiviato sui nodi. Ad esempio,tde-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_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 viene 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.IMAGE_TAG: utilizza18.1.0per l'ultima immagine Debian o18.1.0-ubiper l'ultima immagine UBI.
Visualizza 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 client che preferisci. Per istruzioni dettagliate su come connetterti alle istanze, consulta Esegui e connettiti 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 seguente tabella spiega il significato di ogni metrica.
Nome Descrizione Etichetta Unità Tipo alloydb_omni_database_tde_data_blocks_decrypted_count_totalIl numero di blocchi di dati decriptati. Non applicabile contatore alloydb_omni_database_tde_data_blocks_encrypted_count_totalIl numero di blocchi di dati criptati. Non applicabile contatore alloydb_omni_database_tde_data_decryption_time_us_totalIl tempo totale trascorso nella decrittografia dei blocchi di dati. Non applicabile microsecondi contatore alloydb_omni_database_tde_data_encryption_time_us_totalIl tempo totale trascorso nella crittografia dei blocchi di dati. Non applicabile microsecondi contatore alloydb_omni_database_tde_enabledLo stato di TDE abilitato. Non applicabile misuratore alloydb_omni_database_tde_kek_infoLe informazioni sulla KEK di TDE. kek_version: la versione della KEK
in uso per il wrapping delle chiavi.kek_url: il percorso completo
della KEK in KMSkek_creation_timestamp:
l'ora di creazione della versione della KEK in uso.
misuratore alloydb_omni_database_tde_temp_blocks_decrypted_count_totalIl numero di blocchi temporanei decriptati. Non applicabile contatore alloydb_omni_database_tde_temp_blocks_encrypted_count_totalIl numero di blocchi temporanei criptati. Non applicabile contatore alloydb_omni_database_tde_temp_decryption_time_us_totalIl tempo totale trascorso nella decrittografia dei blocchi temporanei. Non applicabile microsecondi contatore alloydb_omni_database_tde_temp_encryption_time_us_totalIl tempo totale trascorso nella crittografia dei blocchi temporanei. Non applicabile microsecondi contatore alloydb_omni_database_tde_wal_blocks_decrypted_count_totalIl numero di blocchi WAL decriptati. Non applicabile contatore alloydb_omni_database_tde_wal_blocks_encrypted_count_totalIl numero di blocchi WAL criptati. Non applicabile contatore alloydb_omni_database_tde_wal_decryption_time_us_totalIl tempo totale trascorso nella decrittografia dei blocchi WAL. Non applicabile microsecondi contatore alloydb_omni_database_tde_wal_encryption_time_us_totalIl tempo totale trascorso nella crittografia dei blocchi WAL. Non applicabile microsecondi contatore