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
- Folgen Sie den Schritten zum Erstellen einer Instanz.
- Klicken Sie unter Instanz anpassen auf den Drop-down-Pfeil Konfigurationsoptionen einblenden.
- Prüfen Sie unter Datenschutz, ob das Kästchen Löschschutz aktivieren angeklickt ist.
- Wählen Sie nach Bedarf andere Konfigurationsoptionen für Ihre Instanz aus.
- 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" }
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
- Folgen Sie den Schritten, um mit dem Bearbeiten einer Instanz zu beginnen.
- Nachdem Sie auf Bearbeiten geklickt haben, suchen Sie den Abschnitt Instanz anpassen.
- Aktivieren oder deaktivieren Sie unter Datenschutz das Kästchen Löschschutz aktivieren.
- Bearbeiten Sie nach Bedarf für Ihre Instanz weitere Konfigurationsoptionen.
- 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. Wenn Sie den Löschschutz entfernen möchten, geben Sie in diesem Feld false
an.
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. Wenn Sie den Löschschutz entfernen möchten, geben Sie in diesem Feld false
an.
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" }