Todos os produtos
Search
Central de documentação

Hologres:Criptografar dados em repouso

Última atualização: Jun 28, 2026

Criptografe dados em repouso no Hologres com chaves gerenciadas pelo KMS para proteger informações armazenadas e atender a requisitos de conformidade.

Visão geral

O Key Management Service (KMS) é um serviço da Alibaba Cloud que cria, armazena e gerencia chaves de criptografia para proteger dados confidenciais em repouso e em trânsito.

O Hologres usa o KMS para criptografar dados na camada de armazenamento. Somente a chave correspondente pode descriptografá-los. Isso fortalece a segurança contra ataques externos e ajuda a cumprir requisitos de conformidade corporativa. Ativar a criptografia em repouso pode reduzir o desempenho de consultas e gravações em 20% a 40%, dependendo das características da consulta.

Observações de uso

  • Somente o Hologres V1.1 e versões posteriores oferecem suporte à criptografia em repouso. Se sua instância executar uma versão anterior, atualize sua instância ou obtenha suporte online.

  • Instâncias anteriores à V1.3.31 exigem configurações de backend para criptografia em repouso. Recomendamos atualizar sua instância.

  • Operações em chaves do KMS, como desativar ou excluir uma chave BYOK (Bring Your Own Key), afetam a criptografia e a descriptografia no Hologres. Devido ao cache, as alterações entram em vigor em até 24 horas.

  • A criptografia em repouso aplica-se apenas a tabelas criadas após a ativação do recurso. Tabelas existentes não são criptografadas.

  • Mesmo após ativar a criptografia, você ainda pode mapear tabelas para o MaxCompute para leitura e gravação de dados.

  • Desativar a criptografia não descriptografa dados existentes. Apenas tabelas criadas após a desativação permanecem sem criptografia.

    ALTER DATABASE <database_name> set hg_experimental_encryption_options='';
  • Se a chave do KMS de uma tabela criptografada for desativada ou tornar-se inválida, a tabela ficará ilegível e não aceitará gravações.

  • O Hologres V2.0 e versões posteriores oferecem suporte a configurações de criptografia por tabela.

  • A criptografia em repouso aplica-se a tabelas colunares e às partes colunares de tabelas com armazenamento híbrido linha-coluna. Você ainda pode criar tabelas externas no MaxCompute, mas apenas os tipos de tabela compatíveis são criptografados.

Como funciona

O mecanismo de criptografia funciona da seguinte forma:

  • O Hologres criptografa e descriptografa dados por banco de dados usando chaves gerenciadas pelo KMS. O KMS deve estar ativado na sua região.

  • O KMS gera, gerencia e protege suas chaves de criptografia.

  • O Hologres oferece suporte aos algoritmos de criptografia AES256, AESCTR, RC4 e SM4.

  • O Hologres usa o modelo BYOK. Você pode usar material de Customer Master Key (CMK) gerado pelo KMS ou importar seu próprio material de chave.

    Crie uma chave BYOK no KMS e selecione-a no Hologres para criptografar um banco de dados. Criar uma chave.

  • O Hologres chama APIs do KMS durante operações de dados e armazena informações de chave em cache por 24 horas. Esse recurso gera taxas do KMS. Consulte Faturamento do KMS 1.0.

Procedimento

  1. Crie uma chave.

    Para mais detalhes, consulte Guia de início rápido de gerenciamento de chaves.

    Importante

    O Hologres oferece suporte apenas a chaves simétricas do tipo Aliyun_AES_256.

  2. Ative a criptografia para um banco de dados.

    1. Conecte-se ao banco de dados do Hologres no qual deseja ativar a criptografia em repouso. Para mais informações, consulte Fazer logon em um banco de dados.

    2. Escolha SQL Editor no menu superior. Na página Ad-hoc Query, defina Instance Name e Database, insira a instrução a seguir e clique em Run.

      ALTER DATABASE <db_name> SET hg_experimental_encryption_options='<encryption_type>,<cmk_id>,<ram_role>,<uid>';

      Parâmetros:

      Parâmetro

      Descrição

      db_name

      Nome do banco de dados.

      encryption_type

      Algoritmo de criptografia. Valores válidos: AES256, AESCTR e RC4.

      cmk_id

      ID da chave obtido no console do KMS.

      ram_role

      Nome da função RAM criada.

      uid

      ID da sua conta Alibaba Cloud. Visualizar o ID da conta.

    Exemplo:

    1. Ative a criptografia em repouso para o banco de dados hoxxxx.

      ALTER DATABASE hoxxxx set hg_experimental_encryption_options=
      'AES256,623c26ee-xxxx-xxxx-xxxx-91d323cc4855,AliyunHologresEncryptionDefaultRole,187xxxxxxxxxxxxx';
    2. Crie uma tabela e insira dados.

      DROP TABLE IF EXISTS a;
      
      CREATE TABLE a(id int);
      
      INSERT INTO a values(1);
      
      SELECT hg_admin_command('flush'); -- For testing only. This lets you see the query result immediately.
    3. Consulte os dados.

      SELECT * FROM a;

      O resultado a seguir é retornado.Sample result

    Se você desativar a chave e reiniciar a instância ou consultar a tabela a após 24 horas, ocorrerá um erro.

Configurações de criptografia no nível da tabela

A partir do Hologres V2.0, você pode definir políticas de criptografia distintas para tabelas individuais em um banco de dados criptografado. As tabelas podem permanecer sem criptografia ou usar uma chave do KMS diferente do padrão do banco de dados.

Definir criptografia no nível da tabela

  • Observações:

    • Por padrão, a configuração de criptografia de uma tabela herda a do banco de dados, especificada por hg_experimental_encryption_options.

    • Para configurar uma definição de criptografia independente para uma tabela, especifique-a durante a criação da tabela. Não é possível modificar essa configuração posteriormente.

  • Sintaxe:

    CALL SET_TABLE_PROPERTY('<table_name>', 'encryption_options', '<encryption_type>,<cmk_id>,<ram_role>,<uid>');
  • Parâmetros:

    Parâmetro

    Descrição

    table_name

    Nome da tabela.

    encryption_type

    Algoritmo de criptografia. Valores válidos: AES256, AESCTR e RC4.

    cmk_id

    ID da chave obtido no console do Key Management Service.

    ram_role

    Nome da função RAM.

    uid

    ID da sua conta Alibaba Cloud. Visualizar o ID da conta.

  • Exemplo:

    Crie uma tabela chamada lineitem e criptografe-a usando o algoritmo AES256 e a CMK com o ID 623c26ee-xxxx-xxxx-xxxx-91d323cc4855.

    BEGIN;
    CREATE TABLE LINEITEM
    (
        L_ORDERKEY      BIGINT      NOT NULL,
        L_PARTKEY       INT         NOT NULL,
        L_SUPPKEY       INT         NOT NULL,
        L_LINENUMBER    INT         NOT NULL,
        L_QUANTITY      DECIMAL(15,2) NOT NULL,
        L_EXTENDEDPRICE DECIMAL(15,2) NOT NULL,
        L_DISCOUNT      DECIMAL(15,2) NOT NULL,
        L_TAX           DECIMAL(15,2) NOT NULL,
        L_RETURNFLAG    TEXT        NOT NULL,
        L_LINESTATUS    TEXT        NOT NULL,
        L_SHIPDATE      TIMESTAMPTZ NOT NULL,
        L_COMMITDATE    TIMESTAMPTZ NOT NULL,
        L_RECEIPTDATE   TIMESTAMPTZ NOT NULL,
        L_SHIPINSTRUCT  TEXT        NOT NULL,
        L_SHIPMODE      TEXT        NOT NULL,
        L_COMMENT       TEXT        NOT NULL,
        PRIMARY KEY (L_ORDERKEY,L_LINENUMBER)
    );
    CALL SET_TABLE_PROPERTY('LINEITEM', 'encryption_options', 'AES256,623c26ee-xxxx-xxxx-xxxx-91d323cc4855,AliyunHologresEncryptionDefaultRole,153xxxxxxxxxxxxx');
    COMMIT;

Visualizar configurações de criptografia

No Hologres V2.0 e versões posteriores, execute a seguinte instrução SQL para visualizar as regras de criptografia no nível da tabela.

SELECT
    *
FROM
    hologres.hg_table_properties
WHERE
    property_key = 'encryption_options';

Resultado de exemplo:View encryption rules