Wie kann ich verhindern, dass ein Administrator gleichzeitig einen Server und sein Cloud-Backup löscht?

Wie kann ich verhindern, dass ein Administrator gleichzeitig einen Server und sein Cloud-Backup löscht?

Ich habe einige (virtuelle) Server. Sie sichern sich selbst auf Backblaze B2 mithilfe eines Anwendungsschlüssels.

Ich möchte eine Person einstellen, die mir bei der Verwaltung dieser Server hilft.

Wenn diese Person Root-Zugriff auf den Server erhält (was ich möchte), erhält sie auch Zugriff auf den B2-Anwendungsschlüssel. Das bedeutet, dass sie den Server löschen kannUndDie Sicherungskopie.

Welches Verfahren/Setup kann ich verwenden, um mich vor diesem Sonderfall zu schützen? Ich habe zwar Offline-Backups, diese sind jedoch monatlich, während die B2-Backups täglich sind.

Antwort1

In manchen Umgebungen teilen Sie die Aufgabe einfach auf zwei Teams auf – ein Team betreibt/bewacht die Server, das andere betreibt/bewacht die Backups.

der andere Teil ist meiner Meinung nach sogar noch wichtiger: Wenn das Backup beschreibbar ist, insbesondere vom System, das gesichert wird, ist es KEIN gutes Backup.

Systemisches Problem bei vielen Tools wie Borg. Am besten ist es, wenn Sie (in einer Cloud-Welt) die Backups an AWS Glacier weiterleiten können, während Sie sie in S3 mit einer Rolle speichern, die sie nur erstellen kann. Es gibt Zeitpläne für die Löschung und niemand muss in der Lage sein, das „schnell“ zu tun.

vergessen Sie auch nicht, dass es Bücher zu diesem Thema gibt.

Antwort2

So geht's:

  1. Erstellen Sie auf Backblaze B2 einen Anwendungsschlüssel, der keine Dateien löschen kann:

    b2 create-key --bucket MyBucket MyKeyName listBuckets,listFiles,readFiles,writeFiles
    
  2. Richten Sie das Backup so ein, dass es diesen Schlüssel verwendet und nicht versucht, alte Backupdateien zu löschen. Verwenden Sie in beispielsweise duplicitynicht remove-older-than, remove-all-but-n-full, oder remove-all-inc-of-but-n-full; duplyverwenden Sie in nicht purgeoder purgeIncr.

  3. Um alte Backups zu löschen, legen Sie benutzerdefinierte Lebenszykluseinstellungen für den Bucket fest. Legen Sie beispielsweise fest, dass Zeilen, die mit beginnen, duplicity-fullnach 360 Tagen ausgeblendet und nach weiteren 360 Tagen gelöscht werden. Dies gilt für Dateien, die mit duplicity-incund beginnen duplicity-new.

Aktualisieren:

B2 bietet eigentlich keine Funktion zum „Löschen einer Datei“. Jedes Mal, wenn Sie dieselbe Datei ersetzen, wird ihr Verlauf gespeichert, sodass eine Datei „Versionen“ haben kann – die neueste ist normalerweise die, die Sie benötigen. Was B2 bietet, ist eine Funktion zum „Verstecken“ einer Datei. Wenn Sie eine Datei verstecken, zeichnen Sie tatsächlich im Verlauf der Datei auf, dass die Datei „gelöscht“ wurde. Sie fügen sozusagen eine neue Dateiversion hinzu, die die versteckte oder gelöschte Datei ist.

Darüber hinaus bietet B2 auch die Möglichkeit, Dateiversionen tatsächlich zu löschen. Ein Benutzer, der nicht über die Berechtigung „deleteFiles“ verfügt, kann zwar Dateien verbergen, aber keine Dateiversionen löschen.

Meiner Meinung nach remove-...sollte die Funktionalität von Duplicity durch das Ausblenden von Dateien implementiert werden. (Es läge dann an der Bucket-Konfiguration, diese ausgeblendeten Dateiversionen nach einer gewissen Zeit tatsächlich zu löschen.) Das B2-Backend von Duplicity tut dies jedoch nicht; es löscht tatsächlich Dateiversionen.

Antwort3

In den meisten öffentlichen Clouds bedeutet SSH-Zugriff auf den Server nicht, dass Sie den Server löschen können. Es gibt einen Unterschied zwischen der Verwaltung auf dem Server und im Cloud-Konto. Sie können diese also trennen. Sie können die Berechtigungen auch ziemlich stark aufteilen, insbesondere bei Amazon AWS. Sie können jemandem beispielsweise die Berechtigung erteilen, den Server neu zu starten, ihn aber nicht zu löschen. Und AWS verfügt über die Löschschutzoption für VMs.

Heutzutage besteht die bewährte Vorgehensweise darin, ein Konfigurationsmanagement wie Chef/Puppet/Salt/Ansible zu verwenden, um Änderungen an Ihren Servern vorzunehmen, ohne sich tatsächlich bei den Servern anzumelden.

Darüber hinaus können Sie bei AWS beliebig oft Snapshots der Server erstellen. Dies ist die effizienteste Art, sie zu sichern.

verwandte Informationen