Halaman ini menjelaskan cara menyiapkan akun layanan dan kunci untuk kunci enkripsi yang dikelola pelanggan, dan cara membuat instance yang menggunakan kunci enkripsi yang dikelola pelanggan yang dibuat secara manual. Untuk mempelajari lebih lanjut cara menggunakan kunci enkripsi yang dikelola pelanggan dengan Cloud SQL, lihat Ringkasan kunci enkripsi yang dikelola pelanggan.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Pastikan Anda memiliki peran Admin Cloud SQL di akun pengguna.
-
Enable the Cloud Key Management Service API.
-
Enable the Cloud SQL Admin API.
Alur kerja untuk membuat instance Cloud SQL dengan CMEK
- Khusus pengguna gcloud dan API: Membuat akun layanan untuk setiap project yang memerlukan kunci enkripsi yang dikelola pelanggan.
- Buat keyring dan kunci, lalu tetapkan lokasi untuk setiap kunci. Lokasinya adalah region Google Cloud.
- Khusus pengguna gcloud dan API: Memberi akun layanan akses ke kunci.
- Catat ID kunci (KMS_KEY_ID), lokasi kunci (GCP_REGION), dan ID key ring (KMS_KEYRING_ID).
- Buka project dan buat instance Cloud SQL
dengan opsi berikut:
- Lokasi yang sama dengan kunci enkripsi yang dikelola pelanggan
- Konfigurasi kunci yang dikelola pelanggan
- Kunci enkripsi ID yang dikelola pelanggan
Instance Cloud SQL Anda sekarang diaktifkan dengan CMEK.
Membuat akun layanan
Anda perlu membuat akun layanan untuk setiap project yang memerlukan kunci enkripsi yang dikelola pelanggan.
Untuk mengizinkan pengguna mengelola akun layanan, berikan salah satu peran berikut:
- Pengguna Akun Layanan (
roles/iam.serviceAccountUser
): Mencakup izin untuk mencantumkan akun layanan, mendapatkan detail tentang akun layanan, dan meniru identitas akun layanan. - Admin Akun Layanan (
roles/iam.serviceAccountAdmin
): Mencakup izin untuk mencantumkan akun layanan dan mendapatkan detail tentang akun layanan. Juga mencakup izin untuk membuat, memperbarui, dan menghapus akun layanan, serta melihat atau mengubah kebijakan Cloud SQL untuk MySQL pada akun layanan.
Saat ini, Anda hanya dapat menggunakan perintah gcloud CLI untuk membuat jenis akun layanan yang Anda butuhkan untuk kunci enkripsi yang dikelola pelanggan. Jika Anda menggunakan Konsol, Cloud SQL akan otomatis membuat akun layanan ini untuk Anda.
gcloud
gcloud beta services identity create \ --service=sqladmin.googleapis.com \ --project=PROJECT_ID
Terraform
Untuk membuat akun layanan, gunakan resource Terraform.
Menerapkan perubahan
Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tf
yang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade
:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka project Google Cloud Anda untuk melihat hasilnya. Di Konsol Google Cloud, buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
Perintah sebelumnya menampilkan nama akun layanan. Anda dapat menggunakan nama akun layanan ini selama prosedur di bagian Memberi akun layanan akses ke kunci.
Buat kunci
Anda dapat membuat kunci di project Google Cloud yang sama dengan instance Cloud SQL atau di project pengguna yang terpisah. Lokasi key ring Cloud KMS harus cocok dengan region tempat Anda ingin membuat instance Cloud SQL. Kunci multi-region atau region global tidak akan berfungsi. Permintaan pembuatan instance Cloud SQL akan gagal jika region tidak cocok.
Untuk membuat kunci Cloud KMS:
Konsol
-
Di konsol Google Cloud, buka halaman Key management.
- Klik Create key ring.
- Tambahkan Nama key ring. Catat nama ini karena Anda akan memerlukannya saat memberikan akses ke kunci tersebut kepada akun layanan.
- Tambahkan Lokasi key ring.
- Klik Buat. Halaman Buat kunci akan terbuka.
- Tambahkan Nama kunci.
- Untuk Tujuan, pilih Symmetric encrypt/decrypt.
- Pilih Periode rotasi dan Mulai pada tanggal.
- Klik Buat.
- Pada tabel Kunci , klik tiga titik di kolom terakhir, lalu pilih Salin ID resource atau tuliskan. Kunci ini adalah KMS_KEY_ID. Anda memerlukan KMS_KEY_ID saat memberikan akses kunci ke akun layanan.
gcloud
- Buat key ring baru.
Tuliskan nama ini karena Anda akan memerlukannya saat memberikan akses kunci ke akun layanan.gcloud kms keyrings create KMS_KEYRING_ID \ --location=GCP_REGION
- Buat kunci pada key ring.
Tuliskan nama ini karena Anda akan memerlukannya saat memberikan akses kunci ke akun layanan.gcloud kms keys create KMS_KEY_ID \ --location=GCP_REGION \ --keyring=KMS_KEYRING_ID \ --purpose=encryption
Terraform
Untuk membuat keyring, gunakan resource Terraform.
Untuk membuat kunci, gunakan resource Terraform.
Terapkan konfigurasi Terraform:
terraform apply
Beri akses akun layanan ke kunci
Saat membuat instance Cloud SQL dengan CMEK, Anda hanya perlu melakukan prosedur ini jika menggunakan gcloud atau API. Anda dapat melakukan prosedur ini jika mengalami masalah izin setelah instance dibuat.
Untuk memberikan akses akun layanan:
Konsol
-
Di konsol Google Cloud, buka halaman Key management.
- Untuk memilih project yang menghosting kunci, gunakan pemilih project.
- Klik nama key ring.
- Klik nama kunci.
- Klik tab Izin.
- Untuk membuka panel, klik Berikan akses.
- Masukkan akun layanan sebagai akun utama dan pilih "Cloud KMS CryptoKey Encrypter/Decrypter" sebagai peran.
- Klik Simpan.
Atau, Anda juga dapat memberikannya di halaman IAM project.
gcloud
gcloud kms keys add-iam-policy-binding KMS_KEY_ID \ --location=GCP_REGION \ --keyring=KMS_KEYRING_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloud-sql.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Terraform
Untuk memberikan akses ke kunci, gunakan resource Terraform.
Terapkan konfigurasi Terraform:
terraform apply
Membuat instance Cloud SQL dengan CMEK
Untuk membuat instance dengan kunci enkripsi yang dikelola pelanggan:
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Klik Buat instance.
- Pilih mesin database.
- Masukkan nama untuk instance. Jangan menyertakan informasi sensitif atau informasi identitas pribadi dalam nama instance Anda; informasi ini terlihat secara eksternal. Anda tidak perlu menyertakan project ID dalam nama instance. ID ini dibuat secara otomatis jika diperlukan (misalnya, di file log).
- Masukkan sandi untuk
'root'@'%'
pengguna. - Tetapkan region untuk instance Anda. Tempatkan instance Anda di region yang sama dengan resource yang mengaksesnya. Pada sebagian besar kasus, Anda tidak perlu menentukan zona.
- Di bagian Opsi konfigurasi, pilih semua opsi konfigurasi hingga Anda mencapai Jenis mesin dan penyimpanan.
- Perluas Jenis mesin dan penyimpanan.
- Di bagian Enkripsi, pilih Kunci yang dikelola pelanggan.
- Pilih kunci KMS dari menu dropdown atau masukkan KMS_KEY_ID secara manual. Hanya kunci KMS dalam project dan region yang sama dengan instance yang ditampilkan. Versi kunci utama dari kunci digunakan, sehingga jika versi kunci diberikan dalam nama kunci, versi tersebut akan dipangkas. Untuk memilih kunci KMS milik project lain tetapi berada di region yang sama, pilih Tidak melihat kunci Anda? Masukkan kunci ID resource dan masukkan KMS_KEY_ID yang diambil sebelumnya.
- Jika akun layanan tidak memiliki izin untuk mengenkripsi/mendekripsi dengan
kunci yang dipilih, pesan akan ditampilkan. Jika hal ini terjadi, klik Grant untuk
untuk memberikan peran IAM pada akun layanan
roles/cloudkms.cryptoKeyEncrypterDecrypter>
dengan kunci KMS yang dipilih. - Setelah opsi konfigurasi dipilih, klik Buat.
- Anda melihat pesan yang menjelaskan implikasi penggunaan kunci enkripsi yang dikelola pelanggan. Baca dan konfirmasi untuk melanjutkan pembuatan instance.
gcloud
gcloud sql instances create INSTANCE_NAME \ --project=PROJECT_ID \ --disk-encryption-key=KMS_KEY_ID \ --database-version=VERSION \ --tier=MACHINE_TYPE \ --region=REGION \ --root-password=INSERT-PASSWORD-HERE
Terraform
Untuk membuat instance dengan CMEK, gunakan resource Terraform.
Menghapus perubahan
Untuk menghapus perubahan Anda, lakukan langkah-langkah berikut:
- Untuk menonaktifkan perlindungan penghapusan, di file konfigurasi Terraform Anda, tetapkan
argumen
deletion_protection
kefalse
.deletion_protection = "false"
- Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan
memasukkan
yes
pada prompt:terraform apply
-
Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform destroy
REST v1
Untuk membuat instance dengan kunci enkripsi yang dikelola pelanggan, teruskandiskEncryptionConfiguration
ke perintah.
Sebelum menggunakan salah satu data permintaan, buat pengganti berikut:
- project-id: ID project
- instance-id: ID instance
- region: Wilayah
- database-version: String versi Emum (misalnya, MYSQL_8_0)
- kms-resource-id: ID yang Anda terima setelah membuat kunci.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
Meminta isi JSON:
{ "name":"instance-id", "region":"region", "databaseVersion": "database-version", "diskEncryptionConfiguration" : { "kmsKeyName" : "kms-resource-id" }, "settings": { "backupConfiguration": { "binaryLogEnabled": true, "enabled":true } } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
Untuk membuat instance dengan kunci enkripsi yang dikelola pelanggan, teruskandiskEncryptionConfiguration
ke perintah.
Sebelum menggunakan salah satu data permintaan, buat pengganti berikut:
- project-id: ID project
- instance-id: ID instance
- region: Wilayah
- database-version: String versi Emum (misalnya, MYSQL_8_0)
- kms-resource-id: ID yang Anda terima setelah membuat kunci.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances
Meminta isi JSON:
{ "name":"instance-id", "region":"region", "databaseVersion": "database-version", "diskEncryptionConfiguration" : { "kmsKeyName" : "kms-resource-id" }, "settings": { "backupConfiguration": { "binaryLogEnabled": true, "enabled":true } } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Membuat cadangan untuk instance yang mendukung CMEK
Saat Anda membuat cadangan instance Cloud SQL, cadangan akan dienkripsi dengan versi kunci utama yang sama dengan kunci yang dikelola pelanggan dari instance utama. Jika instance Anda menggunakan CMEK yang dibuat oleh Autokey Cloud KMS, cadangan masih menggunakan kunci yang sama dengan instance utama; Autokey tidak membuat kunci untuk cadangan.
Lihat Membuat dan mengelola pencadangan sesuai permintaan dan pencadangan otomatis.
Anda akan melihat pesan pada formulir Buat cadangan yang bertuliskan: "Cadangan Anda akan dienkripsi dengan versi utama kunci enkripsi yang dikelola pelanggan dari instance ini. Jika versi kunci ini dimusnahkan atau dinonaktifkan, semua data cadangan yang dienkripsi dengan versi kunci tersebut akan dihapus secara permanen. Anda dapat memeriksa versi utama untuk kunci tersebut di Cloud KMS."
Di halaman cadangan, daftar cadangan yang diaktifkan dengan kunci enkripsi yang dikelola pelanggan memiliki dua kolom tambahan. Satu kolom yang menunjukkan bahwa cadangan adalah untuk instance yang mendukung CMEK, dan kolom yang menampilkan versi kunci yang digunakan untuk mengenkripsi cadangan.
Membuat replika untuk instance yang mendukung CMEK
Saat Anda membuat instance replika baca Cloud SQL di region yang sama, replika tersebut akan mewarisi kunci enkripsi yang dikelola pelanggan yang sama dengan instance induk. Jika Anda membuat replika baca di region yang berbeda, Anda akan diberi daftar baru kunci enkripsi yang dikelola pelanggan untuk dipilih. Setiap region menggunakan kumpulan kuncinya sendiri.
Lihat Membuat replika baca.
Di halaman Buat replika baca, Anda melihat informasi berikut:
- Enkripsi menampilkan dikelola pelanggan.
- Kunci enkripsi untuk replika ditampilkan.
- Ada pesan yang menyatakan "Replika Anda akan dienkripsi dengan kunciinstance utama yang dikelola pelanggan. Jika kunci ini dihancurkan, semua data yang dienkripsi dengan kunci tersebut akan dihapus secara permanen."
Untuk replika lintas-region, Anda akan melihat pesan berikut:
"Replika lintas region Anda akan dienkripsi dengan kunci yang dikelola pelanggan yang dipilih. Jika kunci ini dihancurkan, semua data yang dienkripsi dengan kunci tersebut akan dihapus secara permanen."
Membuat clone instance yang mendukung CMEK
Saat Anda membuat clone instance Cloud SQL, clone tersebut akan mewarisi kunci enkripsi yang dikelola pelanggan yang sama dengan yang digunakan untuk mengenkripsi instance sumber.
Lihat Instance meng-clone.
Di halaman Buat clone, Anda akan melihat informasi berikut:
- Enkripsi menampilkan dikelola pelanggan.
- Kunci enkripsi untuk clone ditampilkan.
- Muncul pesan yang menyatakan "clone Anda akan dienkripsi dengan kunci yang dikelola pelanggan pada instance sumber. Jika kunci ini dihancurkan, semua data yang dienkripsi dengan kunci tersebut akan dihapus secara permanen."
Melihat informasi penting untuk instance yang mendukung CMEK
Setelah berhasil membuat instance Cloud SQL, Anda dapat melihat daftar instance atau halaman ringkasan instance untuk melihat bahwa instance tersebut dibuat menggunakan kunci enkripsi yang dikelola pelanggan. Detail tersebut juga menunjukkan kunci yang digunakan untuk membuat instance.
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Dalam daftar Instance, scroll ke kanan sampai Anda melihat kolom Enkripsi . Dalam kolom ini, Anda akan melihat Dikelola Google dan Dikelola pelanggan.
- Klik nama instance untuk membuka halaman Ringkasan. Kunci enkripsi yang dikelola pelanggan tercantum di panel Konfigurasi .
Enkripsi ulang instance atau replika berkemampuan CMEK yang ada
Anda dapat mengenkripsi ulang instance dan replika Cloud SQL yang ada dengan versi kunci utama terbaru. Untuk mengetahui informasi selengkapnya tentang mengenkripsi ulang instance atau replika aktif CMEK yang ada, lihat Tentang kunci.
Memperoleh versi kunci utama yang baru
Untuk mengenkripsi ulang instance atau replika dengan versi baru, Anda memerlukan versi kunci utama baru. Jika memerlukan versi kunci baru untuk instance, Anda harus merotasi kunci menggunakan Cloud Key Management Service. Untuk merotasi kunci utama, lihat Merotasi kunci.
Setelah rotasi kunci Anda selesai, tunggu hingga perubahan kunci utama diterapkan sebelum Anda mengenkripsi ulang instance. Jika perubahan versi kunci Anda tidak konsisten, instance Anda akan terus menggunakan versi kunci lama setelah enkripsi ulang. Untuk informasi selengkapnya, lihat Konsistensi versi kunci.
Enkripsi ulang instance berkemampuan CMEK
Setelah rotasi kunci selesai, enkripsi ulang instance atau replika yang mendukung CMEK Anda.
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Di bagian Konfigurasi, klik Enkripsi ulang instance.
- Pada dialog yang muncul, konfirmasi pilihan Anda dengan mengklik Enkripsi ulang.
gcloud
Untuk mengenkripsi ulang instance atau replika, jalankan perintah berikut:
gcloud sql instances reencrypt INSTANCE_NAME
INSTANCE_NAME
dengan nama instance atau replika
yang Anda enkripsi ulang.
REST v1
Untuk mengenkripsi ulang instance atau replika dengan kunci baru Anda, jalankan perintah berikut:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
Sebelum menggunakan salah satu data permintaan, buat pengganti berikut:
- PROJECT_ID: ID project
- INSTANCE_ID: ID instance
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id
/instances/instance-id
", "status": "PENDING", "user": "user@example.com", "insertTime": "2023-06-28T21:19:09.503Z", "operationType": "REENCRYPT", "name": "operation-id
", "targetId": "instance-id
", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id
/operations/operation-id
", "targetProject": "project-id
" }
REST v1beta4
Untuk mengenkripsi ulang instance atau replika dengan kunci baru Anda, jalankan perintah berikut:POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:
- PROJECT_ID: ID project
- INSTANCE_ID: ID instance
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id
/instances/instance-id
", "status": "PENDING", "user": "user@example.com", "insertTime": "2023-06-28T21:22:13.663Z", "operationType": "REENCRYPT", "name": "operation-id
", "targetId": "instance-id
", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id
/operations/operation-id
", "targetProject": "project-id
" }
Cadangan enkripsi ulang otomatis
Saat Anda mengenkripsi ulang instance utama dengan versi kunci utama baru, Cloud SQL secara otomatis membuat cadangan sesuai permintaan yang disebut cadangan enkripsi ulang.
Dalam daftar cadangan untuk
instance Cloud SQL, cadangan enkripsi ulang dicantumkan sebagai jenis on-demand
dan diberi label dengan backup created automatically for data before CMEK re-encryption
.
Seperti cadangan sesuai permintaan lainnya, cadangan enkripsi ulang akan tetap ada hingga Anda menghapusnya atau menghapus instance.
Batasan enkripsi ulang
Saat Anda mengenkripsi ulang instance, perhatikan batasan berikut:
- Anda tidak dapat melakukan operasi admin lain pada instance saat operasi enkripsi ulang sedang berlangsung.
- Operasi enkripsi ulang memicu periode nonaktif yang bergantung pada ukuran replika atau instance.
- Replika instance tidak dienkripsi ulang jika suatu instance terenkripsi. Anda perlu mengenkripsi ulang setiap replika secara terpisah.
- Cadangan tidak secara otomatis dienkripsi ulang dengan versi kunci baru saat Anda mengenkripsi ulang instance. Untuk memulihkan cadangan atau pemulihan point-in-time ke waktu setelah cadangan diambil, Anda harus menyimpan versi kunci Cloud KMS yang digunakan untuk mengenkripsi cadangan.
Untuk pemecahan masalah, lihat tabel pemecahan masalah enkripsi ulang.
Gunakan Cloud External Key Manager (Cloud EKM)
Untuk melindungi data dalam instance Cloud SQL, Anda dapat menggunakan kunci yang Anda kelola dalam partner pengelolaan kunci eksternal yang didukung. Untuk informasi selengkapnya, lihat Cloud External Key Manager, termasuk bagian Pertimbangan .
Jika Anda sudah siap untuk membuat kunci Cloud EKM, lihat Mengelola kunci Cloud EKM. Setelah kunci dibuat, masukkan nama kunci tersebut saat Anda membuat instance Cloud SQL.
Anda dapat menggunakan Key Access Justifications (KAJ) sebagai bagian dari Cloud EKM. KAJ memungkinkan Anda melihat alasan setiap permintaan Cloud EKM. Selain itu, berdasarkan justifikasi yang diberikan, Anda dapat otomatis menyetujui atau menolak permintaan. Untuk mempelajari lebih lanjut, lihat Ringkasan.
Dengan demikian, KAJ memberikan kontrol tambahan atas data Anda dengan memberikan justifikasi untuk setiap upaya untuk mendekripsi data.
Google tidak memiliki kontrol atas ketersediaan kunci dalam sistem partner pengelolaan kunci eksternal.
Menonaktifkan dan mengaktifkan kembali versi kunci
Lihat topik berikut:
Memecahkan masalah
Bagian ini menjelaskan hal-hal yang perlu dicoba saat Anda menerima pesan error saat menyiapkan atau menggunakan instance yang mendukung CMEK.
Operasi administrator Cloud SQL, seperti pembuatan, clone, atau update, mungkin gagal karena error Cloud KMS, dan tidak ada peran atau izin. Penyebab kegagalan umum meliputi hilangnya versi kunci Cloud KMS, versi kunci Cloud KMS dinonaktifkan atau dihancurkan, izin IAM tidak memadai untuk mengakses versi kunci Cloud KMS, atau versi kunci Cloud KMS berada dalam region yang berbeda dengan instance Cloud SQL. Gunakan tabel pemecahan masalah berikut untuk mendiagnosis dan menyelesaikan masalah umum.
Tabel pemecahan masalah kunci enkripsi yang dikelola pelanggan
Untuk error ini... | Masalahnya mungkin adalah... | Coba langkah ini... |
---|---|---|
Akun layanan per-project, per-produk tidak ditemukan | Nama akun layanan tersebut tidak tepat. | Pastikan Anda membuat akun layanan untuk project pengguna yang tepat.
|
Tidak dapat memberikan akses ke akun layanan. | Akun pengguna tidak memiliki izin untuk memberikan akses ke akun layanan ini. | Tambahkan peran Organization Administrator ke akun pengguna atau layanan Anda.
|
Versi kunci Cloud KMS dihancurkan | Versi kunci tersebut sudah dihancurkan. | Jika versi kunci tersebut dihancurkan, Anda tidak dapat menggunakannya untuk mengenkripsi atau mendekripsi data. |
Versi kunci Cloud KMS dinonaktifkan | Versi kunci tersebut dinonaktifkan. | Aktifkan kembali versi kunci Cloud KMS.
|
Izin tidak memadai untuk menggunakan kunci Cloud KMS | Peran cloudkms.cryptoKeyEncrypterDecrypter hilang pada akun pengguna atau
layanan yang Anda gunakan untuk menjalankan operasi pada instance Cloud SQL, atau
versi kunci Cloud KMS tidak ada. |
Di project Google Cloud yang menghosting kunci, tambahkan peran cloudkms.cryptoKeyEncrypterDecrypter ke akun pengguna atau layanan Anda.
Jika peran tersebut sudah diberikan ke akun Anda, lihat Membuat kunci untuk mempelajari cara membuat versi kunci baru. Lihat catatan. |
Kunci Cloud KMS tidak ditemukan. | Versi kunci tersebut tidak ada. | Buat versi kunci baru. Lihat Membuat kunci. Lihat catatan. |
Instance Cloud SQL dan versi kunci Cloud KMS berada di region yang berbeda. | Instance Cloud SQL dan versi kunci Cloud KMS harus berada dalam region yang sama. Tindakan ini tidak dapat dilakukan jika versi kunci Cloud KMS berada di region global atau multi-region. | Buat versi kunci pada region yang sama di mana Anda membuat instance. Lihat Membuat kunci. Lihat catatan. |
Versi kunci Cloud KMS dipulihkan, tetapi instance masih ditangguhkan | Versi kunci dinonaktifkan atau tidak memberikan izin yang memadai. | Aktifkan kembali versi kunci, dan berikan peran cloudkms.cryptoKeyEncrypterDecrypter
kepada pengguna atau akun layanan Anda di project Google Cloud yang menghosting kunci. |
Tabel pemecahan masalah enkripsi ulang
Untuk error ini... | Masalahnya mungkin adalah... | Coba langkah ini... |
---|---|---|
Enkripsi ulang resource CMEK gagal karena kunci Cloud KMS tidak dapat diakses. Pastikan versi kunci utama diaktifkan dan izin tersebut diberikan dengan tepat. | Versi kunci dinonaktifkan atau tidak memberikan izin yang memadai. | Mengaktifkan kembali versi kunci Cloud KMS: Di project Google Cloud yang menghosting kunci, pastikan peran |
Enkripsi resource CMEK gagal karena terjadi error pada server internal Silakan coba kembali nanti | Terjadi error server internal. | Coba enkripsi ulang kembali. Untuk mengetahui informasi selengkapnya, lihat Mengenkripsi ulang instance atau replika berkemampuan CMEK yang ada |
Langkah berikutnya
- Konfigurasi akses ke instance.
- Menghubungkan ke instance dengan klien.
- Buat database pada instance.
- Impor data ke instance.
- Buat pengguna pada instance.
- Pelajari lebih lanjut setelan instance.
- Pelajari cara menambahkan justifikasi akses kunci ke kunci Anda.