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 menyetel opsi proteksi dari 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 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, setel 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 menyetel opsi proteksi dari 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 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.
Perencanaan 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
Menyetel proteksi dari penghapusan pada instance baru
Berikut adalah cara untuk menyetel 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, klik panah drop-down Tampilkan opsi konfigurasi.
- Di bagian Perlindungan data, pastikan bahwa kotak centang Proteksi dari penghapusan dicentang.
- Sesuai kebutuhan instance Anda, pilih opsi konfigurasi lainnya.
- Klik Create Instance.
gcloud
Untuk menyetel proteksi dari penghapusan selama pembuatan instance, gunakan perintah yang serupa dengan berikut ini:
gcloud sql instances create [INSTANCE_NAME] \ --deletion-protection
REST v1
Untuk menyetel proteksi dari 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 proteksi dari 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 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 Sesuaikan instance Anda.
- Di bagian Perlindungan data, centang atau hapus centang pada kotak centang Aktifkan proteksi dari penghapusan.
- Sesuai kebutuhan instance Anda, edit opsi konfigurasi lainnya.
- Klik Simpan.
gcloud
Untuk mengaktifkan proteksi dari penghapusan saat Anda memperbarui instance, gunakan perintah seperti berikut:
gcloud sql instances patch [INSTANCE_NAME] \ --deletion-protection
Untuk menonaktifkan proteksi dari penghapusan saat Anda memperbarui instance, gunakan perintah seperti berikut:
gcloud sql instances patch [INSTANCE_NAME] \ --no-deletion-protection
REST v1
Untuk menyetel 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 menyetel 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"
}