Kunci enkripsi yang dikelola pelanggan (CMEK) memungkinkan enkripsi data dalam penyimpanan dengan kunci yang dapat Anda kontrol melalui Cloud KMS. CMEK memberikan kontrol pengguna atas data yang ditulis ke resource internal Google di project tenant dan data yang ditulis oleh pipeline Cloud Data Fusion, termasuk:
- Log dan metadata pipeline
- Metadata cluster Dataproc
- Berbagai sink, tindakan, dan sumber data Cloud Storage, BigQuery, Pub/Sub, dan Spanner
Resource Cloud Data Fusion
Untuk mengetahui daftar plugin Cloud Data Fusion yang mendukung CMEK, lihat plugin yang didukung.
Cloud Data Fusion mendukung CMEK untuk cluster Dataproc. Cloud Data Fusion membuat cluster Dataproc sementara untuk digunakan dalam pipeline, lalu menghapus cluster tersebut saat pipeline selesai. CMEK melindungi metadata cluster yang ditulis ke:
- Persistent disk (PD) yang terpasang ke VM cluster
- Output driver tugas dan metadata lainnya yang ditulis ke bucket staging Dataproc yang dibuat secara otomatis atau dibuat pengguna
Menyiapkan CMEK
Membuat kunci Cloud KMS
Buat kunci Cloud KMS di project Google Cloud yang berisi instance Cloud Data Fusion atau di project pengguna yang terpisah. Lokasi key ring Cloud KMS harus cocok dengan region tempat Anda membuat instance. Kunci multi-region atau region global tidak diizinkan di tingkat instance karena Cloud Data Fusion selalu dikaitkan dengan region tertentu.
Mendapatkan nama resource untuk kunci
REST API
Dapatkan nama resource kunci yang Anda buat dengan perintah berikut:
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Ganti kode berikut:
- PROJECT_ID: project pelanggan yang menghosting instance Cloud Data Fusion
- REGION: Region Google Cloud
yang dekat dengan lokasi Anda—misalnya,
us-east1
- KEY_RING_NAME: nama key ring yang mengelompokkan kunci kriptografi bersama-sama
- KEY_NAME: Nama kunci Cloud KMS
Konsol
Buka halaman Key management.
Di samping kunci Anda, klik Lainnya
.Pilih Salin Nama Resource untuk menyalin nama resource ke papan klip.
Memperbarui akun layanan project untuk menggunakan kunci
Untuk menyiapkan akun layanan project agar dapat menggunakan kunci Anda:
Wajib: Berikan peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) kepada agen layanan Cloud Data Fusion (lihat Memberikan peran ke akun layanan untuk resource tertentu). Akun ini dalam format berikut:service-PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com
Memberikan peran Encrypter/Decrypter Cloud KMS CryptoKey ke agen layanan Cloud Data Fusion memungkinkan Cloud Data Fusion menggunakan CMEK untuk mengenkripsi data pelanggan yang disimpan di project tenant.
Wajib: Berikan peran Pengenkripsi/Pendekripsi Cloud KMS ke agen layanan Compute Engine (lihat Menetapkan kunci Cloud KMS ke akun layanan Cloud Storage). Akun ini, yang secara default diberi peran Agen Layanan Compute Engine, memiliki bentuk:
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
Memberikan peran Pengenkripsi/Pendekripsi Cloud KMS ke agen layanan Compute Engine memungkinkan Cloud Data Fusion menggunakan CMEK untuk mengenkripsi metadata disk persisten (PD) yang ditulis oleh cluster Dataproc yang berjalan di pipeline Anda.
Wajib: Berikan peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS ke agen layanan Cloud Storage (lihat Menetapkan kunci Cloud KMS ke agen layanan Cloud Storage). Agen layanan ini berbentuk:
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com
Memberikan peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS ke agen layanan Cloud Storage memungkinkan Cloud Data Fusion menggunakan CMK untuk mengenkripsi data yang ditulis ke bucket staging cluster Dataproc dan resource Cloud Storage lainnya yang digunakan oleh pipeline Anda.
Wajib: Berikan peran Cloud KMS CryptoKey Encrypter/Decrypter ke Agen Layanan Google Cloud Dataproc. Agen layanan ini berbentuk:
service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com
Opsional: Jika pipeline Anda menggunakan resource BigQuery, berikan peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS ke akun layanan BigQuery (lihat Memberikan izin enkripsi dan dekripsi). Akun ini berbentuk:
bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com
Opsional: Jika pipeline Anda menggunakan resource Pub/Sub, berikan peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS ke akun layanan Pub/Sub (lihat Menggunakan kunci enkripsi yang dikelola pelanggan). Akun ini berbentuk:
service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com
Opsional: Jika pipeline Anda menggunakan resource Spanner, berikan peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS ke akun layanan Spanner. Akun ini berbentuk:
service-PROJECT_NUMBER@gcp-sa-spanner.iam.gserviceaccount.com
Membuat instance Cloud Data Fusion dengan CMEK
CMEK tersedia di semua edisi Cloud Data Fusion versi 6.5.0 dan yang lebih baru.
REST API
Untuk membuat instance dengan kunci enkripsi yang dikelola pelanggan, tetapkan variabel lingkungan berikut:
export PROJECT=PROJECT_ID export LOCATION=REGION export INSTANCE=INSTANCE_ID export DATA_FUSION_API_NAME=datafusion.googleapis.com export KEY=KEY_NAME
Ganti kode berikut:
- PROJECT_ID: project pelanggan yang menghosting instance Cloud Data Fusion
- REGION: region Google Cloud yang dekat dengan lokasi Anda, misalnya,
us-east1
- INSTANCE_ID: nama instance Cloud Data Fusion
- KEY_NAME: Nama resource lengkap kunci CMEK
Jalankan perintah berikut untuk membuat instance Cloud Data Fusion:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1/projects/$PROJECT/locations/$LOCATION/instances?instance_id=INSTANCE -X POST -d '{"description": "CMEK-enabled CDF instance created through REST.", "type": "BASIC", "cryptoKeyConfig": {"key_reference": "$KEY"} }'
Konsol
Buka halaman Cloud Data Fusion.
Klik Instance, lalu klik Create an instance.
Di Advanced options, pilih Use a customer-managed encryption key (CMEK).
Di kolom Select a customer-managed key, pilih resource name untuk kunci.
Setelah Anda memasukkan semua detail instance, klik Buat. Jika sudah siap digunakan, instance akan muncul di halaman Instances.
Memeriksa apakah CMEK diaktifkan pada instance
Konsol
Lihat detail instance:
Di konsol Google Cloud, buka halaman Cloud Data Fusion.
Klik Instance, lalu klik nama instance untuk membuka halaman Instance details.
Jika CMEK diaktifkan, kolom Kunci enkripsi akan ditampilkan sebagai Tersedia.
Jika CMEK dinonaktifkan, kolom Kunci enkripsi akan ditampilkan sebagai Tidak tersedia.
Menggunakan CMEK dengan plugin yang didukung
Saat Anda menetapkan nama kunci enkripsi, gunakan formulir berikut:
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Tabel berikut menjelaskan perilaku kunci dalam plugin Cloud Data Fusion yang mendukung CMEK.
Plugin yang didukung | Perilaku tombol |
---|---|
Sink Cloud Data Fusion | |
Cloud Storage | Mengenkripsi data yang ditulis ke bucket apa pun yang dibuat oleh plugin. Jika bucket sudah ada, nilai ini akan diabaikan. |
Multi-file Cloud Storage | Mengenkripsi data yang ditulis ke bucket apa pun yang dibuat oleh plugin. |
BigQuery | Mengenkripsi data yang ditulis ke bucket, set data, atau tabel apa pun yang dibuat oleh plugin. |
Multi-tabel BigQuery | Mengenkripsi data yang ditulis ke bucket, set data, atau tabel apa pun yang dibuat oleh plugin. |
Pub/Sub | Mengenkripsi data yang ditulis ke topik apa pun yang dibuat oleh plugin. Jika topik sudah ada, nilai ini akan diabaikan. |
Spanner | Mengenkripsi data yang ditulis ke database apa pun yang dibuat oleh plugin. Jika database sudah ada, nilai ini akan diabaikan. |
Tindakan Cloud Data Fusion | |
Cloud Storage Create Cloud Storage Copy Cloud Storage Move Cloud Storage Done File Marker |
Mengenkripsi data yang ditulis ke bucket apa pun yang dibuat oleh plugin. Jika bucket sudah ada, nilai ini akan diabaikan. |
BigQuery Execute | Mengenkripsi data yang ditulis ke set data atau tabel yang dibuat plugin untuk menyimpan hasil kueri. Hal ini hanya berlaku jika Anda menyimpan hasil kueri di tabel BigQuery. |
Sumber Cloud Data Fusion | |
Sumber BigQuery | Mengenkripsi data yang ditulis ke bucket apa pun yang dibuat oleh plugin. Jika bucket sudah ada, nilai ini akan diabaikan. |
Mesin SQL Cloud Data Fusion | |
BigQuery Pushdown Engine | Mengenkripsi data yang ditulis ke bucket, set data, atau tabel apa pun yang dibuat oleh plugin. |
Menggunakan CMEK dengan metadata cluster Dataproc
Profil komputasi yang dibuat sebelumnya menggunakan kunci CMEK yang disediakan selama pembuatan instance untuk mengenkripsi metadata bucket staging dan Persistent Disk (PD) yang ditulis oleh cluster Dataproc yang berjalan di pipeline Anda. Anda dapat mengubahnya untuk menggunakan kunci lain dengan melakukan salah satu hal berikut:
- Direkomendasikan: Buat profil komputasi Dataproc baru (khusus edisi Enterprise).
- Edit profil komputasi Dataproc yang ada (edisi Developer, Basic, atau Enterprise).
Konsol
Buka instance Cloud Data Fusion:
Di konsol Google Cloud, buka halaman Cloud Data Fusion.
Untuk membuka instance di Cloud Data Fusion Studio, klik Instance, lalu klik View instance.
Klik System Admin > Configuration.
Klik drop-down System Compute Profiles.
Klik Buat Profil Baru, lalu pilih Dataproc.
Masukkan Label profil, Nama profil, dan Deskripsi.
Secara default, Dataproc membuat bucket staging dan temp setiap kali cluster sementara dibuat oleh Cloud Data Fusion. Cloud Data Fusion mendukung penerusan bucket staging Dataproc sebagai argumen dalam profil komputasi. Untuk mengenkripsi bucket staging, buat bucket yang mendukung CMEK dan teruskan sebagai argumen ke Dataproc di profil komputasi.
Secara default, Cloud Data Fusion otomatis membuat bucket Cloud Storage untuk melakukan staging dependensi yang digunakan oleh Dataproc. Jika Anda lebih suka menggunakan bucket Cloud Storage yang sudah ada di project, ikuti langkah-langkah berikut:
Di bagian Setelan Umum, masukkan bucket Cloud Storage yang ada di kolom Cloud Storage Bucket.
Dapatkan ID resource kunci Cloud KMS Anda. Di bagian Setelan Umum, masukkan ID resource Anda di kolom Nama Kunci Enkripsi.
Klik Create.
Jika lebih dari satu profil tercantum di bagian System Compute Profiles di tab Configuration, jadikan profil Dataproc baru sebagai profil default dengan menahan kursor di atas kolom nama profil dan mengklik bintang yang muncul.
Menggunakan CMEK dengan resource lain
Kunci CMEK yang disediakan ditetapkan ke preferensi sistem selama pembuatan instance Cloud Data Fusion. KMS digunakan untuk mengenkripsi data yang ditulis ke resource yang baru dibuat oleh sink pipeline seperti sink Cloud Storage, BigQuery, Pub/Sub, atau Spanner.
Kunci ini hanya berlaku untuk resource yang baru dibuat. Jika resource sudah ada sebelum eksekusi pipeline, Anda harus menerapkan kunci CMEK secara manual ke resource yang ada tersebut.
Anda dapat mengubah kunci CMEK dengan melakukan salah satu tindakan berikut:
- Gunakan argumen runtime.
- Menetapkan preferensi sistem Cloud Data Fusion.
Argumen runtime
- Di halaman Pipeline Studio Cloud Data Fusion, klik panah drop-down di sebelah kanan tombol Run.
- Di kolom Name, masukkan
gcp.cmek.key.name
. - Di kolom Nilai, masukkan ID resource kunci Anda.
Klik Simpan.
Argumen runtime yang Anda tetapkan di sini hanya berlaku untuk menjalankan pipeline saat ini.
Preferensi
- Di UI Cloud Data Fusion, klik SYSTEM ADMIN.
- Klik tab Configuration.
- Klik drop-down System Preferences.
- Klik Edit System Preferences.
- Pada kolom Kunci, masukkan
gcp.cmek.key.name
. - Di kolom Nilai, masukkan ID resource kunci Anda.
- Klik Simpan & Tutup.