Criar um cluster com TDE ativada

Selecione uma versão da documentação:

É possível proteger os dados em repouso e as informações sensíveis ativando a criptografia de dados transparente (TDE) no AlloyDB Omni. Este documento descreve como criar um cluster ativado para TDE fornecendo as variáveis de ambiente necessárias do Vault e a flag --tde-kek-url na variável de ambiente POSTGRES_INITDB_ARGS durante a inicialização do banco de dados.

Antes de começar

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. Somente jwt é 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 armazenamento de confiança padrão serão usados.
  • KEK_URL: o URL totalmente qualificado para o KEK no HashiCorp Vault. Use vault como 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: use 18.3.0 para a imagem mais recente do Debian ou 18.3.0-ubi para a imagem UBI mais recente.

Para ativar a TDE para dados de cache do mecanismo colunar distribuídos para o armazenamento SSD, conecte-se à instância do banco de dados e execute a seguinte consulta:

ALTER SYSTEM SET google_columnar_engine.enable_tde_for_storage_cache = 'on';

Reinicie o servidor de banco de dados para que as alterações entrem em vigor.

Referências de métricas de TDE

É possível conferir todas as métricas de TDE no agente de monitoramento do AlloyDB Omni. A tabela a seguir descreve cada métrica.

Nome Descrição Rótulo Unidade Tipo
alloydb_omni_database_tde_data_blocks_decrypted_count_total Número de blocos de dados descriptografados. Não relevante Contador
alloydb_omni_database_tde_data_blocks_encrypted_count_total Número de blocos de dados criptografados. Não relevante Contador
alloydb_omni_database_tde_data_decryption_time_us_total Tempo total gasto na descriptografia de blocos de dados. Não relevante microssegundos Contador
alloydb_omni_database_tde_data_encryption_time_us_total Tempo total gasto na criptografia de blocos de dados. Não relevante microssegundos Contador
alloydb_omni_database_tde_enabled Status ativado da TDE. Não relevante medidor
alloydb_omni_database_tde_kek_info Informações de KEK da TDE.
  • kek_version: versão do KEK
    em uso para encapsulamento de chaves.
  • kek_url: caminho totalmente qualificado
    para KEK no KMS
  • kek_creation_timestamp:
    horário de criação da versão do KEK em uso.
medidor
alloydb_omni_database_tde_temp_blocks_decrypted_count_total Número de blocos temporários descriptografados. Não relevante Contador
alloydb_omni_database_tde_temp_blocks_encrypted_count_total Número de blocos temporários criptografados. Não relevante Contador
alloydb_omni_database_tde_temp_decryption_time_us_total Tempo total gasto na descriptografia de blocos temporários. Não relevante microssegundos Contador
alloydb_omni_database_tde_temp_encryption_time_us_total Tempo total gasto na criptografia de blocos temporários. Não relevante microssegundos Contador
alloydb_omni_database_tde_wal_blocks_decrypted_count_total Número de blocos WAL descriptografados. Não relevante Contador
alloydb_omni_database_tde_wal_blocks_encrypted_count_total Número de blocos WAL criptografados. Não relevante Contador
alloydb_omni_database_tde_wal_decryption_time_us_total Tempo total gasto na descriptografia de blocos WAL. Não relevante microssegundos Contador
alloydb_omni_database_tde_wal_encryption_time_us_total Tempo total gasto na criptografia de blocos WAL. Não relevante microssegundos Contador
tde_chill_cache_blocks_encrypted Número de blocos de cache inativos criptografados. Não relevante Contador
tde_chill_cache_blocks_decrypted Número de blocos de cache inativos descriptografados. Não relevante Contador
tde_chill_cache_blocks_total_encryption_time_us Tempo total gasto na criptografia de blocos de cache inativos. Não relevante microssegundos Contador
tde_chill_cache_blocks_total_decryption_time_us Tempo total gasto na descriptografia de blocos de cache inativos. Não relevante microssegundos Contador
tde_ce_cache_ssd_blocks_encrypted Número de blocos de cache colunares distribuídos para o armazenamento SSD que foram criptografados. Não relevante Contador
tde_ce_cache_ssd_blocks_decrypted Número de blocos de cache colunares distribuídos para o armazenamento SSD que foram descriptografados. Não relevante Contador
tde_ce_cache_ssd_blocks_total_encryption_time_us Tempo total gasto na criptografia de blocos de cache colunares distribuídos para o armazenamento SSD. Não relevante microssegundos Contador
tde_ce_cache_ssd_blocks_total_decryption_time_us Tempo total gasto na descriptografia de blocos de cache colunares distribuídos para o armazenamento SSD. Não relevante microssegundos Contador