Mencegah penghapusan instance

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

  1. Ikuti langkah-langkah untuk memulai membuat Instance.
  2. Di bagian Sesuaikan instance Anda, klik panah drop-down Tampilkan opsi konfigurasi.
  3. Di bagian Perlindungan data, pastikan bahwa kotak centang Aktifkan perlindungan penghapusan dicentang.
  4. Sesuai kebutuhan instance Anda, pilih opsi konfigurasi lainnya.
  5. 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"
}
Untuk melihat cara permintaan REST API yang mendasarinya dibuat untuk tugas ini, lihat APIs Explorer pada halaman instances:insert.

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

  1. Ikuti langkah-langkah untuk mulai mengedit Instance.
  2. Setelah Anda mengklik Edit, temukan Sesuaikan instance Anda.
  3. Di bagian Perlindungan data, centang atau hapus centang pada kotak centang Aktifkan perlindungan penghapusan.
  4. Sesuai kebutuhan instance Anda, edit opsi konfigurasi lainnya.
  5. 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"
}
Untuk melihat cara permintaan REST API yang mendasarinya dibuat untuk tugas ini, lihat APIs Explorer di halaman instances:patch.