Looker menggunakan enkripsi Galois/Counter Mode (GCM) AES-256 untuk mengenkripsi data secara internal. Setiap item data dienkripsi menggunakan kunci data unik dan berisi amplop enkripsi yang ditandatangani dan diberi versi untuk menjamin verifikasi. Mode ini memerlukan penggunaan Kunci Master Pelanggan (CMK) eksternal. CMK digunakan untuk mendapatkan, mengenkripsi, dan mendekripsi Kunci Enkripsi Kunci (KEK), yang kemudian digunakan untuk mendapatkan, mengenkripsi, dan mendekripsi kunci data.
Penginstalan yang dihosting pelanggan yang menggunakan enkripsi lama harus memigrasikan database internalnya ke enkripsi AES-256 GCM. Penginstalan baru yang dihosting pelanggan harus mengonfigurasi penginstalan untuk enkripsi AES-256 GCM. Lihat halaman dokumentasi Menggunakan enkripsi AES-256 GCM untuk mengetahui petunjuk tentang cara memigrasikan atau mengonfigurasi penginstalan yang dihosting pelanggan untuk enkripsi AES-256 GCM.
Jika ingin mengubah CMK, atau jika ingin beralih dari konfigurasi berbasis kunci lokal ke konfigurasi AWS KMS (atau sebaliknya), Anda dapat melakukannya dengan membuat CMK baru dan mengubah kunci enkripsi AES-256 GCM.
Penggantian kunci dilakukan secara offline, yang berarti instance Looker harus dinonaktifkan. Untuk instance Looker yang dikelompokkan, semua node cluster harus dinonaktifkan.
Penggantian kunci akan membatalkan validasi seluruh cache Looker di disk, termasuk cache hasil kueri. Akibatnya, setelah Anda menyelesaikan penggantian kunci dan memulai instance, database klien mungkin mengalami beban yang lebih tinggi dari biasanya.
Untuk membuat kunci enkripsi AES-256 GCM baru, lakukan prosedur berikut:
- Menghentikan Looker dan membuat cadangan penuh
- Menetapkan variabel lingkungan
_SOURCE
dan_DESTINATION
- Jalankan perintah
rekey
- Menetapkan variabel lingkungan baru
- Membuka Looker
Menghentikan Looker dan membuat pencadangan penuh
Berikan perintah berikut:
cd looker
./looker stop
tar -zcvf /tmp/looker-pre-encrypt.tar.gz /home/lookerops/looker --exclude=.cache --exclude=log --exclude=.tmp --exclude=.snapshots --exclude=looker.jar --exclude=authorized_keys --exclude=dr-log --exclude=core
Jika Anda menjalankan database MySQL eksternal untuk menyimpan data aplikasi Looker, cadangkan database secara terpisah. Jika database adalah instance MySQL, ambil snapshot. Database ini relatif kecil, sehingga hanya memerlukan waktu beberapa menit.
Jika Looker dikelompokkan, pastikan untuk menghentikan setiap node sebelum melanjutkan:
cd looker
./looker stop
Jika ada node yang masih berjalan saat Anda nanti mengeluarkan perintah rekey
, perintah akan gagal dengan pesan, "Ada node aktif lainnya yang terhubung ke database Looker backend ini. Jika Looker dinonaktifkan dalam satu menit terakhir, coba lagi dalam waktu dekat. Jika tidak, pastikan semua node di cluster dinonaktifkan."
Menetapkan variabel lingkungan _SOURCE
dan _DESTINATION
Saat instance Looker awalnya dimigrasikan ke atau dikonfigurasi untuk enkripsi GCM AES-256, satu atau beberapa variabel lingkungan dibuat yang menunjukkan tempat Looker dapat menemukan CMK Anda. Variabel ini berbeda-beda, bergantung pada apakah Anda menggunakan AWS KMS atau tidak.
Operasi penggantian kunci menggunakan variabel lingkungan tambahan, berdasarkan apakah Anda saat ini menggunakan AWS KMS, dan apakah Anda akan menggunakan AWS KMS setelah operasi penggantian kunci. Variabel lingkungan dengan akhiran _SOURCE
menunjukkan tempat Looker saat ini dapat menemukan CMK Anda, dan variabel lingkungan dengan akhiran _DESTINATION
menunjukkan tempat Looker dapat menemukan CMK Anda setelah operasi penggantian kunci.
Menetapkan variabel _SOURCE
Lakukan salah satu prosedur berikut, bergantung pada apakah konfigurasi Anda saat ini menggunakan AWS KMS.
Jika saat ini Anda menggunakan AWS KMS
Jika awalnya mengonfigurasi enkripsi menggunakan AWS KMS, Anda telah membuat satu atau kedua variabel lingkungan berikut:
LKR_AWS_CMK
: MenyimpanCMK_alias
AWS.LKR_AWS_CMK_EC
: Variabel opsional yang menentukan konteks enkripsi yang digunakan dengan keystore AWS KMS.
Buat ulang variabel lingkungan:
export LKR_AWS_CMK=alias/<CMK_alias>
export LKR_AWS_CMK_EC=<encryption_context>
Kemudian, buat variabel _SOURCE
. Tetapkan variabel baru berikut dengan akhiran _SOURCE
:
export LKR_AWS_CMK_SOURCE=alias/<CMK_alias>
export LKR_AWS_CMK_EC_SOURCE=<encryption_context>
Jika saat ini Anda tidak menggunakan AWS KMS
Jika awalnya Anda mengonfigurasi enkripsi menggunakan KMS selain AWS, Anda telah membuat salah satu variabel lingkungan berikut, bergantung pada apakah Anda menyimpan CMK dalam variabel lingkungan atau dalam file di instance:
LKR_MASTER_KEY_ENV
: Jika Anda menyimpan CMK di variabel lingkungan, CMK akan disimpan di sana.LKR_MASTER_KEY_FILE
: Jika Anda menyimpan CMK dalam file, tindakan ini akan menyimpan jalur dan nama file yang berisi CMK Anda.
Buat ulang variabel lingkungan yang digunakan untuk konfigurasi Anda:
export LKR_MASTER_KEY_FILE=<path_to_key_file>
Atau:
export LKR_MASTER_KEY_ENV=<CMK_value>
Kemudian, buat variabel _SOURCE
.
Jika Anda menyimpan CMK dalam file, buat variabel berikut:
export LKR_MASTER_KEY_FILE_SOURCE=<path_to_key_file>
Jika Anda menyimpan CMK dalam variabel lingkungan, buat variabel berikut:
export LKR_MASTER_KEY_ENV_SOURCE=<CMK_value>
Menetapkan variabel _DESTINATION
Lakukan salah satu prosedur berikut, bergantung pada apakah Anda akan menggunakan AWS KMS setelah operasi pembuatan kunci baru.
Konfigurasi baru Anda akan menggunakan AWS KMS
Jika konfigurasi baru Anda akan menggunakan AWS KMS, buat variabel lingkungan berikut untuk menunjukkan lokasi CMK baru:
export LKR_AWS_CMK_DESTINATION=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC_DESTINATION=<new_encryption_context>
Konfigurasi baru Anda tidak akan menggunakan AWS KMS
Jika konfigurasi baru tidak akan menggunakan AWS KMS, Anda memiliki opsi untuk menggunakan variabel LKR_MASTER_KEY_FILE_DESTINATION
atau LKR_MASTER_KEY_ENV_DESTINATION
untuk menentukan tujuan CMK.
Jika Anda ingin menyimpan CMK dalam file, berikan perintah berikut:
export LKR_MASTER_KEY_FILE_DESTINATION=<path_to_new_key_file>
Atau, jika Anda ingin menyimpan CMK menggunakan variabel lingkungan, berikan perintah berikut:
export LKR_MASTER_KEY_ENV_DESTINATION=<CMK_value>
Jalankan perintah rekey
Keluarkan perintah berikut ini:
./looker rekey
Jika instance Looker Anda dimulai dengan opsi startup
-d <db.yaml>
atau--internal-db-creds=<db.yaml>
, yang memberikan jalur ke file YAML dengan kredensial database Anda, Anda harus menyertakan opsi yang sama dengan perintahrekey
.Misalnya,
java -jar looker.jar rekey -d /path/file/db.yaml
.
Menetapkan variabel lingkungan baru
Tetapkan satu atau beberapa variabel lingkungan berikut sesuai dengan konfigurasi baru Anda.
Jika konfigurasi baru Anda menggunakan AWS KMS:
export LKR_AWS_CMK=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC=<new_encryption_context>
Jika konfigurasi baru Anda tidak menggunakan AWS KMS dan Anda menyimpan CMK dalam variabel lingkungan:
export LKR_MASTER_KEY_ENV=<CMK_value>
Jika konfigurasi baru Anda tidak menggunakan AWS KMS dan Anda menyimpan CMK dalam file:
export LKR_MASTER_KEY_FILE=<path_to_CMK_file>
Jika Anda berpindah dari kunci yang disimpan secara lokal ke AWS KMS atau dari AWS KMS ke kunci yang disimpan secara lokal, Anda akan memiliki variabel lingkungan dari konfigurasi sebelumnya yang tidak diperlukan. Hapus variabel lingkungan lama.
Jika Anda beralih dari kunci yang disimpan secara lokal ke AWS KMS:
unset LKR_MASTER_KEY_FILE
Jika Anda beralih dari AWS KMS ke kunci yang disimpan secara lokal:
unset LKR_AWS_CMK
unset LKR_AWS_CMK_EC
Memulai Looker
Keluarkan perintah berikut ini:
./looker start