Anda dapat mengamankan data yang tersimpan dan melindungi informasi sensitif dengan mengaktifkan enkripsi data transparan (TDE) di AlloyDB Omni. Dokumen ini menjelaskan cara membuat cluster yang mendukung TDE dengan menyediakan variabel lingkungan vault yang diperlukan dan flag --tde-kek-url dalam variabel lingkungan POSTGRES_INITDB_ARGS selama inisialisasi database.
Sebelum memulai
- Baca Rencanakan penginstalan AlloyDB Omni.
- Saat Anda merencanakan deployment AlloyDB Omni dengan TDE diaktifkan, pastikan untuk memperhitungkan penggunaan CPU tambahan berdasarkan perkiraan workload dan volume data Anda. Enkripsi dan dekripsi adalah operasi yang memerlukan banyak komputasi.
- Konfigurasi mesin secret KV-V2 HashiCorp Vault untuk memastikan jalur Kunci Enkripsi Kunci (KEK) dan Token Web JSON (JWT) tersedia.
- Pastikan AlloyDB Omni memiliki izin untuk membaca file Token Web JSON (JWT), yang merupakan token autentikasi.
Membuat cluster
Untuk membuat cluster yang mendukung TDE, Anda harus meneruskan konfigurasi Layanan Pengelolaan Kunci (KMS) dan kredensial autentikasi yang diperlukan selama inisialisasi database. Satu-satunya jenis autentikasi yang didukung adalah jwt.
Instal AlloyDB Omni menggunakan RPM untuk menyiapkan lingkungan Anda dan menginstal paket RPM AlloyDB Omni.
Inisialisasi database.
KMS HashiCorp Vault
Gunakan pendekatan ini untuk workload produksi.
Jalankan perintah berikut untuk menginisialisasi database dengan TDE 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/alloydbomniproduct_major_version_numeric-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.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 node Anda—misalnya,/tde-tls. Jika tidak ditetapkan, sertifikat di trust store default akan digunakan.KEK_URL: URL yang sepenuhnya memenuhi syarat untuk KEK di HashiCorp Vault. Gunakanvaultsebagai protokol untuk menentukan HashiCorp Vault sebagai penyedia KMS—misalnya,vault://127.0.0.1:8200/v1/secrets/data/alloydb_kek.
Untuk membuat file penggantian untuk
alloydbomni18.servicedi/etc/systemd/system/alloydbomni18.service.d/override.conf, tambahkan kode berikut ke fileoverride.conf:[Service] Environment="VAULT_AUTH_TYPE=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"
Ganti kode berikut:
VAULT_AUTH_TYPE: jenis autentikasi yang akan digunakan untuk koneksi vault. Hanyajwtyang 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 node Anda—misalnya,/tde-tls. Jika tidak ditetapkan, sertifikat di trust store default akan digunakan.
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 terlebih dahulu membuat KEK 32 byte di mesin Anda.
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
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/alloydbomniproduct_major_version_numeric-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.
Setelah database diinisialisasi, ikuti petunjuk di Menginstal AlloyDB Omni menggunakan RPM untuk menyiapkan database, menyiapkan host, dan memulai layanan
systemd.Untuk mengaktifkan TDE untuk data cache columnar engine yang tumpah ke penyimpanan SSD, hubungkan ke instance database Anda dan jalankan kueri berikut:
ALTER SYSTEM SET google_columnar_engine.enable_tde_for_storage_cache = 'on';Mulai ulang server database Anda agar perubahan diterapkan.
Referensi metrik TDE
Anda dapat melihat semua metrik TDE di agen pemantauan AlloyDB Omni. Tabel berikut menjelaskan setiap metrik.
| Nama | Deskripsi | Label | Unit | Jenis |
|---|---|---|---|---|
alloydb_omni_database_tde_data_blocks_decrypted_count_total |
Jumlah blok data yang didekripsi. | Tidak berlaku | penghitung | |
alloydb_omni_database_tde_data_blocks_encrypted_count_total |
Jumlah blok data yang dienkripsi. | Tidak berlaku | penghitung | |
alloydb_omni_database_tde_data_decryption_time_us_total |
Total waktu yang dihabiskan dalam dekripsi blok data. | Tidak berlaku | mikrodetik | penghitung |
alloydb_omni_database_tde_data_encryption_time_us_total |
Total waktu yang dihabiskan dalam enkripsi blok data. | Tidak berlaku | mikrodetik | penghitung |
alloydb_omni_database_tde_enabled |
Status TDE diaktifkan. | Tidak berlaku | pengukur | |
alloydb_omni_database_tde_kek_info |
Informasi KEK TDE. |
|
pengukur | |
alloydb_omni_database_tde_temp_blocks_decrypted_count_total |
Jumlah blok sementara yang didekripsi. | Tidak berlaku | penghitung | |
alloydb_omni_database_tde_temp_blocks_encrypted_count_total |
Jumlah blok sementara yang dienkripsi. | Tidak berlaku | penghitung | |
alloydb_omni_database_tde_temp_decryption_time_us_total |
Total waktu yang dihabiskan dalam dekripsi blok sementara. | Tidak berlaku | mikrodetik | penghitung |
alloydb_omni_database_tde_temp_encryption_time_us_total |
Total waktu yang dihabiskan dalam enkripsi blok sementara. | Tidak berlaku | mikrodetik | penghitung |
alloydb_omni_database_tde_wal_blocks_decrypted_count_total |
Jumlah blok WAL yang didekripsi. | Tidak berlaku | penghitung | |
alloydb_omni_database_tde_wal_blocks_encrypted_count_total |
Jumlah blok WAL yang dienkripsi. | Tidak berlaku | penghitung | |
alloydb_omni_database_tde_wal_decryption_time_us_total |
Total waktu yang dihabiskan dalam dekripsi blok WAL. | Tidak berlaku | mikrodetik | penghitung |
alloydb_omni_database_tde_wal_encryption_time_us_total |
Total waktu yang dihabiskan dalam enkripsi blok WAL. | Tidak berlaku | mikrodetik | penghitung |
tde_chill_cache_blocks_encrypted |
Jumlah blok cache dingin yang dienkripsi. | Tidak berlaku | penghitung | |
tde_chill_cache_blocks_decrypted |
Jumlah blok cache dingin yang didekripsi. | Tidak berlaku | penghitung | |
tde_chill_cache_blocks_total_encryption_time_us |
Total waktu yang dihabiskan dalam enkripsi blok cache dingin. | Tidak berlaku | mikrodetik | penghitung |
tde_chill_cache_blocks_total_decryption_time_us |
Total waktu yang dihabiskan dalam dekripsi blok cache dingin. | Tidak berlaku | mikrodetik | penghitung |
tde_ce_cache_ssd_blocks_encrypted |
Jumlah blok cache kolom yang tumpah ke penyimpanan SSD yang dienkripsi. | Tidak berlaku | penghitung | |
tde_ce_cache_ssd_blocks_decrypted |
Jumlah blok cache kolom yang tumpah ke penyimpanan SSD yang didekripsi. | Tidak berlaku | penghitung | |
tde_ce_cache_ssd_blocks_total_encryption_time_us |
Total waktu yang dihabiskan untuk mengenkripsi blok cache kolom yang tumpah ke penyimpanan SSD. | Tidak berlaku | mikrodetik | penghitung |
tde_ce_cache_ssd_blocks_total_decryption_time_us |
Total waktu yang dihabiskan untuk mendekripsi blok cache kolom yang tumpah ke penyimpanan SSD. | Tidak berlaku | mikrodetik | penghitung |