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
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-west1hanya dapat menggunakan kunci dius-west1.Jika Anda sudah memiliki kunci Cloud KMS di lokasi yang benar, Anda dapat melewati langkah ini.
Berikan akses AlloyDB ke kunci.
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=PROJECTPerintah
gcloud beta services identity createmembuat 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.comBerikan 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.cryptoKeyEncrypterDecrypterGanti 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.
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=REGIONGanti 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:
Buat cadangan cluster yang ada.
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).
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=REGIONGanti 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:
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.
Mengaktifkan kunci
Untuk mengaktifkan kunci, ikuti langkah-langkah berikut:
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:
Pastikan logging diaktifkan untuk Cloud KMS API di project Anda.
Buka halaman Logs Explorer di konsol Google Cloud .
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.
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.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.