Per abilitare la crittografia dei dati trasparente (TDE), devi fornire le variabili di ambiente del vault richieste e includere il flag --tde-kek-url in 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.3.0per l'ultima immagine Debian o18.3.0-ubiper l'ultima immagine UBI.
Per abilitare TDE per i dati della cache del motore colonnare trasferiti allo spazio di archiviazione SSD, connettiti all'istanza del database ed esegui la seguente query:
ALTER SYSTEM SET google_columnar_engine.enable_tde_for_storage_cache = 'on';
Riavvia il server di database affinché le modifiche abbiano effetto.
Riferimenti alle metriche TDE
Puoi visualizzare tutte le metriche TDE nell'agente di monitoraggio di AlloyDB Omni. La tabella seguente spiega il significato di ogni metrica.
| Nome | Descrizione | Etichetta | Unità | Tipo |
|---|---|---|---|---|
alloydb_omni_database_tde_data_blocks_decrypted_count_total |
Il numero di blocchi di dati decriptati. | Non applicabile | counter | |
alloydb_omni_database_tde_data_blocks_encrypted_count_total |
Il numero di blocchi di dati criptati. | Non applicabile | counter | |
alloydb_omni_database_tde_data_decryption_time_us_total |
Il tempo totale trascorso nella decriptazione dei blocchi di dati. | Non applicabile | microsecondi | counter |
alloydb_omni_database_tde_data_encryption_time_us_total |
Il tempo totale trascorso nella crittografia dei blocchi di dati. | Non applicabile | microsecondi | counter |
alloydb_omni_database_tde_enabled |
Lo stato di TDE abilitato. | Non applicabile | gauge | |
alloydb_omni_database_tde_kek_info |
Le informazioni sulla KEK di TDE. |
|
gauge | |
alloydb_omni_database_tde_temp_blocks_decrypted_count_total |
Il numero di blocchi temporanei decriptati. | Non applicabile | counter | |
alloydb_omni_database_tde_temp_blocks_encrypted_count_total |
Il numero di blocchi temporanei criptati. | Non applicabile | counter | |
alloydb_omni_database_tde_temp_decryption_time_us_total |
Il tempo totale trascorso nella decriptazione dei blocchi temporanei. | Non applicabile | microsecondi | counter |
alloydb_omni_database_tde_temp_encryption_time_us_total |
Il tempo totale trascorso nella crittografia dei blocchi temporanei. | Non applicabile | microsecondi | counter |
alloydb_omni_database_tde_wal_blocks_decrypted_count_total |
Il numero di blocchi WAL decriptati. | Non applicabile | counter | |
alloydb_omni_database_tde_wal_blocks_encrypted_count_total |
Il numero di blocchi WAL criptati. | Non applicabile | counter | |
alloydb_omni_database_tde_wal_decryption_time_us_total |
Il tempo totale trascorso nella decriptazione dei blocchi WAL. | Non applicabile | microsecondi | counter |
alloydb_omni_database_tde_wal_encryption_time_us_total |
Il tempo totale trascorso nella crittografia dei blocchi WAL. | Non applicabile | microsecondi | counter |
tde_chill_cache_blocks_encrypted |
Il numero di blocchi della cache inattiva criptati. | Non applicabile | counter | |
tde_chill_cache_blocks_decrypted |
Il numero di blocchi della cache inattiva decriptati. | Non applicabile | counter | |
tde_chill_cache_blocks_total_encryption_time_us |
Il tempo totale trascorso nella crittografia dei blocchi della cache inattiva. | Non applicabile | microsecondi | counter |
tde_chill_cache_blocks_total_decryption_time_us |
Il tempo totale trascorso nella decriptazione dei blocchi della cache inattiva. | Non applicabile | microsecondi | counter |
tde_ce_cache_ssd_blocks_encrypted |
Il numero di blocchi della cache colonnare trasferiti allo spazio di archiviazione SSD che sono stati criptati. | Non applicabile | counter | |
tde_ce_cache_ssd_blocks_decrypted |
Il numero di blocchi della cache colonnare trasferiti allo spazio di archiviazione SSD che sono stati decriptati. | Non applicabile | counter | |
tde_ce_cache_ssd_blocks_total_encryption_time_us |
Il tempo totale trascorso nella crittografia dei blocchi della cache colonnare trasferiti allo spazio di archiviazione SSD. | Non applicabile | microsecondi | counter |
tde_ce_cache_ssd_blocks_total_decryption_time_us |
Il tempo totale trascorso nella decriptazione dei blocchi della cache colonnare trasferiti allo spazio di archiviazione SSD. | Non applicabile | microsecondi | counter |