Membuat cluster yang mendukung TDE

Pilih versi dokumentasi:

Sebelum memulai

Membuat cluster

Untuk membuat cluster yang mendukung TDE, Anda harus meneruskan konfigurasi Key Management Service (KMS) dan kredensial autentikasi yang diperlukan selama inisialisasi database. Satu-satunya jenis autentikasi yang didukung adalah jwt.

  1. Instal AlloyDB Omni menggunakan RPM untuk menyiapkan lingkungan dan menginstal paket RPM AlloyDB Omni.

  2. Melakukan inisialisasi database.

    HashiCorp Vault KMS

    Gunakan pendekatan ini untuk beban kerja produksi.

    1. Jalankan perintah berikut untuk menginisialisasi database dengan TDE yang diaktifkan:

      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

      Ganti kode berikut:

      • POSTGRES_PASSWORD: sandi untuk pengguna database.
      • DATA_DIR: direktori lokal yang akan dipasang sebagai volume data untuk AlloyDB Omni—misalnya, /local/data.
      • VAULT_AUTH_TYPE: jenis autentikasi yang akan digunakan untuk koneksi vault. Hanya jwt yang didukung.
      • JWT_AUTH_ENGINE_MOUNT: jalur tempat mesin autentikasi HashiCorp Vault dipasang—misalnya, /auth/jwt.
      • JWT_FILE_PATH: jalur tempat JWT vault disimpan di node Anda—misalnya, tde-tls/jwt-token.
      • (Opsional) VAULT_ROLE: peran klien yang ditentukan dalam penyiapan vault Anda yang memungkinkan HashiCorp Vault memverifikasi keaslian token JWT.
      • VAULT_CERT_PATH: jalur tempat sertifikat untuk koneksi vault berada di container Anda—misalnya, /tde-tls. Jika tidak disetel, sertifikat di penyimpanan tepercaya default akan digunakan.
      • KEK_URL: URL yang sepenuhnya memenuhi syarat ke KEK di HashiCorp Vault. Gunakan vault sebagai protokol untuk menentukan HashiCorp Vault sebagai penyedia KMS—misalnya, vault://127.0.0.1:8200/v1/secrets/data/alloydb_kek.
    2. Untuk membuat file penggantian untuk alloydbomni.service in /etc/systemd/system/alloydbomni18.service.d/override.conf, tambahkan kode berikut ke file 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. Untuk menerapkan perubahan, muat ulang daemon systemd.

      sudo systemctl daemon-reload

    KMS Berbasis File

    Gunakan pendekatan ini hanya untuk tujuan pengujian.

    Untuk menguji TDE secara lokal menggunakan kunci berbasis file, Anda harus membuat KEK 32 byte terlebih dahulu di komputer Anda.

    1. Buat direktori, buat kunci, dan tetapkan izin yang sesuai.

      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. Lakukan inisialisasi database dengan meneruskan URI file lokal sebagai URL KEK Anda.

      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

      Ganti kode berikut:

      • POSTGRES_PASSWORD: sandi untuk pengguna database.
      • DATA_DIR: direktori lokal yang akan dipasang sebagai volume data untuk AlloyDB Omni—misalnya, /local/data.
      • KEK_DIR: direktori tempat KEK berbasis file lokal disimpan—misalnya, /tmp/alloydb/kms.
  3. Setelah database diinisialisasi, ikuti petunjuk di Menginstal AlloyDB Omni menggunakan RPM untuk menyiapkan database, menyiapkan host, dan memulai layanan systemd.

Melihat metrik TDE

Setelah cluster diinisialisasi, selesaikan langkah-langkah berikut untuk memverifikasi bahwa TDE diaktifkan dan melihat metrik TDE terkait.

  1. Hubungkan ke database Anda menggunakan psql atau klien pilihan Anda. Untuk mengetahui petunjuk mendetail tentang cara menghubungkan ke instance, lihat Menjalankan dan menghubungkan ke AlloyDB Omni.
  2. Jalankan perintah berikut:

    select * FROM pgsnap.g$tde_stats;
    

    Jika TDE berhasil diaktifkan, output akan menampilkan metrik TDE seperti apakah TDE diaktifkan, URL KEK, versi KEK, dan stempel waktu pembuatan KEK.

    Tabel berikut menjelaskan arti setiap metrik.

    Nama Deskripsi Label Unit Jenis
    alloydb_omni_database_tde_data_blocks_decrypted_count_total Jumlah blok data yang didekripsi. Tidak berlaku counter
    alloydb_omni_database_tde_data_blocks_encrypted_count_total Jumlah blok data yang dienkripsi. Tidak berlaku konter
    alloydb_omni_database_tde_data_decryption_time_us_total Total waktu yang dihabiskan dalam dekripsi blok data. Tidak berlaku mikrodetik counter
    alloydb_omni_database_tde_data_encryption_time_us_total Total waktu yang dihabiskan dalam enkripsi blok data. Tidak berlaku mikrodetik counter
    alloydb_omni_database_tde_enabled Status TDE diaktifkan. Tidak berlaku ukur
    alloydb_omni_database_tde_kek_info Informasi KEK TDE.
    • kek_version: Versi KEK
      yang digunakan untuk penggabungan kunci.
    • kek_url: Jalur yang sepenuhnya memenuhi syarat
      ke KEK di KMS
    • kek_creation_timestamp:
      Waktu pembuatan versi KEK yang digunakan.
    ukur
    alloydb_omni_database_tde_temp_blocks_decrypted_count_total Jumlah blok sementara yang didekripsi. Tidak berlaku konter
    alloydb_omni_database_tde_temp_blocks_encrypted_count_total Jumlah blok sementara yang dienkripsi. Tidak berlaku counter
    alloydb_omni_database_tde_temp_decryption_time_us_total Total waktu yang dihabiskan dalam dekripsi blok sementara. Tidak berlaku mikrodetik konter
    alloydb_omni_database_tde_temp_encryption_time_us_total Total waktu yang dihabiskan dalam enkripsi blok sementara. Tidak berlaku mikrodetik counter
    alloydb_omni_database_tde_wal_blocks_decrypted_count_total Jumlah blok WAL yang didekripsi. Tidak berlaku konter
    alloydb_omni_database_tde_wal_blocks_encrypted_count_total Jumlah blok WAL yang dienkripsi. Tidak berlaku counter
    alloydb_omni_database_tde_wal_decryption_time_us_total Total waktu yang dihabiskan dalam dekripsi blok WAL. Tidak berlaku mikrodetik konter
    alloydb_omni_database_tde_wal_encryption_time_us_total Total waktu yang dihabiskan dalam enkripsi blok WAL. Tidak berlaku mikrodetik konter