Menggunakan kunci enkripsi yang dikelola pelanggan

Secara default, Google Cloud otomatis mengenkripsi data saat dalam penyimpanan menggunakan kunci enkripsi yang dikelola oleh Google. Jika Anda memiliki persyaratan kepatuhan atau peraturan khusus yang terkait dengan kunci yang melindungi data, Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) untuk repositori Dataform.

Panduan ini menjelaskan penggunaan CMEK untuk Dataform dan memandu Anda cara mengaktifkan enkripsi CMEK pada repositori Dataform.

Untuk informasi selengkapnya tentang CMEK secara umum, termasuk kapan dan mengapa diaktifkan, lihat dokumentasi CMEK.

Enkripsi CMEK data repositori

Saat Anda menerapkan enkripsi CMEK ke repositori Dataform, semua data pelanggan yang dikelola Dataform dalam repositori tersebut akan dienkripsi dalam penyimpanan menggunakan kunci perlindungan CMEK yang ditetapkan untuk repositori. Data ini mencakup hal berikut:

  • Konten repositori Git dari repositori Dataform dan ruang kerjanya
  • Error kompilasi dan kueri SQL yang dikompilasi
  • Kueri SQL tersimpan terkait tindakan alur kerja
  • Detail error pada tindakan alur kerja yang dijalankan

Dataform menggunakan kunci perlindungan CMEK dalam skenario berikut:

  • Selama setiap operasi yang memerlukan dekripsi data pelanggan yang disimpan dalam penyimpanan. Operasi ini mencakup, tetapi tidak terbatas pada hal berikut:
  • Selama setiap operasi yang memerlukan penyimpanan data pelanggan dalam penyimpanan. Operasi ini mencakup, tetapi tidak terbatas pada, hal berikut:

Dataform mengelola enkripsi data pelanggan yang hanya terkait dengan resource Dataform. Dataform tidak mengelola enkripsi data pelanggan yang dibuat di BigQuery melalui eksekusi alur kerja Dataform. Untuk mengenkripsi data yang dibuat dan disimpan di BigQuery, konfigurasikan CMEK untuk BigQuery.

Kunci yang didukung

Dataform mendukung jenis kunci CMEK berikut:

Ketersediaan kunci bervariasi menurut jenis dan wilayah kunci. Untuk mengetahui informasi selengkapnya tentang ketersediaan geografis kunci CMEK, lihat lokasi Cloud KMS.

Pembatasan

Dataform mendukung CMEK dengan batasan berikut:

  • Anda tidak dapat menerapkan kunci perlindungan CMEK ke repositori setelah repositori dibuat. Anda hanya dapat menerapkan enkripsi CMEK selama pembuatan repositori.
  • Anda tidak dapat menghapus kunci perlindungan CMEK dari repositori.
  • Anda tidak dapat mengubah kunci perlindungan CMEK untuk repositori.
  • Kebijakan organisasi CMEK tidak tersedia.
  • Penggunaan kunci Cloud HSM bergantung pada ketersediaan. Untuk mengetahui informasi lebih lanjut tentang ketersediaan kunci di seluruh lokasi, lihat lokasi Cloud KMS.

Kuota dan Formulir Data Cloud KMS

Anda dapat menggunakan kunci Cloud HSM dengan Dataform. Saat Anda menggunakan CMEK dalam Dataform, project Anda dapat memakai kuota permintaan kriptografis Cloud KMS. Misalnya, repositori Dataform yang dienkripsi CMEK dapat menggunakan kuota ini untuk setiap perubahan pada konten repositori. Operasi enkripsi dan dekripsi menggunakan kunci CMEK memengaruhi kuota Cloud KMS hanya jika Anda menggunakan kunci hardware (Cloud HSM) atau kunci eksternal (Cloud EKM). Untuk informasi selengkapnya, lihat kuota Cloud KMS.

Mengelola kunci

Gunakan Cloud KMS untuk semua operasi pengelolaan kunci. Formulir data tidak dapat mendeteksi atau bertindak atas perubahan kunci apa pun hingga perubahan tersebut disebarkan oleh Cloud KMS. Beberapa operasi, seperti menonaktifkan atau menghancurkan kunci, dapat memerlukan waktu hingga tiga jam untuk diterapkan. Perubahan izin biasanya diterapkan jauh lebih cepat.

Setelah repositori dibuat, Dataform memanggil Cloud KMS untuk memastikan bahwa kuncinya masih valid selama setiap operasi pada data repositori yang dienkripsi.

Jika Dataform mendeteksi bahwa kunci Cloud KMS telah dinonaktifkan atau dihancurkan, semua data yang disimpan di repositori terkait tidak akan dapat diakses.

Jika panggilan menurut Dataform ke Cloud KMS mendeteksi bahwa kunci yang sebelumnya dinonaktifkan telah diaktifkan kembali, Dataform akan otomatis memulihkan akses.

Cara penanganan status kunci yang tidak tersedia

Dalam skenario yang jarang terjadi, seperti selama periode ketika Cloud KMS tidak tersedia, Formulir Data mungkin tidak dapat mengambil status kunci Anda dari Cloud KMS.

Jika repositori Dataform Anda dilindungi oleh kunci yang diaktifkan pada saat Dataform tidak dapat berkomunikasi dengan Cloud KMS, data repositori yang dienkripsi menjadi tidak dapat diakses.

Data repositori yang dienkripsi tetap tidak dapat diakses hingga Formulir Data dapat terhubung kembali dengan Cloud KMS dan Cloud KMS bahwa kunci telah aktif.

Sebaliknya, jika repositori Dataform Anda dilindungi oleh kunci yang dinonaktifkan pada saat Dataform pertama kali tidak dapat berkomunikasi dengan Cloud KMS, data repositori yang dienkripsi tetap tidak dapat diakses hingga dapat terhubung kembali ke Cloud KMS dan Anda telah mengaktifkan kembali kunci tersebut.

Logging

Anda dapat mengaudit permintaan yang dikirim Dataform ke Cloud KMS atas nama Anda di Cloud Logging, jika Anda telah mengaktifkan logging audit untuk Cloud KMS API dalam project Anda. Entri log Cloud KMS ini terlihat di Cloud Logging. Untuk informasi lebih lanjut, baca Melihat log.

Sebelum memulai

  • Putuskan apakah Anda akan menjalankan Dataform dan Cloud KMS dalam project yang berbeda, atau di project yang sama. Sebaiknya gunakan project terpisah untuk kontrol izin yang lebih besar. Untuk informasi tentang project ID dan nomor project Google Cloud, lihat Mengidentifikasi project.

  • Untuk project Google Cloud yang menjalankan Cloud KMS:

    1. Aktifkan Cloud Key Management Service API.
    2. Buat key ring dan kunci seperti yang dijelaskan dalam Membuat key ring dan kunci. Buat key ring di lokasi yang cocok dengan lokasi repositori Dataform Anda:
      • Repositori harus menggunakan kunci regional yang cocok. Misalnya, repositori di region asia-northeast3 harus dilindungi dengan kunci dari key ring yang terletak di asia-northeast3.
      • Region global tidak dapat digunakan dengan Dataform.
      Untuk mengetahui informasi selengkapnya tentang lokasi yang didukung untuk Dataform dan Cloud KMS, lihat Lokasi Cloud.

Mengaktifkan CMEK

Formulir data dapat mengakses kunci untuk Anda setelah Anda memberikan peran CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) Cloud KMS ke akun layanan Dataform default.

ID akun layanan Dataform default Anda menggunakan format berikut:

service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com

Untuk memberikan peran CryptoKey Encrypter/Decrypter ke akun layanan Dataform default, ikuti langkah-langkah berikut:

Konsol

  1. Buka halaman Key Management di konsol Google Cloud.

    Buka halaman Key Management

  2. Klik nama key ring yang berisi kunci tersebut.

  3. Klik kotak centang untuk kunci enkripsi yang ingin Anda tambahi peran. Tab Izin akan terbuka.

  4. Klik Tambahkan anggota.

  5. Masukkan alamat email akun layanan

    • Jika akun layanan sudah ada di daftar anggota, akun tersebut memiliki peran yang sudah ada. Klik menu drop-down peran saat ini untuk akun layanan.
  6. Klik menu drop-down untuk Pilih peran, klik Cloud KMS, lalu klik peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS.

  7. Klik Save untuk menerapkan peran ke akun layanan.

gcloud

Anda dapat menggunakan Google Cloud CLI untuk menetapkan peran:

gcloud kms keys add-iam-policy-binding \
    --project=KMS_PROJECT_ID \
    --member serviceAccount:SERVICE_ACCOUNT \
    --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
    --location=KMS_KEY_LOCATION \
    --keyring=KMS_KEY_RING \
    KMS_KEY

Ganti kode berikut:

  • KMS_PROJECT_ID: ID project Google Cloud Anda yang menjalankan Cloud KMS
  • SERVICE_ACCOUNT: alamat email akun layanan Formulir data default Anda
  • KMS_KEY_LOCATION: nama lokasi kunci Cloud KMS Anda
  • KMS_KEY_RING: nama key ring untuk kunci Cloud KMS Anda
  • KMS_KEY: nama kunci untuk kunci Cloud KMS Anda

Menerapkan CMEK ke repositori

Anda dapat menerapkan perlindungan CMEK ke repositori Dataform selama pembuatan repositori.

Untuk menerapkan enkripsi CMEK ke repositori Dataform, tentukan kunci Cloud KMS saat Anda membuat repositori. Untuk mengetahui petunjuknya, lihat Membuat repositori.

Anda tidak dapat mengubah mekanisme enkripsi repositori Dataform setelah repositori dibuat.

Untuk informasi selengkapnya, lihat Pembatasan.

Langkah selanjutnya