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:
- Respons terhadap kueri pengguna—misalnya,
compilationResults.query
. - Pembuatan resource Dataform yang memerlukan data repositori terenkripsi yang dibuat sebelumnya—misalnya, pemanggilan alur kerja.
- Operasi Git untuk mengupdate repositori jarak jauh, misalnya, mengirim commit Git.
- Respons terhadap kueri pengguna—misalnya,
- Selama setiap operasi yang memerlukan penyimpanan data pelanggan dalam penyimpanan.
Operasi ini mencakup, tetapi tidak terbatas pada, hal berikut:
- Respons terhadap kueri pengguna—misalnya,
compilationResults.create
. - Operasi Git ke ruang kerja—misalnya, menarik commit Git.
- Respons terhadap kueri pengguna—misalnya,
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:
- Aktifkan Cloud Key Management Service API.
- 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 diasia-northeast3
. -
Region
global
tidak dapat digunakan dengan Dataform.
-
Repositori harus menggunakan kunci regional yang cocok. Misalnya,
repositori di region
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
Buka halaman Key Management di konsol Google Cloud.
Klik nama key ring yang berisi kunci tersebut.
Klik kotak centang untuk kunci enkripsi yang ingin Anda tambahi peran. Tab Izin akan terbuka.
Klik Tambahkan anggota.
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.
Klik menu drop-down untuk Pilih peran, klik Cloud KMS, lalu klik peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS.
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 KMSSERVICE_ACCOUNT
: alamat email akun layanan Formulir data default AndaKMS_KEY_LOCATION
: nama lokasi kunci Cloud KMS AndaKMS_KEY_RING
: nama key ring untuk kunci Cloud KMS AndaKMS_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
- Untuk mempelajari CMEK lebih lanjut, lihat Ringkasan CMEK.
- Untuk mempelajari lebih lanjut kuota Cloud KMS, lihat Kuota Cloud KMS.
- Untuk mempelajari lebih lanjut harga Cloud KMS, lihat Harga Cloud KMS.
- Untuk mempelajari repositori Dataform lebih lanjut, lihat Pengantar repositori.