Löschen einer Instanz verhindern

Auf dieser Seite wird beschrieben, wie Sie Cloud SQL-Instanzen vor versehentlichem Löschen schützen.

Übersicht

Mit dem Löschschutz für Instanzen können Sie verhindern, dass vorhandene und neue Instanzen versehentlich entfernt werden. Mit dem Löschschutz für Instanzen können Sie Instanzen schützen, die für Ihre Anwendungen und Dienste wichtig sind.

Sie können den Löschschutz beim Erstellen einer Instanz festlegen. Darüber hinaus können Sie diese Option für eine vorhandene Instanz festlegen. In beiden Fällen wird das Löschen auf Instanzebene verhindert. Standardmäßig ist die Löschschutzoption deaktiviert, es sei denn, Sie verwenden die Google Cloud Console oder Terraform zum Erstellen einer Instanz.

Wenn Sie eine Instanz klonen, erhält die neue Instanz die Löschschutzoption (aktiviert oder deaktiviert) von der Quellinstanz.

Löschschutz planen

Wenn Sie eine Instanz erstellen möchten, entscheiden Sie, ob Sie die neue Instanz vor versehentlichem Löschen schützen möchten. Beispielsweise sollte eine kritische Instanz auf diese Weise geschützt werden.

Überlegen Sie sich auch, ob es vorhandene Instanzen gibt, die Sie vor versehentlichem Löschen schützen möchten. Wenn Sie mehrere Instanzen schützen möchten, legen Sie die Option für jede Instanz fest.

Löschschutz für Lesereplikate berücksichtigen

Wenn Sie ein Lesereplikat erstellen, erhält dieses Lesereplikat keine Löschschutzeinstellung von der primären Instanz. Diese Einstellung bleibt unabhängig. Sie können den Löschschutz jedoch für ein neues oder vorhandenes Lesereplikat aktivieren.

Bei Cloud SQL-Lesereplikaten funktioniert die Löschschutzoption genauso wie bei Cloud SQL-Instanzen.

Erforderliche Berechtigungen oder Rollen bestätigen

Zum Festlegen des Löschschutzoptionen muss das Dienstkonto der Cloud SQL-Instanz bestimmte Berechtigungen oder IAM-Rollen haben.

Berechtigungen oder Rollen zum Erstellen einer Instanz

Wie bei zugehörigen Vorgängen erfordert die Löschschutzoption die Berechtigung cloudsql.instances.create oder die Rolle cloudsql.admin. Daher sind beim Erstellen einer Instanz keine zusätzlichen Berechtigungen erforderlich, um den Löschschutz zu aktivieren.

Berechtigungen oder Rollen zum Bearbeiten einer Instanz

Wie bei zugehörigen Vorgängen erfordern Änderungen am Löschschutz die Berechtigung cloudsql.instances.update oder die Rolle cloudsql.editor. Wenn Sie also eine Instanz zum Löschen bearbeiten, sind keine zusätzlichen Berechtigungen erforderlich.

Löschen von Instanzen planen

Wenn Sie eine Instanz löschen möchten, gehen Sie so vor:

  • Prüfen, ob die Instanz sicher ist
  • Prüfen Sie, ob der Löschschutz deaktiviert ist; falls nötig, bearbeiten Sie die Instanz, um den Löschschutz zu deaktivieren.

Einschränkungen des Löschschutzes

Der Löschschutz für eine Instanz verhindert nicht, dass:

  • Instanz stoppen
  • Instanz neu starten
  • Instanz bearbeiten
  • Sicherungen löschen
  • Instanz aufgrund von Abrechnungsproblemen anhalten
  • Gesperrte Instanz aufgrund von Abrechnungsproblemen löschen
  • Instanz aufgrund eines Projektlöschvorgangs löschen

Löschschutz für eine neue Instanz festlegen

Sie haben folgende Möglichkeiten, die Löschschutzoption festzulegen: Standardmäßig ist die Löschschutzoption deaktiviert, es sei denn, Sie verwenden die Google Cloud Console oder Terraform zum Erstellen einer Instanz.

Wenn der Löschschutz aktiviert ist, schlägt der Versuch fehl, die Instanz zu löschen.

Console

  1. Folgen Sie den Schritten zum Erstellen einer Instanz.
  2. Klicken Sie unter Instanz anpassen auf den Drop-down-Pfeil Konfigurationsoptionen einblenden.
  3. Prüfen Sie unter Datenschutz, ob das Kästchen Löschschutz aktivieren angeklickt ist.
  4. Wählen Sie nach Bedarf andere Konfigurationsoptionen für Ihre Instanz aus.
  5. Klicken Sie auf Instanz erstellen.

gcloud

Zum Festlegen des Löschschutzes während der Instanzerstellung verwenden Sie einen Befehl wie den folgenden:

gcloud sql instances create [INSTANCE_NAME] \
    --deletion-protection

REST Version 1

Geben Sie im Feld deletionProtection den Wert true an, um den Löschschutz während der Instanzerstellung festzulegen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID
  • database-version: die Datenbankversion.
  • region: die gewünschte Region
  • machine-type: den gewünschten Maschinentyp

HTTP-Methode und URL:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances

JSON-Text anfordern:

{
  "name": "instance-id",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "deletionProtectionEnabled": true
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "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

Geben Sie im Feld deletionProtection den Wert true an, um den Löschschutz während der Instanzerstellung festzulegen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID
  • database-version: die Datenbankversion.
  • region: die gewünschte Region
  • machine-type: den gewünschten Maschinentyp

HTTP-Methode und URL:

POST https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances

JSON-Text anfordern:

{
  "name": "instance-id",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "deletionProtectionEnabled": true
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "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"
}
Informationen zum Aufbau der zugrunde liegenden REST API-Anfrage für diese Aufgabe finden Sie im APIs Explorer auf der Seite instances:insert.

Löschschutz für eine vorhandene Instanz festlegen oder entfernen

Im Folgenden finden Sie die Möglichkeiten, eine Instanz zum Löschen zu löschen. Wenn Sie die Option aktivieren, schlägt ein nachfolgender Versuch, die Instanz zu löschen, fehl.

Console

  1. Folgen Sie den Schritten, um mit dem Bearbeiten einer Instanz zu beginnen.
  2. Nachdem Sie auf Bearbeiten geklickt haben, suchen Sie den Abschnitt Instanz anpassen.
  3. Aktivieren oder deaktivieren Sie unter Datenschutz das Kästchen Löschschutz aktivieren.
  4. Bearbeiten Sie nach Bedarf für Ihre Instanz weitere Konfigurationsoptionen.
  5. Klicken Sie auf Speichern.

gcloud

Wenn Sie beim Aktualisieren einer Instanz den Löschschutz aktivieren möchten, verwenden Sie einen Befehl ähnlich dem folgenden:

gcloud sql instances patch [INSTANCE_NAME] \
    --deletion-protection

Verwenden Sie einen Befehl ähnlich dem folgenden, um den Löschschutz beim Aktualisieren einer Instanz zu deaktivieren:

gcloud sql instances patch [INSTANCE_NAME] \
    --no-deletion-protection

REST Version 1

Wenn Sie beim Aktualisieren einer Instanz den Löschschutz festlegen möchten, geben Sie true im deletionProtection-Feld an. Geben Sie in diesem Feld false an, um den Löschschutz zu entfernen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID

HTTP-Methode und URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

JSON-Text anfordern:

{
  "settings": {
    "deletionProtectionEnabled": true
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "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

Wenn Sie beim Aktualisieren einer Instanz den Löschschutz festlegen möchten, geben Sie true im deletionProtection-Feld an. Geben Sie in diesem Feld false an, um den Löschschutz zu entfernen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID

HTTP-Methode und URL:

PATCH https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances/instance-id

JSON-Text anfordern:

{
  "settings": {
    "deletionProtectionEnabled": true
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "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"
}
Informationen zur Struktur der zugrunde liegenden REST API-Anfrage für diese Aufgabe finden Sie auf der Seite "Instances: patch" im APIs Explorer.