Halaman ini menjelaskan cara melindungi instance Cloud SQL dari penghapusan yang tidak disengaja.
Ringkasan
Proteksi dari penghapusan instance memungkinkan Anda mencegah penghapusan instance yang ada dan yang baru secara tidak sengaja. Dengan menggunakan proteksi dari penghapusan instance, Anda dapat mengamankan instance yang penting untuk aplikasi dan layanan Anda.
Anda dapat mengaktifkan opsi proteksi dari penghapusan saat membuat instance. Selain itu, Anda dapat mengaktifkan opsi ini pada instance yang ada. Dalam kedua kasus tersebut, penghapusan dapat dicegah di tingkat instance. Secara default, opsi proteksi dari 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 proteksi dari penghapusan (diaktifkan atau dinonaktifkan) dari instance sumber.
Merencanakan proteksi dari 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, aktifkan opsi pada setiap instance.
Mempertimbangkan proteksi dari 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 proteksi dari penghapusan pada replika baca baru atau yang sudah ada.
Untuk replika baca Cloud SQL, opsi proteksi dari penghapusan berfungsi dengan cara yang sama seperti untuk instance Cloud SQL.
Mengonfirmasi izin atau peran yang diperlukan
Untuk mengaktifkan opsi proteksi dari penghapusan, akun layanan yang terkait dengan instance Cloud SQL harus memiliki izin atau peran IAM tertentu.
Izin atau peran untuk membuat instance
Seperti dalam kasus operasi terkait, opsi proteksi dari 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 proteksi dari penghapusan memerlukan
izin cloudsql.instances.update atau peran cloudsql.editor. Jadi, saat Anda mengedit instance untuk proteksi dari penghapusan, izin tambahan tidak diperlukan.
Merencanakan penghapusan instance
Jika Anda berencana menghapus instance, lakukan langkah berikut terlebih dahulu:
- Pastikan bahwa instance aman untuk dihapus
- Konfirmasi bahwa proteksi dari penghapusan dinonaktifkan; jika perlu, edit instance untuk menonaktifkan proteksi dari penghapusan
Batasan proteksi dari penghapusan
Proteksi dari 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
Mengaktifkan proteksi dari penghapusan pada instance baru
Berikut adalah cara mengaktifkan opsi proteksi dari penghapusan. Secara default, opsi proteksi dari penghapusan dinonaktifkan, kecuali jika Anda menggunakan Google Cloud konsol atau Terraform untuk membuat instance.
Jika proteksi dari penghapusan diaktifkan, upaya untuk menghapus instance akan gagal.
Konsol
- Ikuti langkah-langkah untuk memulai membuat Instance.
- Di bagian Sesuaikan instance Anda, luaskan Tampilkan opsi konfigurasi.
- Luaskan Perlindungan Data.
- Di bagian Perlindungan Data, pastikan kotak centang Cegah penghapusan instance dicentang.
- Sesuai kebutuhan instance Anda, pilih opsi konfigurasi lainnya.
- Klik Create instance.
gcloud
Untuk mengaktifkan proteksi dari penghapusan selama pembuatan instance, gunakan perintah
gcloud sql instances create, seperti berikut:
gcloud sql instances create INSTANCE_NAME \ --deletion-protection
REST v1
Untuk mengaktifkan proteksi dari penghapusan selama pembuatan instance, tentukan
true di kolom deletionProtection.
Sebelum menggunakan salah satu data permintaan, lakukan 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 mengaktifkan proteksi dari penghapusan selama pembuatan instance, tentukan
true di kolom deletionProtection.
Sebelum menggunakan salah satu data permintaan, lakukan 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"
}
Mengaktifkan atau menonaktifkan proteksi dari penghapusan pada instance yang ada
Berikut adalah cara mengedit instance untuk proteksi dari 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 bagian Sesuaikan instance Anda dan luaskan Tampilkan opsi konfigurasi.
- Luaskan Perlindungan Data.
- Di bagian Perlindungan Data, centang atau hapus centang pada kotak centang Cegah penghapusan instance.
- Sesuai kebutuhan instance Anda, edit opsi konfigurasi lainnya.
- Klik Simpan.
gcloud
Untuk mengaktifkan proteksi dari penghapusan saat Anda memperbarui instance, gunakan perintah
gcloud sql instances patch, seperti berikut:
gcloud sql instances patch INSTANCE_NAME \ --deletion-protection
Untuk menonaktifkan proteksi dari penghapusan saat Anda memperbarui instance, gunakan perintah
gcloud sql instances patch
yang serupa dengan berikut ini:
gcloud sql instances patch INSTANCE_NAME \ --no-deletion-protection
REST v1
Untuk mengaktifkan proteksi dari penghapusan saat Anda memperbarui instance, tentukan
true di kolom deletionProtection. Untuk menghapus proteksi dari 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 mengaktifkan proteksi dari penghapusan saat Anda memperbarui instance, tentukan
true di kolom deletionProtection. Untuk menghapus proteksi dari 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"
}