Halaman ini menjelaskan cara melindungi instance Cloud SQL dari penghapusan yang tidak disengaja.
Ringkasan
Perlindungan penghapusan instance memungkinkan Anda mencegah penghapusan instance yang ada dan yang baru secara tidak sengaja. Dengan menggunakan perlindungan penghapusan instance, Anda dapat mengamankan instance yang penting untuk aplikasi dan layanan Anda.
Anda dapat menyetel opsi perlindungan penghapusan saat membuat instance. Selain itu, Anda dapat menyetel opsi ini pada instance yang ada. Dalam kedua kasus tersebut, penghapusan dapat dicegah di tingkat instance. Secara default, opsi perlindungan penghapusan dinonaktifkan, kecuali jika Anda menggunakan Konsol Google Cloud atau Terraform untuk membuat instance.
Saat Anda meng-clone instance, instance yang baru akan menerima opsi perlindungan penghapusan (diaktifkan atau dinonaktifkan) dari instance sumber.
Merencanakan perlindungan penghapusan
Jika Anda berencana membuat instance, tentukan apakah Anda ingin melindungi instance baru dari penghapusan yang tidak disengaja. Misalnya, sebuah instance kritis harus dilindungi dengan cara ini.
Pertimbangkan juga apakah ada instance yang ingin Anda lindungi dari penghapusan yang tidak disengaja. Jika Anda memiliki beberapa instance yang ingin dilindungi, setel opsi pada setiap instance.
Mempertimbangkan perlindungan penghapusan untuk replika baca
Saat Anda membuat replika baca, replika baca tersebut tidak mendapatkan setelan perlindungan penghapusan dari instance utama; setelan ini tetap independen. Namun, Anda dapat mengaktifkan perlindungan penghapusan pada replika baca baru atau yang sudah ada.
Untuk replika baca Cloud SQL, opsi perlindungan penghapusan berfungsi dengan cara yang sama seperti untuk instance Cloud SQL.
Mengonfirmasi izin atau peran yang diperlukan
Untuk menyetel opsi perlindungan penghapusan, akun layanan instance Cloud SQL harus memiliki izin atau peran IAM tertentu.
Izin atau peran untuk membuat instance
Seperti dalam kasus operasi terkait, opsi perlindungan penghapusan memerlukan
izin cloudsql.instances.create
atau peran cloudsql.admin
. Oleh karena itu,
saat Anda membuat instance, tidak ada izin tambahan yang diperlukan untuk mengaktifkan perlindungan
penghapusan.
Izin atau peran untuk mengedit instance
Seperti dalam kasus operasi yang terkait, perubahan perlindungan penghapusan memerlukan
izin cloudsql.instances.update
atau peran cloudsql.editor
. Jadi, saat
Anda mengedit instance untuk perlindungan penghapusan, izin tambahan tidak diperlukan.
Perencanaan penghapusan instance
Jika Anda berencana menghapus instance, lakukan langkah berikut terlebih dahulu:
- Pastikan bahwa instance aman untuk dihapus
- Konfirmasi bahwa perlindungan penghapusan dinonaktifkan; jika perlu, edit instance untuk menonaktifkan perlindungan penghapusan
Batasan perlindungan penghapusan
Perlindungan penghapusan pada instance tidak mencegah:
- Menghentikan instance
- Memulai ulang instance
- Mengedit instance
- Menghapus cadangan
- Menangguhkan instance karena masalah penagihan
- Menghapus instance yang ditangguhkan karena masalah penagihan
- Menghapus instance karena penghapusan project
Menyetel perlindungan penghapusan pada instance baru
Berikut adalah cara untuk menyetel opsi perlindungan penghapusan. Secara default, opsi perlindungan penghapusan dinonaktifkan, kecuali jika Anda menggunakan Konsol Google Cloud atau Terraform untuk membuat instance.
Jika perlindungan penghapusan diaktifkan, upaya untuk menghapus instance akan gagal.
Konsol
- Ikuti langkah-langkah untuk memulai membuat Instance.
- Di bagian Sesuaikan instance Anda, klik panah drop-down Tampilkan opsi konfigurasi.
- Di bagian Perlindungan data, pastikan bahwa kotak centang Aktifkan perlindungan penghapusan dicentang.
- Sesuai kebutuhan instance Anda, pilih opsi konfigurasi lainnya.
- Klik Create Instance.
gcloud
Untuk menyetel perlindungan penghapusan selama pembuatan instance, gunakan perintah yang serupa dengan berikut ini:
gcloud sql instances create [INSTANCE_NAME] \ --deletion-protection
REST v1
Untuk menyetel perlindungan penghapusan selama pembuatan instance, tentukan
true
di kolom deletionProtection
.
Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:
- project-id: ID project Anda
- instance-id: ID instance yang diinginkan
- database-version: Versi database
- region: region yang diinginkan
- machine-type: jenis mesin yang diinginkan
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", "settings": { "tier": "machine-type", "deletionProtectionEnabled": 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/instance-id", "status": "PENDING", "user": "user@example.com", "insertTime": "2022-05-24T15:34:10.929Z", "operationType": "CREATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
Untuk menyetel perlindungan penghapusan selama pembuatan instance, tentukan
true
di kolom deletionProtection
.
Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:
- project-id: ID project Anda
- instance-id: ID instance yang diinginkan
- database-version: Versi database
- region: region yang diinginkan
- machine-type: jenis mesin yang diinginkan
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances
Meminta isi JSON:
{ "name": "instance-id", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "deletionProtectionEnabled": true } }
Untuk mengirim permintaan Anda, 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": "2022-05-26T15:37:10.929Z", "operationType": "CREATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Menyetel atau menghapus perlindungan penghapusan pada instance yang ada
Berikut adalah cara mengedit instance untuk perlindungan penghapusan. Jika Anda mengaktifkan opsi ini, upaya berikutnya untuk menghapus instance akan gagal.
Konsol
- Ikuti langkah-langkah untuk mulai mengedit Instance.
- Setelah Anda mengklik Edit, temukan Sesuaikan instance Anda.
- Di bagian Perlindungan data, centang atau hapus centang pada kotak centang Aktifkan perlindungan penghapusan.
- Sesuai kebutuhan instance Anda, edit opsi konfigurasi lainnya.
- Klik Simpan.
gcloud
Untuk mengaktifkan perlindungan penghapusan saat Anda memperbarui instance, gunakan perintah seperti berikut:
gcloud sql instances patch [INSTANCE_NAME] \ --deletion-protection
Untuk menonaktifkan perlindungan penghapusan saat Anda memperbarui instance, gunakan perintah seperti berikut:
gcloud sql instances patch [INSTANCE_NAME] \ --no-deletion-protection
REST v1
Untuk menyetel perlindungan penghapusan saat Anda memperbarui instance, tentukan
true
di kolom deletionProtection
. Untuk menghapus
perlindungan penghapusan, tetapkan false
dalam kolom tersebut.
Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:
- project-id: ID project Anda
- instance-id: ID instance yang diinginkan
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
Meminta isi JSON:
{ "settings": { "deletionProtectionEnabled": 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/instance-id", "status": "PENDING", "user": "user@example.com", "insertTime": "2022-06-1T03:42:12.281Z", "operationType": "CREATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
Untuk menyetel perlindungan penghapusan saat Anda memperbarui instance, tentukan
true
di kolom deletionProtection
. Untuk menghapus
perlindungan penghapusan, tetapkan false
dalam kolom tersebut.
Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:
- project-id: ID project Anda
- instance-id: ID instance yang diinginkan
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances/instance-id
Meminta isi JSON:
{ "settings": { "deletionProtectionEnabled": true } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang serupa seperti di bawah ini:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "PENDING", "user": "user@example.com", "insertTime": "2022-06-1T03: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" }