Para ativar a criptografia de dados transparente (TDE), forneça as variáveis de ambiente do vault necessárias e inclua a flag --tde-kek-url em POSTGRES_INITDB_ARGS.
Antes de começar
- Configure o mecanismo de secrets KV-V2 do HashiCorp Vault para garantir que o caminho da chave de criptografia de chave (KEK) e o JSON Web Token (JWT) estejam disponíveis.
- Verifique se o AlloyDB Omni tem permissão para ler o arquivo de token JWT.
Crie o cluster
Para criar um cluster ativado para TDE, transmita a configuração e as credenciais de autenticação necessárias do Key Management Service (KMS) durante a inicialização do banco de dados. O único tipo de autenticação compatível é jwt.
Selecione a guia do ambiente de execução do contêiner.
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
Substitua:
CONTAINER_NAME: o nome do contêiner a ser criado. Por exemplo,alloydb-tde.DATA_DIR: o diretório local a ser montado como o volume de dados do AlloyDB Omni. Por exemplo,/local/data.VAULT_AUTH_TYPE: o tipo de autenticação a ser usado para a conexão do vault. Somentejwté compatível.JWT_AUTH_ENGINE_MOUNT: caminho em que o mecanismo de autenticação do HashiCorp Vault está montado. Por exemplo,/auth/jwt.JWT_FILE_PATH: caminho em que o JWT do vault está armazenado nos nós. Por exemplo,tde-tls/jwt-token.- (Opcional)
VAULT_ROLE: o papel do cliente definido na configuração do vault que permite que o HashiCorp Vault verifique a autenticidade do token JWT. VAULT_CERT_PATH_ON_DISK: caminho para os certificados do vault na máquina host. Por exemplo,/local/vault/config.VAULT_CERT_PATH: caminho em que os certificados da conexão do vault estão localizados no contêiner. Por exemplo,/tde-tls. Se não estiver definido, os certificados no repositório de confiança padrão serão usados.KEK_URL: o URL totalmente qualificado para o KEK no HashiCorp Vault. Usevaultcomo o protocolo para especificar o HashiCorp Vault como o provedor de KMS. Por exemplo,vault://127.0.0.1:8200/v1/secrets/data/alloydb_kek.IMAGE_TAG: use18.1.0para a imagem mais recente do Debian ou18.1.0-ubipara a imagem UBI mais recente.
Ver métricas de TDE
Depois que o cluster for inicializado, conclua as etapas a seguir para verificar se a TDE está ativada e conferir as métricas relacionadas.
- Conecte-se ao banco de dados usando
psqlou o cliente de sua preferência. Para instruções detalhadas sobre como se conectar às instâncias, consulte Executar e conectar-se ao AlloyDB Omni. Execute este comando:
select * FROM pgsnap.g$tde_stats;Se a TDE estiver ativada, a saída vai mostrar métricas de TDE, como se a TDE está ativada, o URL da KEK, a versão da KEK e o carimbo de data/hora de criação da KEK.
A tabela a seguir explica o que cada métrica significa.
Nome Descrição Rótulo Unidade Tipo alloydb_omni_database_tde_data_blocks_decrypted_count_totalNúmero de blocos de dados descriptografados. Não relevante Contador alloydb_omni_database_tde_data_blocks_encrypted_count_totalNúmero de blocos de dados criptografados. Não relevante Contador alloydb_omni_database_tde_data_decryption_time_us_totalTempo total gasto na descriptografia de blocos de dados. Não relevante microssegundos Contador alloydb_omni_database_tde_data_encryption_time_us_totalTempo total gasto na criptografia de blocos de dados. Não relevante microssegundos Contador alloydb_omni_database_tde_enabledStatus da TDE ativada. Não relevante medidor alloydb_omni_database_tde_kek_infoInformações da KEK da TDE. kek_version: versão da KEK
em uso para encapsulamento de chaves.kek_url: caminho totalmente qualificado
para KEK no KMSkek_creation_timestamp:
horário de criação da versão da KEK em uso.
medidor alloydb_omni_database_tde_temp_blocks_decrypted_count_totalNúmero de blocos temporários descriptografados. Não relevante Contador alloydb_omni_database_tde_temp_blocks_encrypted_count_totalNúmero de blocos temporários criptografados. Não relevante Contador alloydb_omni_database_tde_temp_decryption_time_us_totalTempo total gasto na descriptografia de blocos temporários. Não relevante microssegundos Contador alloydb_omni_database_tde_temp_encryption_time_us_totalTempo total gasto na criptografia de blocos temporários. Não relevante microssegundos Contador alloydb_omni_database_tde_wal_blocks_decrypted_count_totalNúmero de blocos WAL descriptografados. Não relevante Contador alloydb_omni_database_tde_wal_blocks_encrypted_count_totalNúmero de blocos WAL criptografados. Não relevante Contador alloydb_omni_database_tde_wal_decryption_time_us_totalTempo total gasto na descriptografia de blocos WAL. Não relevante microssegundos Contador alloydb_omni_database_tde_wal_encryption_time_us_totalTempo total gasto na criptografia de blocos WAL. Não relevante microssegundos Contador