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 aktivieren. Außerdem können Sie diese Option für eine vorhandene Instanz aktivieren. 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, aktivieren Sie die Option für jede Instanz.
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 Aktivieren des Löschschutzes muss das Dienstkonto, das der Cloud SQL-Instanz zugeordnet ist, 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 für den Löschschutz 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 aktivieren
Sie haben folgende Möglichkeiten, die Löschschutzoption zu aktivieren: 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.
- Maximieren Sie im Bereich Instanz anpassen die Option Konfigurationsoptionen einblenden.
- Maximieren Sie Datenschutz.
- Prüfen Sie im Abschnitt Datenschutz, ob das Kästchen Instanzlöschung verhindern angeklickt ist.
- Wählen Sie nach Bedarf andere Konfigurationsoptionen für Ihre Instanz aus.
- Klicken Sie auf Instanz erstellen.
gcloud
Wenn Sie den Löschschutz während der Instanzerstellung aktivieren möchten, verwenden Sie den Befehl gcloud sql instances create, wie im folgenden Beispiel gezeigt:
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 zu aktivieren.
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 zu aktivieren.
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 aktivieren oder deaktivieren
Im Folgenden finden Sie die Möglichkeiten, eine Instanz für den Löschschutz zu bearbeiten. 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 und maximieren Sie Konfigurationsoptionen einblenden.
- Maximieren Sie Datenschutz.
- Aktivieren oder deaktivieren Sie im Abschnitt Datenschutz das Kästchen Instanzlöschung verhindern.
- 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 den Befehl gcloud sql instances patch, ähnlich wie im folgenden Beispiel:
gcloud sql instances patch INSTANCE_NAME \ --deletion-protection
Verwenden Sie den Befehl gcloud sql instances patch, um den Löschschutz beim Aktualisieren einer Instanz zu deaktivieren, wie im folgenden Beispiel:
gcloud sql instances patch INSTANCE_NAME \ --no-deletion-protection
REST Version 1
Wenn Sie beim Aktualisieren einer Instanz den Löschschutz aktivieren möchten, geben Sie true im Feld deletionProtection 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 aktivieren möchten, geben Sie true im Feld deletionProtection 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"
}