Menggunakan kunci enkripsi yang dikelola pelanggan (CMEK)

Halaman ini menjelaskan cara menggunakan kunci enkripsi Cloud Key Management Service (Cloud KMS) dengan Cloud Data Fusion.

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

  1. Buka halaman Kunci kriptografis.

    Buka Kunci kriptografis

  2. Di samping kunci, klik More .

  3. 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:

  1. 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.

  2. 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.

  3. 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.

  4. 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

  5. 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

  6. 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

  7. 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

  1. 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
  2. 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

  1. Buka halaman Cloud Data Fusion.

  2. Klik Instance, lalu klik Create an instance.

    Buka Instance

  3. Di Advanced options, pilih Use a customer-managed encryption key (CMEK).

  4. Di kolom Select a customer-managed key, pilih nama resource untuk kunci tersebut.

    Pilih nama kunci enkripsi

  5. 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:

  1. Di konsol Google Cloud, buka halaman Cloud Data Fusion.

  2. Klik Instance, lalu klik nama instance untuk membuka halaman Detail instance.

    Buka 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

Nama kunci enkripsi

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

  1. Buka instance Cloud Data Fusion:

    1. Di konsol Google Cloud, buka halaman Cloud Data Fusion.

    2. Untuk membuka instance di antarmuka web Cloud Data Fusion, klik Instance, lalu klik View instance.

      Buka Instance

  2. Klik System Admin > Configuration.

  3. Klik drop-down System Compute Profiles.

  4. Klik Create New Profile, lalu pilih Dataproc.

  5. Masukkan Label profil, Nama profil, dan Deskripsi.

  6. 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.

  7. 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:

    1. Di bagian General Settings, masukkan bucket Cloud Storage yang sudah ada ke kolom Cloud Storage Bucket.

    2. Tambahkan kunci Cloud KMS ke bucket Cloud Storage.

  8. Dapatkan ID resource kunci Cloud KMS Anda. Di bagian General Settings, masukkan ID resource di kolom Encryption Key Name.

  9. Klik Create.

  10. 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.

    Pilih profil default.

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

  1. Di halaman Pipeline Studio Cloud Data Fusion, klik panah drop-down di sebelah kanan tombol Run.
  2. Di kolom Name, masukkan gcp.cmek.key.name.
  3. Di kolom Value, masukkan ID resource kunci Anda.
    Pilih edisi Data Fusion.
  4. Klik Save.

    Argumen runtime yang Anda tetapkan di sini hanya berlaku untuk operasi pipeline saat ini.

Preferensi

  1. Di UI Cloud Data Fusion, klik ADMIN SISTEM.
  2. Klik tab Configuration.
  3. Klik drop-down System Preferences.
  4. Klik Edit System Preferences.
  5. Pada kolom Key, masukkan gcp.cmek.key.name.
  6. Di kolom Value, masukkan ID resource kunci Anda.
    Pilih edisi Data Fusion.
  7. Klik Simpan & Tutup.