Mengenkripsi data dengan kunci enkripsi yang dikelola pelanggan

Secara default, Dataproc Metastore mengenkripsi konten pelanggan dalam penyimpanan. Dataproc Metastore menangani enkripsi untuk Anda tanpa perlu tindakan tambahan dari Anda. Opsi ini disebut enkripsi default Google.

Jika ingin mengontrol kunci enkripsi, Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) di Cloud KMS dengan layanan yang terintegrasi dengan CMEK, termasuk Dataproc Metastore. Dengan menggunakan kunci Cloud KMS, Anda dapat mengontrol tingkat perlindungan, lokasi, jadwal rotasi, izin penggunaan dan akses, serta batasan kriptografisnya. Dengan Cloud KMS, Anda juga dapat melihat log audit dan mengontrol siklus proses kunci. Alih-alih Google yang memiliki dan mengelola kunci enkripsi kunci (KEK) simetris yang melindungi data Anda, Anda yang mengontrol dan mengelola kunci ini di Cloud KMS.

Setelah Anda menyiapkan resource dengan CMEK, pengalaman mengakses resource Dataproc Metastore Anda mirip dengan menggunakan enkripsi default Google. Untuk mengetahui informasi selengkapnya tentang opsi enkripsi, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).

Sebelum memulai

Pertimbangan

Pertimbangkan poin-poin berikut saat menggunakan Dataproc Metastore dengan CMEK.

  • CMEK didukung untuk layanan Dataproc Metastore region tunggal dan multi-region (Pratinjau).

  • Database Cloud Monitoring tidak mendukung enkripsi CMEK. Sebagai gantinya, Google Cloud menggunakan kunci enkripsi Google untuk melindungi nama dan konfigurasi layanan Dataproc Metastore Anda.

  • Jika ingin layanan Dataproc Metastore Anda berjalan di dalam perimeter VPC Service Controls, Anda harus menambahkan Cloud Key Management Service (Cloud KMS) API ke perimeter.

  • Saat Anda menggunakan kunci Cloud External Key Manager, Google tidak memiliki kontrol atas ketersediaan kunci yang dikelola secara eksternal. Jika kunci tidak tersedia selama periode pembuatan layanan Dataproc Metastore, pembuatan layanan akan gagal. Setelah layanan Dataproc Metastore dibuat, jika kunci menjadi tidak tersedia, layanan akan menjadi tidak tersedia hingga kunci tersedia kembali. Untuk pertimbangan lainnya saat menggunakan kunci eksternal, lihat Pertimbangan Cloud EKM.

Batasan

Pertimbangkan batasan berikut saat menggunakan Dataproc Metastore dengan CMEK.

  • Anda tidak dapat mengaktifkan CMEK pada layanan yang ada.

  • Anda tidak dapat merotasi CMEK yang digunakan oleh layanan yang mendukung CMEK.

  • Anda tidak dapat menggunakan CMEK untuk mengenkripsi data pengguna selama pengiriman, seperti kueri dan respons pengguna.

Mengonfigurasi CMEK untuk Dataproc Metastore

Jika belum memiliki kunci Cloud KMS, Anda dapat membuatnya untuk layanan Dataproc Metastore. Jika tidak, Anda dapat melewati langkah ini dan menggunakan kunci yang ada.

Opsional: Buat kunci Cloud KMS baru

Untuk membuat kunci Cloud KMS, Anda harus membuat key ring terlebih dahulu, lalu membuat kunci yang disimpan di dalam key ring.

Untuk membuat key ring

Untuk membuat ring kunci, jalankan perintah gcloud kms keyrings create berikut.

gcloud kms keyrings create KEY_RING \
  --project=PROJECT_ID \
  --location=LOCATION

Ganti kode berikut:

  • KEY_RING: nama untuk key ring Anda.
  • PROJECT_ID: ID Google Cloud project tempat Anda ingin membuat key ring.
  • LOCATION: region tempat Anda ingin membuat key ring.

Untuk membuat kunci

Untuk membuat kunci yang disimpan di dalam key ring Anda, jalankan perintah gcloud kms keys create berikut.

gcloud kms keys create KEY_NAME \
  --project=PROJECT_ID \
  --location=LOCATION \
  --keyring=KEY_RING \
  --purpose=encryption

Ganti kode berikut:

  • KEY_NAME: nama kunci.
  • KEY_RING: nama key ring yang Anda buat di langkah sebelumnya.

Memberikan izin kunci Cloud KMS

Gunakan perintah berikut untuk memberikan izin kunci Cloud KMS bagi Dataproc Metastore:

  1. Berikan izin ke akun layanan Dataproc Metastore Service Agent:

    Jika Anda akan mengonfigurasi CMEK untuk layanan Dataproc Metastore multi-region, Anda harus memberikan izin Cloud KMS yang diperlukan untuk setiap kunci bagi akun layanan Dataproc Metastore dan Cloud Storage.

      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member=serviceAccount:$(gcloud beta services identity create \
        --service=metastore.googleapis.com 2>&1 | awk '{print $4}') \
        --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

  1. Berikan izin ke akun layanan Cloud Storage:

      gcloud storage service-agent --authorize-cmek projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME

Membuat layanan region tunggal dengan kunci CMEK

Gunakan langkah-langkah berikut untuk mengonfigurasi enkripsi CMEK untuk layanan Dataproc Metastore satu region.

Konsol

  1. Di konsol Google Cloud , buka halaman Dataproc Metastore:

    Buka Dataproc Metastore

  2. Di bagian atas halaman Dataproc Metastore, klik Buat.

    Halaman Create service akan terbuka.

  3. Konfigurasi layanan Anda sesuai kebutuhan.

  4. Di bagian Enkripsi, klik Kunci enkripsi yang dikelola pelanggan (CMEK).

  5. Pilih kunci yang dikelola pelanggan.

  6. Klik Kirim.

Verifikasi konfigurasi enkripsi layanan:

  1. Di konsol Google Cloud , buka halaman Dataproc Metastore:

    Buka Google Cloud konsol

  2. Di halaman Dataproc Metastore, klik nama layanan yang ingin Anda lihat.

    Halaman Service detail akan terbuka.

  3. Di tab Configuration, pastikan detailnya menunjukkan bahwa CMEK diaktifkan.

gcloud

  1. Untuk membuat layanan region tunggal dengan enkripsi CMEK, jalankan perintah Google Cloud gcloud metastore services create:

    gcloud metastore services create SERVICE \
       --encryption-kms-key=KMS_KEY
    

    Ganti kode berikut:

    • SERVICE: nama layanan baru.
    • KMS_KEY: ID resource kunci.

Membuat layanan multi-region dengan kunci CMEK

Untuk layanan CMEK Dataproc Metastore multi-regional, beberapa kunci enkripsi harus disediakan. Hal ini mencakup satu kunci untuk setiap region konstituen layanan Dataproc Metastore multi-region—satu kunci untuk region saksi Spanner dan satu kunci untuk benua.

Untuk mendapatkan informasi tentang layanan multi-region Anda dan region yang dikonfigurasi dengannya, Anda dapat menjalankan perintah berikut.

gcloud metastore locations describe LOCATION
  • Ganti LOCATION dengan multi-region tempat Anda membuat layanan Dataproc Metastore.

Untuk membuat layanan multi-region dengan kunci CMEK

Gunakan langkah-langkah berikut untuk mengonfigurasi enkripsi CMEK untuk layanan Dataproc Metastore multi-region.

Konsol

  1. Di konsol Google Cloud , buka halaman Dataproc Metastore:

    Buka Dataproc Metastore

  2. Di bagian atas halaman Dataproc Metastore, klik Buat.

    Halaman Create service akan terbuka.

  3. Pilih Dataproc Metastore 2.

  4. Di bagian Harga dan Kapasitas, pilih Enterprise Plus - Dual region.

  5. Untuk Endpoint protocol, pilih endpoint yang sesuai.

  6. Di bagian Encryption, pilih Cloud KMS key.

  7. Pilih kunci yang akan digunakan untuk setiap wilayah, misalnya wilayah saksi Spanner dan benua.

  8. Konfigurasi opsi layanan lainnya sesuai kebutuhan.

  9. Klik Kirim.

Verifikasi konfigurasi enkripsi layanan:

  1. Di konsol Google Cloud , buka halaman Dataproc Metastore:

    Buka Dataproc Metastore

  2. Di halaman Dataproc Metastore, klik nama layanan yang ingin Anda lihat.

    Detail layanan akan terbuka.

  3. Di tab Configuration, pastikan CMEK diaktifkan.

gcloud

  1. Untuk membuat layanan multi-region dengan enkripsi CMEK, jalankan perintah gcloud beta metastore services create:
gcloud beta metastore services create SERVICE \
    --location=LOCATION \
    --instance-size=INSTANCE_SIZE \
    --encryption-kms-keys=KMS_KEY1,KMS_KEY2,KMS_KEY_WITNESS,KMS_KEY_CONTINENT

Ganti kode berikut:

  • SERVICE: nama layanan Dataproc Metastore baru Anda.
  • LOCATION: multi-region Google Cloud tempat Anda ingin membuat layanan Dataproc Metastore. Anda juga dapat menyetel lokasi default.
  • INSTANCE_SIZE: ukuran instance layanan Dataproc Metastore multi-regional Anda. Misalnya, kecil, sedang, atau besar.
  • KMS_KEY1, KMS_KEY2, KMS_KEY_WITNESS, KMS_KEY_CONTINENT: ID resource kunci untuk setiap kunci yang diperlukan, termasuk satu kunci di benua dan satu kunci di wilayah saksi Spanner. Nama kunci dicantumkan dalam format berikut di project Anda: projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME.

Mengimpor dan mengekspor data dari dan ke layanan yang mendukung CMEK

Jika ingin data Anda tetap dienkripsi dengan kunci yang dikelola pelanggan selama impor, Anda harus menetapkan CMEK di bucket Cloud Storage sebelum mengimpor data dari bucket tersebut.

Anda dapat mengimpor dari bucket Cloud Storage yang tidak dilindungi CMEK. Setelah diimpor, data yang disimpan di Dataproc Metastore dilindungi sesuai dengan setelan CMEK layanan tujuan.

Saat diekspor, dump database yang diekspor dilindungi sesuai dengan setelan CMEK bucket penyimpanan tujuan.

Langkah berikutnya