Criar um cluster com TDE ativada

Selecione uma versão da documentação:

Antes de começar

Crie o cluster

Para criar um cluster ativado para TDE, é necessário transmitir a configuração e as credenciais de autenticação do Key Management Service (KMS) necessárias durante a inicialização do banco de dados. O único tipo de autenticação compatível é jwt.

  1. Instale o AlloyDB Omni usando o RPM para preparar seu ambiente e instalar o pacote RPM do AlloyDB Omni.

  2. Inicialize o banco de dados.

    KMS do HashiCorp Vault

    Use essa abordagem para cargas de trabalho de produção.

    1. Execute o comando a seguir para inicializar o banco de dados com o TDE ativado:

      sudo PGPASSWORD=POSTGRES_PASSWORD \
      PGDATA=DATA_DIR \
      VAULT_AUTH_TYPE=jwt \
      VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \
      VAULT_JWT_PATH=JWT_FILE_PATH \
      VAULT_ROLE=VAULT_ROLE \
      VAULT_CERT_PATH=VAULT_CERT_PATH \
      POSTGRES_INITDB_ARGS="--tde-kek-url=KEK_URL" \
      /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb

      Substitua:

      • POSTGRES_PASSWORD: a senha do usuário do banco de dados.
      • 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: o caminho em que o mecanismo de autenticação do HashiCorp Vault está montado. Por exemplo, /auth/jwt.
      • JWT_FILE_PATH: o caminho em que o JWT do vault é 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: o 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. 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.
    2. Para criar um arquivo de substituição para alloydbomni.service in /etc/systemd/system/alloydbomni18.service.d/override.conf, adicione o seguinte ao arquivo override.conf:

      [Service]
      Environment="VAULT_AUTH_TYPE"
      Environment="VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT"
      Environment="VAULT_JWT_PATH=JWT_FILE_PATH"
      Environment="VAULT_ROLE=VAULT_ROLE"
      Environment="VAULT_CERT_PATH=VAULT_CERT_PATH"
    3. Para aplicar as mudanças, recarregue o daemon do systemd.

      sudo systemctl daemon-reload

    KMS baseado em arquivo

    Use essa abordagem apenas para fins de teste.

    Para testar o TDE localmente usando uma chave baseada em arquivo, primeiro gere um KEK de 32 bytes na sua máquina.

    1. Crie o diretório, gere a chave e defina as permissões apropriadas.

      KEK_DIR=KEK_DIR
      mkdir -p $KEK_DIR
      sudo chown 999:999 $KEK_DIR
      openssl rand -base64 32 | sudo tee $KEK_DIR/key
      sudo chmod 0755 $KEK_DIR/key
    2. Inicialize o banco de dados transmitindo o URI do arquivo local como o URL do KEK.

      sudo PGPASSWORD=POSTGRES_PASSWORD \
      PGDATA=DATA_DIR \
      POSTGRES_INITDB_ARGS="--tde-kek-url=file:///$KEK_DIR/key" \
      /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb

      Substitua:

      • POSTGRES_PASSWORD: a senha do usuário do banco de dados.
      • DATA_DIR: o diretório local a ser montado como o volume de dados do AlloyDB Omni. Por exemplo, /local/data.
      • KEK_DIR: o diretório em que o KEK local baseado em arquivo é armazenado. Por exemplo, /tmp/alloydb/kms.
  3. Depois que o banco de dados for inicializado, siga as instruções em Instalar o AlloyDB Omni usando o RPM para preparar o banco de dados, configurar o host e iniciar o serviço systemd.

Ver métricas de TDE

Depois que o cluster for inicializado, conclua as etapas a seguir para verificar se o TDE está ativado e ver as métricas relacionadas.

  1. Conecte-se ao banco de dados usando psql ou 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.
  2. Execute este comando:

    select * FROM pgsnap.g$tde_stats;
    

    A saída mostra métricas de TDE, como se o TDE está ativado, o URL do KEK, a versão do KEK e o carimbo de data/hora de criação do 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_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 do bloco de dados. Não relevante microssegundos Contador
    alloydb_omni_database_tde_data_encryption_time_us_total Tempo total gasto na criptografia do bloco de dados. Não relevante microssegundos Contador
    alloydb_omni_database_tde_enabled Status ativado do TDE. Não relevante medidor
    alloydb_omni_database_tde_kek_info Informações do KEK do TDE.
    • kek_version: versão do KEK
      em uso para encapsulamento de chaves.
    • kek_url: caminho totalmente qualificado
      para o KEK no KMS
    • kek_creation_timestamp:
      hora 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 do bloco temporário. Não relevante microssegundos Contador
    alloydb_omni_database_tde_temp_encryption_time_us_total Tempo total gasto na criptografia do bloco temporário. 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 do bloco WAL. Não relevante microssegundos Contador
    alloydb_omni_database_tde_wal_encryption_time_us_total Tempo total gasto na criptografia do bloco WAL. Não relevante microssegundos Contador