All Products
Search
Document Center

Hologres:Enkripsi data saat diam

Last Updated:Jun 17, 2026

Pelajari cara mengenkripsi data at rest untuk instans Hologres Anda.

Latar belakang

Key Management Service (KMS) milik Alibaba Cloud membuat, menyimpan, dan mengelola key enkripsi guna melindungi data sensitif, baik data at rest maupun data in transit.

Hologres mendukung enkripsi at rest melalui KMS. Ketika diaktifkan, KMS mengenkripsi data menjadi ciphertext sebelum disimpan, dan hanya key yang sesuai yang dapat mendekripsi data asli. Fitur ini melindungi data di lapisan penyimpanan, memperkuat keamanan terhadap serangan eksternal, sekaligus membantu memenuhi persyaratan compliance perusahaan. Karena enkripsi at rest membutuhkan komputasi intensif, performa query dan write dapat menurun antara 20% hingga 40% tergantung karakteristik query Anda.

Catatan penting

  • Hanya Hologres V1.1 ke atas yang mendukung enkripsi at rest. Jika instans Anda menjalankan versi lebih lama, upgrade instans Anda atau hubungi dukungan online.

  • Untuk instans di bawah V1.3.31, Anda harus menambahkan konfigurasi backend agar dapat menggunakan enkripsi at rest. Kami menyarankan Anda meng-upgrade instans tersebut.

  • Operasi pada Bring Your Own Key (BYOK) Anda di KMS, misalnya menonaktifkan atau menghapus key, akan memengaruhi enkripsi dan dekripsi di Hologres. Karena Hologres menerapkan caching, perubahan yang Anda lakukan di KMS baru berlaku dalam waktu 24 jam.

  • Enkripsi at rest hanya berlaku untuk table yang dibuat setelah fitur diaktifkan. Table yang sudah ada tidak otomatis dienkripsi.

  • Setelah Anda mengaktifkan enkripsi at rest, Anda tetap dapat memetakan table ke MaxCompute untuk membaca dan menulis data.

  • Menonaktifkan enkripsi at rest melalui SQL statement yang disediakan tidak mendekripsi data yang sudah ada. Hanya table baru yang dibuat setelah fitur dinonaktifkan yang tidak terenkripsi.

    ALTER DATABASE <database_name> set hg_experimental_encryption_options='';
  • Jika key KMS untuk table terenkripsi menjadi nonaktif atau tidak valid, Anda tidak akan dapat membaca dari atau menulis ke table tersebut.

  • Mulai Hologres V2.0, Anda dapat mengatur pengaturan enkripsi yang berbeda untuk tiap table.

  • Enkripsi at rest didukung untuk columnar table dan bagian columnar dari hybrid row-column store table. Setelah fitur diaktifkan, foreign table Hologres di MaxCompute tetap dapat dibuat untuk akses data, namun hanya data pada tipe table yang didukung yang akan terenkripsi.

Cara kerja

Mekanisme enkripsi bekerja sebagai berikut.

  • Hologres mengenkripsi dan mendekripsi data per database menggunakan key yang dikelola KMS. Fitur ini mensyaratkan KMS aktif di region Anda.

  • KMS menghasilkan dan mengelola key Anda serta menjamin keamanannya.

  • Hologres mendukung algoritma enkripsi AES256, AESCTR, RC4, dan SM4.

  • Hologres mengadopsi model BYOK, sehingga Anda dapat menggunakan material Customer Master Key (CMK) yang dihasilkan KMS atau material key milik Anda sendiri yang Anda impor.

    Buat BYOK key di KMS, lalu pilih key tersebut di Hologres untuk mengenkripsi sebuah database. Untuk informasi lebih lanjut, lihat Buat key.

  • Selama operasi data, Hologres memanggil API KMS untuk mengambil informasi key, yang di-cache selama 24 jam secara default. Penggunaan fitur enkripsi ini menimbulkan biaya KMS. Lihat Penagihan KMS 1.0.

Prosedur

  1. Buat kebijakan kustom.

    1. Masuk ke Konsol Resource Access Management (RAM). Di panel navigasi sisi kiri, pilih Permissions > Policies. Pada halaman Policies, klik Create Policy.

      Permission Policies

    2. Pada halaman Create Policy, klik JSON. Pada tab JSON, masukkan skrip berikut di editor kode dan atur Name menjadi AliyunHologresEncryptionDefaultRolePolicy.

      Create Permission Policy

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "kms:Encrypt",
                      "kms:Decrypt",
                      "kms:GenerateDataKey",
                      "kms:DescribeKey"
                  ],
                  "Resource": "acs:kms:*:*:*/*",
                  "Effect": "Allow"
              }
          ]
      }
    3. Klik OK untuk menyelesaikan pembuatan kebijakan kustom.

  2. Buat peran RAM dan berikan izin kepada peran RAM.

    1. Masuk ke Konsol RAM. Di panel navigasi sisi kiri, pilih Identities > Roles.

    2. Pada halaman Roles, klik Create Role. Pada halaman Create Role, atur Principal Type menjadi Cloud Service, dan Principal Name menjadi Hologres.

    3. Klik OK. Dalam dialog, masukkan AliyunHologresEncryptionDefaultRole di bidang Role Name, dan klik OK.创建角色

    4. Pada halaman detail peran, klik Grant Permission.

    5. Di panel Grant Permission, atur Resource Scope menjadi Account. Untuk Policy, pilih kebijakan kustom AliyunHologresEncryptionDefaultRolePolicy yang dibuat pada langkah 1.添加权限

    6. Klik Grant permissions.

      Pada halaman detail peran, klik tab Trust Policy untuk memeriksa pengaturan kebijakan kepercayaan.

  3. Buat key.

    Untuk detail, lihat Memulai manajemen kunci.

    Penting

    Hologres hanya mendukung symmetric key bertipe Aliyun_AES_256.

  4. Aktifkan enkripsi untuk database.

    1. Hubungkan ke database Hologres yang ingin Anda aktifkan enkripsi at rest-nya. Untuk informasi lebih lanjut, lihat Login ke database.

    2. Pilih SQL Editor pada menu navigasi atas. Di halaman Ad-hoc Query, atur Instance Name dan Database. Masukkan statement berikut di SQL editor, lalu klik Run.

      Mengatur aturan enkripsi data:

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

      Deskripsi parameter:

      Parameter

      Deskripsi

      db_name

      Nama database.

      encryption_type

      Algoritma enkripsi. Nilai yang valid mencakup AES256, AESCTR, dan RC4.

      cmk_id

      ID key, diperoleh dari halaman detail key di konsol KMS.

      ram_role

      Nama RAM role yang Anda buat.

      uid

      ID Akun Alibaba Cloud Anda. Untuk informasi lebih lanjut, lihat Lihat ID akun.

    Contoh:

    1. Aktifkan enkripsi at rest untuk database hoxxxx.

      ALTER DATABASE hoxxxx set hg_experimental_encryption_options=
      'AES256,623c26ee-xxxx-xxxx-xxxx-91d323cc4855,AliyunHologresEncryptionDefaultRole,187xxxxxxxxxxxxx';
    2. Buat table dan masukkan data.

      DROP TABLE IF EXISTS a;
      
      CREATE TABLE a(id int);
      
      INSERT INTO a values(1);
      
      SELECT hg_admin_command('flush'); -- Hanya untuk pengujian. Statement ini memungkinkan Anda melihat hasil query dengan segera.
    3. Query data tersebut.

      SELECT * FROM a;

      Hasil berikut dikembalikan.示例结果

    Jika Anda menonaktifkan key tersebut lalu me-restart instans, atau melakukan query terhadap table a setelah 24 jam, akan muncul error.

Pengaturan enkripsi tingkat table

Mulai Hologres V2.0, Anda dapat menerapkan kebijakan enkripsi yang berbeda untuk masing-masing table di dalam database yang terenkripsi. Pendekatan ini memberi fleksibilitas: Anda bebas memilih agar suatu table tetap tidak terenkripsi atau dienkripsi dengan KMS key tersendiri.

Atur enkripsi tingkat table

  • Catatan:

    • Secara default, pengaturan enkripsi sebuah table mengikuti pengaturan database, yaitu yang ditentukan melalui hg_experimental_encryption_options.

    • Untuk mengatur enkripsi yang independen pada sebuah table, tentukan saat membuat table. Pengaturan ini tidak dapat diubah setelah table dibuat.

  • Sintaks:

    CALL SET_TABLE_PROPERTY('<table_name>', 'encryption_options', '<encryption_type>,<cmk_id>,<ram_role>,<uid>');
  • Deskripsi parameter:

    Parameter

    Deskripsi

    table_name

    Nama table.

    encryption_type

    Algoritma enkripsi. Nilai yang valid mencakup AES256, AESCTR, dan RC4.

    cmk_id

    ID key. Dapatkan ID key dari halaman detail key di konsol Key Management Service.

    ram_role

    Nama RAM role.

    uid

    ID akun Alibaba Cloud Anda. Untuk informasi lebih lanjut, lihat Lihat ID akun.

  • Contoh:

    Buat table bernama lineitem dan enkripsi dengan algoritma AES256 serta CMK ber-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;

Lihat pengaturan enkripsi

Mulai Hologres V2.0, Anda dapat menggunakan SQL statement berikut untuk melihat aturan enkripsi tiap table.

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

Contoh hasil:Lihat pengaturan enkripsi