Object Storage-Versionierung

Erfahren Sie, wie Sie mit der Objektversionierung Datenschutz auf das versehentliche oder böswillige Aktualisieren oder Löschen von Object Storage-Objekten anwenden.

Die Objektversionierung ist auf Bucket-Ebene aktiviert. Bei der Versionierung wird Object Storage angewiesen, automatisch eine Objektversion zu erstellen, wenn ein neues Objekt hochgeladen, ein vorhandenes Objekt überschrieben oder ein Objekt gelöscht wird. Sie können die Objektversionierung zum Zeitpunkt der Bucket-Erstellung aktivieren oder sie in einem vorhandenen Bucket aktivieren, für den entweder zuvor noch keine Objektversionierung aktiviert wurde, oder in dem die Objektversionierung unterbrochen wurde.

Ein versionierungsfähiger Bucket kann viele Versionen eines Objekts enthalten. Es gibt immer eine neueste Version des Objekts und null oder mehr vorige Versionen.

Jede Objektversion hat eine eindeutige Versions-ID. Für bestimmte Aufgaben bei Verwendung der Befehlszeilenschnittstelle (CLI) oder API, wie das Löschen oder Wiederherstellen einer Objektversion, müssen Sie die Objektversions-ID angeben. Sie finden die Versions-ID, indem Sie die folgenden Befehle oder Vorgänge ausführen:

Weitere Informationen zum Abrufen der Versions-ID eines Objekts finden Sie unter Objektversionen in einem Bucket auflisten.

Wichtig

Die Standardpreise für Oracle Cloud Infrastructure gelten für jeden Bucket, der für die Versionierung aktiviert ist. Es werden Ihnen alle neuesten Objektversionen und vorherigen Objektversionen (einschließlich gelöschter Versionen) berechnet, die im Bucket gespeichert sind. Frühere Objektversionen werden beibehalten, bis Sie sie explizit löschen.

Die Objektversionierung erhöht die Speicherkosten. Verwenden Sie Object Lifecycle Management, um Objektversionen automatisch zu verwalten.

Aufgaben versionieren

Sie können folgende Aufgaben zur Objektversionierung ausführen:

Objektversionierungsstatus

Jeder Object Storage-Bucket hat den Objektversionierungsstatus "Deaktiviert", "Aktiviert" oder "Unterbrochen". Die Objektversionierung ist standardmäßig in einem Bucket deaktiviert. Es ist wichtig, das Verhalten im Zusammenhang mit den verschiedenen Objektversionierungsstatus zu verstehen.

Deaktiviert

Wenn die Objektversionierung in einem Bucket deaktiviert ist:

  • Die Objektversionierung wurde im Bucket nie aktiviert.

  • Wenn Sie ein Objekt mit demselben Namen wie ein vorhandenes Objekt hochladen, wird das Objekt überschrieben. Das überschriebene Objekt wird nicht beibehalten und kann nicht wiederhergestellt werden.

  • Wenn Sie ein Objekt löschen, ist der Löschvorgang dauerhaft, und Objekte können nicht wiederhergestellt werden.

aktiviert

Wenn die Objektversionierung in einem Bucket aktiviert ist:

  • Wenn Sie ein Objekt mit demselben Namen wie ein vorhandenes Objekt hochladen, wird das vorhandene Objekt zu einer vorherigen Version, und das neu hochgeladene Objekt wird zur neuesten Version.

  • Jedem hochgeladenen Objekt wird eine eindeutige Versions-ID zugewiesen. Anhand der ID können Sie Object Storage-Aktionen an bestimmten Versionen anweisen.

  • Wenn Sie ein Objekt löschen, behält Object Storage eine Version des gelöschten Objekts bei. Weitere Informationen zum Löschen von Objekten finden Sie unter Objektversion löschen.

  • Sie können die Objektversionierung nicht deaktivieren. Sie können jedoch die Versionierung unterbrechen.

Angehalten

Wenn die Objektversionierung in einem Bucket unterbrochen ist:

  • Das Upload- und Löschverhalten ist dasselbe wie bei einem Bucket, für den die Versionierung deaktiviert ist.

  • Objektversionen, die vor der Versionierungsunterbrechung erstellt wurden, werden beibehalten, außer sie werden explizit gelöscht.

  • Sie können die Objektversionierung jederzeit wieder aktivieren.

Objektversion löschen

Kein Objekt wird physisch aus einem Bucket gelöscht, für den die Versionierung aktiviert ist, bis Sie dazu explizite Aktionen ausführen. Wenn Sie ein Objekt löschen, ohne eine bestimmte Version als Ziel zu definieren, wird die aktuelle Objektversion zur vorherigen Objektversion, und es wird ein spezieller Löschmarker erstellt, der den Löschpunkt markiert. Ein Löschmarker enthält nur minimale Metadaten. Wenn Sie einen Ordner löschen, wird für jedes Objekt im Ordner ein Löschmarker erstellt. Löschen Sie den Löschmarker, damit diese gelöschte Version zur neuesten Objektversion wird.

Wenn Sie ein Objekt mit demselben Namen wie den Löschmarker hochladen, wird das hochgeladene Objekt zur neuesten Version des Objekts. Der Löschmarker bleibt erhalten. Es können mehrere Löschmarker für ein Objekt vorhanden sein, und Sie können jede beliebige vorherige Objektversion wiederherstellen.

Das Löschen der Objektversion unterscheidet sich davon. Wenn Sie eine Objektversion löschen, wird die Version dauerhaft gelöscht. Eine dauerhafte Löschung erfolgt auch, wenn Sie die neueste Version explizit nach Versions-ID löschen. Bei allen Löschvorgängen für eine bestimmte Objektversions-ID werden die Daten endgültig gelöscht.

Erforderliche IAM-Policys

Um Oracle Cloud Infrastructure verwenden zu können, muss ein Administrator Mitglied einer Gruppe sein, der von einem Mandantenadministrator Sicherheitszugriff in einer Policy erteilt wurde. Dieser Zugriff ist unabhängig davon erforderlich, ob Sie die Konsole oder die REST-API mit einem SDK, einer CLI oder einem anderen Tool verwenden. Wenn Sie eine Nachricht erhalten, dass Sie keine Berechtigung haben oder nicht autorisiert sind, fragen Sie den Mandantenadministrator, welcher Zugriffstyp Ihnen erteilt wurde und in welchem Compartment Ihr Zugriff funktioniert.

Wenn Sie mit Policys nicht vertraut sind, finden Sie weitere Informationen unter Identitätsdomains verwalten und Allgemeine Policys.

Für Administratoren:

  • Sie können eine Policy erstellen, mit der die angegebene IAM-Gruppe Object Storage-Namespaces, Buckets und die zugehörigen Objekte in allen Compartments im Mandanten verwalten kann. Beispiel: Mit der folgenden Regel kann die IAM-Gruppe "StorageAdmins" alle Aktionen im Mandanten ausführen:
    Allow group StorageAdmins to manage object-family in tenancy
  • Alternativ können Sie Policys erstellen, die den Geltungsbereich für den Zugriff reduzieren. Beispiel: Sie können Policys erstellen, mit denen die StorageAdmins-Gruppe nur Buckets und Objekte in einem Compartment namens ObjectStore im Mandanten verwalten kann:
    Allow group StorageAdmins to manage buckets in compartment ObjectStore
    Allow group StorageAdmins to manage objects in compartment ObjectStore
  • Wenn Sie restriktivere Policys erstellen, die einzelne Berechtigungen erteilen, ist BUCKET_UPDATE erforderlich, um die Versionierung zu aktivieren. Für das Hochladen von Objekten, das Überschreiben vorhandener Objekte oder das Löschen von Objekten sind die regulären Berechtigungen für diese Vorgänge erforderlich. OBJECT_VERSION_DELETE ist zum Löschen von Objektversionen erforderlich. Beispiel: So können Sie einer Gruppe namens StorageSupport die Verwaltung von Object Storage-Ressourcen erlauben, diese Gruppe jedoch daran hindern, Objektversionen dauerhaft zu entfernen:
    Allow group StorageSupport to manage object-family in tenancy where request.operation != 'DeleteObjectVersion'

Informationen zu anderen Möglichkeiten, Policys zu schreiben, finden Sie unter Details zu Object Storage, Archive Storage und Data Transfer.

Geltungsbereich und Constraints

  • Die Versionierung kann in einem Bucket in der Standard-Ebene (Object Storage) oder in der Archive Storage-Ebene aktiviert werden.
  • Das Wiederherstellen eines archivierten Objekts ist ein In-Place-Vorgang, bei dem keine Objektversion erstellt wird.
  • Sie können die aktuelle Version eines Objekts umbenennen, eine vorherige Objektversion kann jedoch nicht umbenannt werden. Durch Umbenennen eines Objekts wird ein neues Objekt erstellt.

Interaktion zwischen Versionierung und anderen Object Storage-Features

In diesem Abschnitt werden einige wichtige Punkte beschrieben, die Sie über die Interaktion zwischen Objektversionierung und anderen Object Storage-Features wissen müssen.

Erneute Verschlüsselung des Buckets

Bei der erneuten Verschlüsselung des Buckets (entweder mit Oracle oder Ihrem eigenen Masterverschlüsselungsschlüssel) werden alle vorhandenen Objektversionen ebenfalls erneut verschlüsselt.

Lifecycle Management

Lebenszyklus-Policys können die aktuelle Version oder vorherige Versionen eines Objekts archivieren. Wenn die neueste Version eines Objekts durch Lebenszyklus-Policys gelöscht wird, wird dieses Objekt zu einer vorherigen Version, und es wird ein Löschmarker erstellt. Wenn Lebenszyklus-Policys eine vorherige Version eines Objekts löschen, ist dieser Löschvorgang dauerhaft.

Objekte kopieren

Wenn Sie die neueste Version eines Objekts in einen anderen Bucket kopieren, wird nur das Objekt kopiert. Keine der vorherigen Versionen des Objekts wird kopiert. Sie können eine vorherige Version eines Objekts in einen anderen Bucket kopieren. Bei dieser Aktion wird jedoch entweder die neueste Version eines neuen Objekts oder eine neue Objektversion im Ziel-Bucket erstellt.

Replikation

  • Die Replikation kann frühere Objektversionen nicht replizieren.
  • Sie können die Versionierung in einem Replikationsziel-Bucket nicht aktivieren. Ein Ziel-Bucket ist schreibgeschützt.

Aufbewahrungsregeln

  • Sie können Aufbewahrungsregeln nicht zu einem Bucket hinzufügen, für den die Versionierung aktiviert ist.
  • Sie können die Versionierung eines Buckets mit aktiven Aufbewahrungsregeln nicht aktivieren.
  • Sie können Aufbewahrungsregeln zu einem Bucket hinzufügen, für den die Versionierung ausgesetzt ist. Sie können die Versionierung jedoch nicht mit aktiven Aufbewahrungsregeln wiederaufnehmen.