Halaman ini menjelaskan cara kerja kunci enkripsi yang dikelola pelanggan (CMEK) dengan Datastream.
Apakah CMEK cocok untuk Anda?
CMEK ditujukan untuk organisasi yang memiliki data sensitif atau teregulasi yang mengharuskan mereka mengelola kunci enkripsinya sendiri.
Enkripsi yang dikelola Google versus enkripsi yang dikelola pelanggan
Dengan fitur CMEK, Anda dapat menggunakan kunci kriptografis sendiri untuk data dalam penyimpanan di Datastream. Setelah menambahkan CMEK, setiap kali panggilan API dilakukan, Datastream akan menggunakan kunci Anda untuk mengakses data.
Datastream menggunakan kunci enkripsi data (DEK) dan kunci enkripsi kunci (KEK) yang dikelola Google untuk mengenkripsi Datastream. Ada dua tingkat enkripsi:
- DEK mengenkripsi data.
- KEK mengenkripsi DEK.
Datastream menyimpan DEK terenkripsi bersama data terenkripsi, dan Google mengelola Google KEK. Dengan CMEK, Anda membuat kunci yang menggabungkan Google KEK. CMEK memungkinkan Anda membuat, mencabut, dan menghapus KEK.
CMEK, termasuk software, hardware, dan kunci eksternal, semuanya dikelola melalui Cloud Key Management Service (KMS) API.
Lokasi mana yang mendukung aliran Datastream yang mengaktifkan CMEK?
CMEK tersedia di semua lokasi Datastream.
Memahami akun layanan
Jika aliran Datastream telah mengaktifkan CMEK, Anda harus menggunakan akun layanan untuk meminta akses kunci dari Cloud Key Management Service.
Untuk menggunakan CMEK pada project, Anda harus memiliki akun layanan dan harus memberikan akses kunci ke akun layanan. Akun layanan harus ada di dalam project. Akun layanan dapat dilihat di semua region.
Jika Anda menggunakan Konsol untuk membuat aliran data, Datastream akan otomatis membuat akun layanan saat Anda pertama kali memilih opsi Kunci yang dikelola pelanggan (jika akun layanan belum ada). Anda tidak perlu memiliki izin khusus pada akun pengguna Anda saat Datastream membuat akun layanan secara otomatis.
Memahami kunci
Di Cloud Key Management Service, Anda perlu membuat keyring dengan kunci kriptografis, yang dilengkapi dengan lokasi. Saat membuat aliran data baru di Datastream, Anda memilih kunci ini untuk mengenkripsi aliran data.
Anda perlu mengetahui ID kunci dan region kunci saat membuat aliran baru yang menggunakan CMEK. Anda harus menempatkan streaming baru di region yang sama dengan CMEK yang terkait dengan streaming tersebut. Anda dapat membuat satu project untuk kunci dan streaming, atau project yang berbeda untuk masing-masing kunci.
CMEK menggunakan format berikut:
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]
Jika Datastream tidak dapat mengakses kunci (misalnya, Anda menonaktifkan versi kunci), Datastream akan mengubah status aliran data menjadi FAILED
dan pesan error terkait akan muncul. Setelah memecahkan masalah yang terkait dengan pesan error sehingga kunci dapat diakses kembali, Datastream akan melanjutkan streaming secara otomatis.
Pengelola kunci eksternal
Anda dapat menggunakan kunci yang disimpan di pengelola kunci eksternal, seperti Fortanix, Ionic, atau Thales, sebagai CMEK Anda. Untuk mempelajari cara menggunakan kunci eksternal dengan Cloud Key Management Service, lihat Cloud External Key Manager.
Bagaimana cara membuat data terenkripsi CMEK agar tidak dapat diakses secara permanen?
Anda mungkin ingin menghancurkan data yang dienkripsi dengan CMEK secara permanen. Untuk melakukannya, Anda menghancurkan versi CMEK. Anda tidak dapat menghancurkan keyring atau kunci, tetapi Anda dapat menghancurkan versi kunci dari kunci tersebut.
Pembatasan
Pembatasan berikut berlaku saat menggunakan CMEK:
Anda tidak dapat memperbarui CMEK di streaming yang sedang berjalan.
Meskipun Anda dapat menggunakan CMEK untuk mengenkripsi baris dari database sumber, Anda tidak dapat menggunakan kunci ini untuk mengenkripsi metadata aliran data, seperti ID aliran data, alamat IP database sumber, nama tabel database sumber, dan sebagainya.
Menggunakan CMEK
Setelah memahami CMEK, Anda siap menyiapkan akun layanan dan kunci untuk CMEK. Selain itu, Anda akan mempelajari cara menyiapkan Datastream untuk menggunakan CMEK.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Instal dan lakukan inisialisasi Cloud SDK.
- Pastikan Anda memiliki peran Datastream Admin yang ditetapkan ke akun pengguna Anda.
-
Enable the Cloud Key Management Service API.
- Aktifkan Datastream API.
Alur kerja untuk membuat aliran data di Datastream dengan CMEK
- Khusus pengguna gcloud dan API: Pastikan Anda memiliki akun layanan untuk setiap project yang memerlukan CMEK. Jika belum, berikut cara membuat akun layanan.
- Buat keyring dan kunci, lalu tetapkan lokasi untuk setiap kunci. Lokasinya adalah region Google Cloud .
- Khusus pengguna gcloud dan API: Berikan akses kunci ke akun layanan.
- Salin atau tulis ID kunci (
KMS_KEY_ID
) dan lokasi untuk kunci tersebut, serta ID (KMS_KEYRING_ID
) untuk KeyRing. Anda memerlukan informasi ini saat memberikan akses kunci ke akun layanan. - Buka project dan buat aliran data di Datastream dengan opsi berikut:
- Lokasi yang sama dengan CMEK
- Konfigurasi CMEK
- ID CMEK
Streaming Anda di Datastream kini diaktifkan dengan CMEK.
Membuat akun layanan
Anda perlu membuat akun layanan untuk setiap project yang memerlukan CMEK.
Untuk mengizinkan pengguna mengelola akun layanan, berikan salah satu peran berikut:
- Pengguna Akun Layanan (
roles/iam.serviceAccountUser
): Mencakup izin untuk mencantumkan akun layanan, mendapatkan detail tentang akun layanan, dan meniru identitas akun layanan. - Admin Akun Layanan (
roles/iam.serviceAccountAdmin
): Mencakup izin untuk mencantumkan akun layanan dan mendapatkan detail tentang akun layanan. Juga mencakup izin untuk membuat, memperbarui, dan menghapus akun layanan, serta melihat atau mengubah kebijakan Datastream di akun layanan.
Saat ini, Anda hanya dapat menggunakan perintah gcloud
untuk membuat jenis
akun layanan yang diperlukan untuk CMEK. Jika Anda menggunakan
Konsol, Datastream akan otomatis membuat akun layanan ini untuk Anda.
Untuk membuat akun layanan dengan gcloud
, jalankan perintah berikut:
gcloud beta services identity create \ --service=datastream.googleapis.com \ --project=PROJECT_ID
Perintah sebelumnya menampilkan nama akun layanan. Anda dapat menggunakan nama akun layanan ini selama prosedur di bagian Memberi akses kunci ke akun layanan.
Buat kunci
Anda dapat membuat kunci di project Google Cloud yang sama dengan aliran data di Datastream, atau di project pengguna yang terpisah. Lokasi key ring Cloud KMS harus cocok dengan region tempat Anda ingin membuat streaming. Kunci multi-region atau region global tidak akan berfungsi. Jika region tidak cocok, Anda tidak dapat membuat streaming.
Untuk membuat kunci Cloud KMS:
Konsol
- Di konsol Google Cloud, buka halaman Kunci kriptografis.
- Klik Create key ring.
- Tambahkan Nama key ring. Catat nama ini karena Anda akan memerlukannya saat memberikan akses kunci ke akun layanan.
- Tambahkan Lokasi key ring.
- Klik Buat. Halaman Buat kunci akan terbuka.
- Tambahkan Nama kunci.
- Pilih Tujuan (simetris atau asimetris).
- Pilih Periode rotasi dan Mulai pada tanggal.
- Klik Buat.
- Pada tabel Kunci , klik tiga titik di kolom terakhir, lalu
pilih Salin ID resource atau tuliskan. Ini adalah
KMS_KEY_ID
. Anda memerlukanKMS_KEY_ID
saat memberikan akses kunci ke akun layanan.
gcloud
- Buat key ring baru.
Tuliskan nama ini karena Anda akan memerlukannya saat memberikan akses kunci ke akun layanan.gcloud kms keyrings create KMS_KEYRING_ID \ --location=GCP_REGION
- Buat kunci pada key ring.
Tuliskan nama ini karena Anda akan memerlukannya saat memberikan akses kunci ke akun layanan.gcloud kms keys create KMS_KEY_ID \ --location=GCP_REGION \ --keyring=KMS_KEYRING_ID \ --purpose=encryption
Memberikan akses kunci ke akun layanan
Anda hanya perlu melakukan prosedur ini jika menggunakan gcloud
atau API.
Untuk memberikan akses ke akun layanan, gunakan kode berikut:
gcloud kms keys add-iam-policy-binding KMS_KEY_ID \ --location=GCP_REGION \ --keyring=KMS_KEYRING_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-datastream.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Membuat aliran data di Datastream dengan CMEK
Sebagai bagian dari membuat aliran data di Datastream, Anda dapat menggunakan CMEK untuk mengelola enkripsi data.
Langkah selanjutnya
- Untuk mempelajari cara menonaktifkan versi kunci, lihat Menonaktifkan versi kunci yang diaktifkan.
- Untuk mempelajari cara mengaktifkan kembali versi kunci, lihat Mengaktifkan versi kunci yang dinonaktifkan.