Halaman ini menjelaskan cara mengonfigurasi kunci enkripsi yang dikelola pelanggan (CMEK) untuk cluster Google Cloud Managed Service for Apache Kafka.
Ringkasan enkripsi pesan
Secara default, Managed Service for Apache Kafka mengenkripsi pesan saat tidak digunakan dengan Google-owned and Google-managed encryption keys. Tidak diperlukan penyiapan tambahan.
Jika memerlukan kontrol lebih besar atas kunci enkripsi yang digunakan untuk melindungi data Managed Service for Apache Kafka dalam penyimpanan, Anda dapat menetapkan CMEK saat membuat cluster. CMEK adalah kunci enkripsi yang Anda miliki. Kunci ini dikelola dan disimpan di Cloud Key Management Service (Cloud KMS). Saat Anda mengonfigurasi cluster dengan CMEK, layanan akan otomatis menggunakan kunci tersebut untuk mengenkripsi semua data cluster dalam penyimpanan. Penggunaan CMEK dapat menimbulkan biaya tambahan, bergantung pada pola penggunaan Anda.
CMEK yang terkait dengan cluster Managed Service for Apache Kafka adalah kunci enkripsi kunci (KEK). KEK digunakan untuk mengenkripsi kunci enkripsi data (DEK). DEK kemudian digunakan untuk membaca dan menulis data dalam penyimpanan tidak aktif di persistent disk yang terpasang ke broker dan data dalam penyimpanan bertingkat di Cloud Storage.
Karena resource Managed Service untuk Apache Kafka bersifat regional, sebaiknya Anda membuat CMEK di region yang sama dengan cluster Kafka.
Peran dan izin yang diperlukan
Akun layanan Managed Kafka harus memiliki izin untuk mengenkripsi dan mendekripsi data menggunakan CMEK.
Beri akun layanan peran Pengenkripsi/Pendekripsi Kunci Kriptografis Cloud KMS
(roles/cloudkms.cryptoKeyEncrypterDecrypter) pada kunci Cloud KMS:
gcloud kms keys add-iam-policy-binding KEY \
--keyring=KEY_RING \
--location=LOCATION \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-managedkafka.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Ganti kode berikut:
KEY: Nama kunci.
KEY_RING: Nama key ring tempat kunci berada.
LOCATION: lokasi Cloud KMS untuk key ring.
PROJECT_NUMBER: Nomor project Google Cloud project yang berisi cluster Managed Service for Apache Kafka.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran pada kunci Cloud KMS, lihat Memberikan peran pada resource.
Merotasi kunci
Anda tidak dapat mengubah kunci yang terkait dengan cluster. Sebagai gantinya, Anda dapat merotasi kunci dengan membuat versi kunci baru dan menjadikannya sebagai versi utama untuk kunci tersebut.
Untuk disk yang terpasang ke broker, KEK baru hanya akan berlaku setelah broker dimulai ulang. Anda dapat memaksa memulai ulang broker secara bertahap dengan memperbarui konfigurasi kapasitas cluster. Misalnya, Anda dapat mengubah jumlah RAM cluster.
Semua file segmen partisi baru ditulis ke penyimpanan bertingkat menggunakan versi kunci utama baru. Penundaan selama beberapa menit dapat terjadi setelah versi kunci utama baru dipilih.
Log audit
Cloud KMS membuat log audit saat kunci diaktifkan, dinonaktifkan, atau digunakan oleh Managed Service for Apache Kafka untuk mengenkripsi dan mendekripsi pesan. Hal ini berguna dalam men-debug masalah terkait ketersediaan publikasi atau penayangan.
ID kunci Cloud KMS dilampirkan ke log audit untuk resource cluster Managed Service for Apache Kafka. Managed Service for Apache Kafka tidak menyertakan informasi terkait Cloud KMS lainnya dalam log audit.
Menonaktifkan dan mengaktifkan kembali CMEK
Ada dua cara untuk menonaktifkan CMEK. Pilih salah satu metode berikut:
Nonaktifkan kunci Cloud KMS yang telah Anda kaitkan dengan cluster. Pendekatan ini memengaruhi semua resource Cloud yang terkait dengan kunci tersebut.
Mencabut peran CryptoKey Encrypter/Decrypter dari agen layanan Managed Service for Apache Kafka (
service-${PROJECT_NUMBER}@gcp-sa-managedkafka.iam.gserviceaccount.com) dengan menggunakan Identity and Access Management (IAM). Pendekatan ini memengaruhi semua cluster Managed Service for Apache Kafka dalam project dan pesan yang dienkripsi menggunakan CMEK.
Meskipun kedua operasi tersebut tidak menyebabkan pencabutan akses secara instan, perubahan IAM umumnya diterapkan lebih cepat.
Untuk mengetahui informasi selengkapnya, lihat Konsistensi resource Cloud KMS dan Penerapan perubahan akses.
Jika Managed Service for Apache Kafka tidak dapat mengakses kunci Cloud KMS, penerbitan dan pengiriman pesan akan gagal dengan error. Untuk melanjutkan penayangan dan publikasi, pulihkan akses ke kunci Cloud KMS.
Setelah kunci Cloud KMS dapat diakses oleh Managed Service for Apache Kafka, publikasi akan tersedia dalam waktu 12 jam dan pengiriman pesan akan dilanjutkan dalam waktu 2 jam.
Meskipun gangguan Cloud KMS sesekali yang berlangsung kurang dari satu menit tidak mungkin mengganggu publikasi dan penayangan secara signifikan, ketidaktersediaan Cloud KMS yang berkepanjangan memiliki efek yang sama dengan pencabutan kunci.
Batasan
Anda tidak dapat mengubah kunci yang terkait dengan cluster. Sebagai gantinya, Anda dapat merotasi kunci dengan membuat versi baru.
Jika Anda menonaktifkan versi kunci non-primer, disk lokal akan terus berfungsi tanpa perubahan. Setiap broker mendownload KEK baru saat dimulai ulang. Namun, Cloud Storage tidak dapat mengakses file segmen topik yang dienkripsi menggunakan versi asli, yang dapat membuat pesan dari file segmen ini tidak dapat digunakan. Anda mungkin tidak dapat menggunakan data lama.
Jika Anda menonaktifkan versi utama kunci, broker tidak dapat menulis file segmen baru ke penyimpanan bertingkat, yang meningkatkan penggunaan disk lokal. Selain itu, broker akan gagal dimulai ulang. Mulai ulang dapat dipicu baik oleh Anda secara proaktif atau update yang dimulai layanan ke cluster kapan saja.
Jika Anda menghapus akses ke kunci dari agen layanan Managed Service for Apache Kafka, perilakunya mirip dengan yang terjadi jika Anda menonaktifkan versi kunci utama dan kunci non-utama.
Jika Anda menghapus kunci, cluster akan dijadwalkan untuk dimatikan dan tidak dapat dipulihkan.
Anda tidak dapat meminta enkripsi ulang data yang disimpan saat tidak digunakan. CMEK digunakan sebagai KEK, tetapi mengenkripsi ulang memerlukan perubahan pada kunci enkripsi data.
Langkah berikutnya
Untuk mengetahui informasi selengkapnya tentang enkripsi disk, lihat Tentang enkripsi disk.
Untuk mengetahui informasi selengkapnya tentang enkripsi di Cloud Storage, lihat Kunci enkripsi yang dikelola pelanggan.