Mengamankan data dengan kunci enkripsi

Untuk melindungi data dalam penyimpanan di cluster dan cadangan AlloyDB untuk PostgreSQL dengan kunci yang Anda kontrol, Anda dapat membuat, mengizinkan, menerapkan, dan mengelola kunci enkripsi yang dikelola pelanggan (CMEK) di Cloud Key Management Service (Cloud KMS).

Untuk mengetahui informasi selengkapnya tentang CMEK, lihat Tentang CMEK.

Membuat dan mengizinkan kunci CMEK untuk AlloyDB

  1. Buat kunci di Cloud KMS. AlloyDB mendukung jenis kunci berikut:

    Kunci harus berada di lokasi yang sama dengan cluster AlloyDB Anda. Misalnya, cluster AlloyDB yang berada di us-west1 hanya dapat menggunakan kunci di us-west1.

    Jika Anda sudah memiliki kunci Cloud KMS di lokasi yang benar, Anda dapat melewati langkah ini.

  2. Berikan akses AlloyDB ke kunci.

    1. Dengan menggunakan Google Cloud CLI, buat dan tampilkan agen layanan, atau tampilkan jika akun sudah ada:

      gcloud beta services identity create --service=alloydb.googleapis.com \
          --project=PROJECT

      Perintah gcloud beta services identity create membuat atau mendapatkan agen layanan yang dapat digunakan AlloyDB untuk mengakses kunci Cloud KMS atas nama Anda.

      ID agen layanan menyerupai alamat email:

      Service identity created: service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com
      
    2. Berikan peran Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) ke agen layanan:

      gcloud kms keys add-iam-policy-binding KEY \
          --location=REGION \
          --keyring=KEYRING \
          --project=PROJECT \
          --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com \
          --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

      Ganti kode berikut:

      • KEY: ID Cloud KMS kunci.

      • REGION: region kunci—misalnya, us-central1.

      • KEYRING: ID key ring Cloud KMS kunci.

      • PROJECT: ID project kunci.

      • PROJECT_NUMBER: nomor project dari project cluster AlloyDB Anda.

      Peran ini memberi agen layanan izin untuk mengenkripsi dan mendekripsi menggunakan kunci Cloud KMS. Untuk mengetahui informasi selengkapnya tentang peran dan izin Cloud KMS, lihat izin dan peran Cloud KMS.

Membuat cluster yang dienkripsi CMEK

Saat membuat cluster baru, Anda dapat memilih apakah akan mengenkripsi cluster dengan enkripsi default yang dikelola Google atau menggunakan kunci CMEK. Untuk mengetahui informasi selengkapnya, lihat Membuat cluster dan instance utamanya.

Melihat metode enkripsi dan kunci CMEK cluster

Konsol

Kolom Encryption di halaman Clusters menampilkan apakah setiap cluster dalam project Anda menggunakan enkripsi yang dikelola Google atau CMEK.

Buka halaman Clusters

Untuk melihat detail kunci cluster yang menggunakan CMEK, klik namanya di kolom Resource name. Kolom Encryption key di halaman detail yang dihasilkan berisi deskripsi kunci, termasuk link ke halaman detail Cloud KMS-nya sendiri.

gcloud

Panggil perintah gcloud alloydb clusters describe:

gcloud alloydb clusters describe CLUSTER \
    --project=PROJECT \
    --region=REGION

Ganti kode berikut:

  • CLUSTER: ID cluster yang akan dideskripsikan.

  • PROJECT: ID project cluster.

  • REGION: region cluster—misalnya, us-central1.

Output-nya mencakup kolom encryptionInfo dengan ringkasan enkripsi cluster.

Menerapkan CMEK ke cadangan

Saat membuat cadangan baru, Anda dapat memilih apakah akan mengenkripsinya menggunakan enkripsi default yang dikelola Google atau kunci CMEK. Untuk mengetahui informasi selengkapnya, lihat Membuat cadangan on-demand atau Mengonfigurasi rencana pencadangan.

Anda juga memiliki opsi untuk menerapkan kunci CMEK ke cluster yang dibuat saat memulihkan dari cadangan, terlepas dari metode enkripsi cadangan tersebut. Untuk mengetahui informasi selengkapnya, lihat Memulihkan cluster.

Merotasi kunci menggunakan enkripsi CMEK

Penting untuk memahami implikasi rotasi kunci enkripsi yang dikelola pelanggan (CMEK) di Cloud KMS saat digunakan dengan cluster AlloyDB.

Saat Anda merotasi kunci CMEK, hal berikut akan terjadi pada data AlloyDB yang ada:

  • Akses langsung berlanjut: data tetap dienkripsi dengan versi Kunci Enkripsi Data (DEK) aslinya, selama versi kunci sebelumnya masih tersedia di Cloud KMS, tidak dinonaktifkan atau dihapus.

  • Enkripsi ulang data lengkap dilakukan secara manual: untuk mendapatkan semua data AlloyDB Anda pada versi kunci utama terbaru, Anda harus mengenkripsi ulang data tersebut.

Untuk mengenkripsi ulang cluster yang ada dengan versi kunci CMEK baru, Anda harus melakukan operasi pencadangan dan pemulihan:

  1. Buat cadangan cluster yang ada.

  2. Pulihkan cadangan ke cluster baru, dengan menentukan versi kunci utama CMEK baru selama proses pemulihan.

Untuk mengetahui informasi selengkapnya, lihat Pemulihan cluster.

Rotasi kunci CMEK yang sering dengan AlloyDB memerlukan overhead operasional yang signifikan. Karena data yang ada tidak otomatis dienkripsi ulang, dan karena enkripsi ulang manual melibatkan pencadangan penuh dan pemulihan ke cluster baru, rotasi yang sering dapat merepotkan dan dapat memengaruhi ketersediaan atau kompleksitas pengelolaan.

Anda dapat menghapus versi kunci CMEK lama di Cloud KMS dengan aman hanya setelah memastikan bahwa semua data AlloyDB yang relevan telah dienkripsi ulang secara manual dan data tersebut menggunakan versi kunci yang lebih baru.

Melihat metode enkripsi dan kunci CMEK cadangan

Konsol

Kolom Encryption di halaman Backups menampilkan apakah setiap cadangan dalam project Anda menggunakan enkripsi yang dikelola Google atau Cloud KMS (CMEK).

Buka halaman Backups

Untuk melihat detail kunci cadangan menggunakan CMEK, klik Restore. Kolom Encryption key pada panel detail berikutnya berisi deskripsi kunci, termasuk link ke halaman detail Cloud KMS-nya sendiri.

gcloud

Panggil perintah gcloud alloydb backups describe:

gcloud alloydb backups describe BACKUP_ID \
    --project=PROJECT \
    --region=REGION

Ganti kode berikut:

  • BACKUP_ID: ID cadangan yang akan dideskripsikan.

  • PROJECT: ID project cadangan.

  • REGION: region cadangan—misalnya, us-central1.

Output-nya mencakup kolom encryptionInfo dengan ringkasan enkripsi cadangan.

Menonaktifkan kunci

Menonaktifkan kunci CMEK cluster akan membuat data cluster tersebut tidak dapat diakses hingga Anda mengaktifkan kembali kunci tersebut.

Namun, penonaktifan kunci dapat memerlukan waktu hingga tiga jam untuk diterapkan ke cluster AlloyDB Anda. Untuk menonaktifkan kunci sekaligus mencegah akses ke data Anda tanpa menunggu penerapan kunci, ikuti langkah-langkah berikut:

  1. Hapus instance utama cluster Anda. Menghapus instance utama tidak akan memengaruhi data cluster Anda. Anda dapat membuat instance utama baru setelah mengaktifkan kembali kunci, seperti yang dijelaskan di bagian berikut.

  2. Gunakan Cloud KMS untuk menonaktifkan kunci.

Mengaktifkan kunci

Untuk mengaktifkan kunci, ikuti langkah-langkah berikut:

  1. Gunakan Cloud KMS untuk mengaktifkan kunci.

  2. Jika Anda menghapus instance utama cluster sebelum menonaktifkan kunci, buat instance utama baru.

Mengaktifkan kunci dapat memerlukan waktu hingga tiga jam untuk diterapkan ke cluster Anda. Data cluster dapat diakses segera setelah penerapan ini terjadi.

Melihat log audit untuk kunci Cloud KMS

Untuk melihat log audit yang terkait dengan kunci CMEK tertentu, ikuti langkah-langkah berikut:

  1. Pastikan logging diaktifkan untuk Cloud KMS API di project Anda.

  2. Buka halaman Logs Explorer di konsol Google Cloud .

    Buka Logs Explorer

  3. Batasi entri log ke kunci Cloud KMS Anda dengan menambahkan baris berikut ke pembuat kueri:

    resource.type="cloudkms_cryptokey"
    resource.labels.location="REGION"
    resource.labels.key_ring_id="KEYRING"
    resource.labels.crypto_key_id="KEY"
    

    Ganti kode berikut:

    • REGION: region kunci—misalnya, us-central1.

    • KEYRING: ID key ring Cloud KMS untuk kunci.

    • KEY: ID Cloud KMS kunci.

  4. Dalam operasi normal, operasi enkripsi dan dekripsi dicatat ke dalam log dengan tingkat keparahan INFO. Entri ini dicatat ke dalam log saat instance di cluster AlloyDB Anda memvalidasi kunci Cloud KMS, yang terjadi sekitar setiap lima menit.

  5. Jika AlloyDB gagal mengakses kunci, operasi akan dicatat ke dalam log sebagai ERROR.

Melihat justifikasi akses untuk kunci Cloud EKM

Jika Anda menggunakan kunci Cloud EKM, Anda dapat menggunakan Key Access Justifications untuk melihat alasan setiap permintaan Cloud EKM. Selain itu, berdasarkan justifikasi yang diberikan, Anda dapat otomatis menyetujui atau menolak permintaan. Untuk mengetahui informasi selengkapnya, lihat Melihat dan menindaklanjuti justifikasi.