Halaman ini menjelaskan cara membuat, mengonfigurasi, dan menerapkan kunci enkripsi yang dikelola pelanggan (CMEK) untuk AlloyDB untuk PostgreSQL.
Untuk mempelajari CMEK lebih lanjut, lihat Tentang CMEK.
Membuat dan memberikan otorisasi kunci CMEK untuk AlloyDB
Buat kunci di Cloud Key Management Service (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 dius-west1
.Jika sudah memiliki kunci Cloud KMS di lokasi yang benar, Anda dapat melewati langkah ini.
Berikan akses AlloyDB ke kunci.
Dengan 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 services identity membuat atau mendapatkan agen layanan yang dapat digunakan AlloyDB untuk mengakses kunci Cloud KMS atas nama Anda.
ID akun layanan menyerupai alamat email:
Service identity created: service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com
Berikan peran
cloudkms.cryptoKeyEncrypterDecrypter
ke akun layanan:gcloud kms keys add-iam-policy-binding KEY \ --location REGION \ --keyring KEYRING \ --project=PROJECT \ --member serviceAccount:service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Ganti kode berikut:
- KEY: ID Cloud KMS kunci
- REGION: region kunci—misalnya,
us-central1
- PROJECT: ID project kunci
- KEYRING: ID key ring Cloud KMS kunci
Peran ini memastikan akun layanan memiliki izin untuk mengenkripsi dan mendekripsi dengan kunci Cloud KMS. Untuk mengetahui informasi selengkapnya, lihat Izin dan Peran Cloud KMS.
Membuat cluster yang dienkripsi CMEK
Saat membuat cluster baru, Anda dapat memilih apakah akan mengenkripsinya 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 Nama resource. Kolom Kunci enkripsi di halaman detail berikutnya 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 pencadangan
Saat membuat pencadangan baru, Anda dapat memilih apakah akan mengenkripsinya dengan enkripsi default yang dikelola Google atau menggunakan kunci CMEK. Untuk mengetahui informasi selengkapnya, lihat Membuat pencadangan on demand atau Menjadwalkan pencadangan otomatis.
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.
Melihat metode enkripsi dan kunci CMEK cadangan
Konsol
Kolom Encryption di halaman Backups menampilkan apakah setiap cluster dalam project Anda menggunakan enkripsi yang dikelola Google atau CMEK.
Untuk melihat detail utama pencadangan menggunakan CMEK, klik Pulihkan. Kolom Kunci enkripsi di 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 CLUSTER \
--project=PROJECT \
--region=REGION
Ganti kode berikut:
- CLUSTER: ID cadangan yang akan dideskripsikan
- PROJECT: ID project pencadangan
- REGION: region pencadangan—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 kunci lagi.
Namun, penonaktifan kunci dapat memerlukan waktu hingga tiga jam untuk disebarkan ke cluster AlloyDB Anda. Untuk menonaktifkan kunci sekaligus mencegah akses ke data Anda segera, ikuti langkah-langkah berikut:
Hapus instance utama cluster Anda. Hal ini tidak 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.
Perlu waktu hingga tiga jam untuk menerapkan kunci ke cluster Anda. Data cluster dapat diakses segera setelah penyebaran 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 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 kunci
- KEY: ID Cloud KMS kunci
- REGION: region kunci—misalnya,
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 {kms_name_short}}, 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 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.