Kunci enkripsi yang dikelola pelanggan (CMEK) memungkinkan enkripsi data dalam penyimpanan dengan kunci yang dapat Anda kontrol melalui Cloud KMS. CMEK memberikan kontrol kepada pengguna atas data yang ditulis ke resource internal Google dalam project tenant dan data yang ditulis oleh pipeline Cloud Data Fusion, termasuk:
- Log dan metadata pipeline
- Metadata cluster Dataproc
- Berbagai sink data, tindakan, dan sumber 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 pada pipeline, lalu menghapus cluster saat pipeline selesai. CMEK melindungi metadata cluster yang ditulis berikut ini:
- Persistent disk (PD) yang terpasang ke VM cluster
- Output driver tugas dan metadata lainnya yang ditulis ke bucket staging Dataproc yang dibuat 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 dalam project pengguna terpisah. Lokasi key ring Cloud KMS harus cocok dengan region tempat Anda membuat instance. Kunci multi-region atau region global tidak diizinkan di level 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 kriptografis
- KEY_NAME: Nama kunci Cloud KMS
Konsol
Buka halaman Kunci kriptografis.
Di samping kunci, klik More
.Pilih Copy Resource Name untuk menyalin nama resource ke papan klip.
Perbarui akun layanan project Anda untuk menggunakan kunci tersebut
Untuk menyiapkan akun layanan project Anda agar dapat menggunakan kunci Anda:
Diperlukan: Berikan peran Cloud KMS CryptoKey Encrypter/Decrypter (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) ke agen layanan Cloud Data Fusion (lihat Memberikan peran ke akun layanan untuk resource tertentu). Akun ini menggunakan format berikut:service-PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com
Dengan memberikan peran Encrypter/Decrypter Cloud KMS ke agen layanan Cloud Data Fusion, Cloud Data Fusion dapat menggunakan CMEK untuk mengenkripsi data pelanggan yang disimpan dalam project tenant.
Diperlukan: Berikan peran Encrypter/Decrypter Cloud KMS ke agen layanan Compute Engine (lihat Menetapkan kunci Cloud KMS ke akun layanan Cloud Storage). Akun yang secara default diberi peran Agen Layanan Compute Engine ini memiliki bentuk:
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
Dengan memberikan peran Encrypter/Decrypter Cloud KMS ke agen layanan Compute Engine, Cloud Data Fusion dapat menggunakan CMEK untuk mengenkripsi metadata persistent disk (PD) yang ditulis oleh cluster Dataproc yang berjalan di pipeline Anda.
Diperlukan: Berikan peran Cloud KMS CryptoKey Encrypter/Decrypter 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
Dengan memberikan peran Encrypter/Decrypter Cloud KMS ke agen layanan Cloud Storage, Cloud Data Fusion dapat menggunakan CMEK untuk mengenkripsi data yang ditulis ke bucket staging cluster Dataproc dan resource Cloud Storage lainnya yang digunakan oleh pipeline Anda.
Diperlukan: Berikan peran Cloud KMS CryptoKey Encrypter/Decrypter ke Google Cloud Dataproc Service Agent. Agen layanan ini memiliki bentuk:
service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com
Opsional: Jika pipeline Anda menggunakan resource BigQuery, berikan peran Encrypter/Decrypter 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 Cloud KMS CryptoKey Encrypter/Decrypter 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 Encrypter/Decrypter 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 kunci CMEK lengkap
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 nama resource untuk kunci tersebut.
Setelah Anda memasukkan semua detail instance, klik Create. Setelah 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 Detail instance.
Jika CMEK diaktifkan, kolom Kunci enkripsi akan ditampilkan sebagai Tersedia.
Jika CMEK dinonaktifkan, kolom Encryption key akan ditampilkan sebagai Not available.
Menggunakan CMEK dengan plugin yang didukung
Saat Anda menetapkan nama kunci enkripsi, gunakan format 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 kunci |
---|---|
Sink Cloud Data Fusion | |
Cloud Storage | Mengenkripsi data yang ditulis ke bucket yang dibuat oleh plugin. Jika bucket sudah ada, nilai ini akan diabaikan. |
Multi-file Cloud Storage | Mengenkripsi data yang ditulis ke bucket 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 Salinan Cloud Storage Pemindahan Cloud Storage Penanda File Selesai Cloud Storage |
Mengenkripsi data yang ditulis ke bucket 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. Ini hanya berlaku jika Anda menyimpan hasil kueri dalam tabel BigQuery. |
Sumber Cloud Data Fusion | |
Sumber BigQuery | Mengenkripsi data yang ditulis ke bucket yang dibuat oleh plugin. Jika bucket sudah ada, nilai ini akan diabaikan. |
Mesin SQL Cloud Data Fusion | |
Mesin Pushdown BigQuery | 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 diberikan selama pembuatan instance untuk mengenkripsi Persistent Disk (PD) dan metadata bucket staging yang ditulis oleh cluster Dataproc yang berjalan di pipeline Anda. Anda dapat memodifikasi untuk menggunakan kunci lain dengan melakukan salah satu hal berikut:
- Direkomendasikan: Buat profil komputasi Dataproc baru (khusus edisi Enterprise).
- Mengedit profil komputasi Dataproc yang sudah 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 antarmuka web Cloud Data Fusion, klik Instance, lalu klik View instance.
Klik System Admin > Configuration.
Klik drop-down System Compute Profiles.
Klik Create New Profile, lalu pilih Dataproc.
Masukkan Label profil, Nama profil, dan Deskripsi.
Secara default, Dataproc akan membuat bucket staging dan sementara setiap kali cluster efemeral dibuat oleh Cloud Data Fusion. Cloud Data Fusion mendukung penerusan bucket staging Dataproc sebagai argumen di profil komputasi. Untuk mengenkripsi bucket staging, buat bucket yang mendukung CMEK, lalu teruskan sebagai argumen ke Dataproc di profil komputasi.
Secara default, Cloud Data Fusion otomatis membuat bucket Cloud Storage untuk menata dependensi yang digunakan oleh Dataproc. Jika memilih untuk menggunakan bucket Cloud Storage yang sudah ada di project Anda, ikuti langkah-langkah berikut:
Di bagian General Settings, masukkan bucket Cloud Storage yang sudah ada ke kolom Cloud Storage Bucket.
Dapatkan ID resource kunci Cloud KMS Anda. Di bagian General Settings, masukkan ID resource di kolom Encryption Key Name.
Klik Create.
Jika lebih dari satu profil tercantum di bagian System Compute Profiles tab Configuration, jadikan profil Dataproc baru sebagai profil default dengan menahan pointer di 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. Layanan ini digunakan untuk mengenkripsi data yang ditulis ke resource yang baru dibuat oleh sink pipeline seperti Cloud Storage, BigQuery, Pub/Sub, atau sink 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 sudah ada tersebut.
Anda dapat mengubah kunci CMEK dengan melakukan salah satu hal berikut:
- Menggunakan argumen runtime.
- Tetapkan 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 Value, masukkan ID resource kunci Anda.
Klik Save.
Argumen runtime yang Anda tetapkan di sini hanya berlaku untuk operasi pipeline saat ini.
Preferensi
- Di UI Cloud Data Fusion, klik ADMIN SISTEM.
- Klik tab Configuration.
- Klik drop-down System Preferences.
- Klik Edit System Preferences.
- Pada kolom Key, masukkan
gcp.cmek.key.name
. - Di kolom Value, masukkan ID resource kunci Anda.
- Klik Simpan & Tutup.