Amazon Simple Storage Service
Entwicklerhandbuch (API-Version 2006-03-01)

Verwenden von Versioning

Das Versioning ermöglicht Ihnen, mehrere Versionen eines Objekts im selben Bucket aufzubewahren. Sie können Versioning verwenden, um sämtliche Versionen aller Objekte in Ihrem Amazon S3 Bucket zu speichern, abzurufen oder wiederherzustellen. Daten lassen sich dank Versioning nach unbeabsichtigten Benutzeraktionen und Anwendungsfehlern leicht wiederherstellen.

Beispielsweise könnten Sie in einem Bucket zwei Objekte mit demselben Schlüssel haben, aber mit unterschiedlichen Versions-IDs, wie beispielsweise photo.gif (Version 111111) und photo.gif (Version 121212).

Versionsfähige Bucktes erlauben Ihnen, Objekte nach einem versehentlichen Löschen oder Überschreiben wiederherzustellen. Beispiel:

  • Wenn Sie ein Objekt löschen, fügt Amazon S3 eine Löschmarkierung hinzu, statt des dauerhaft zu entfernen. Die Löschmarkierung wird zur aktuellen Objektversion. Sie können die vorherige Version immer wieder herstellen. Weitere Informationen finden Sie unter Löschen von Objektversionen.

  • Wenn Sie ein Objekt überschreiben, entsteht eine neue Objektversion im Bucket. Sie können die vorherige Version immer wieder herstellen.

Wichtig

Wenn in dem nicht-versionierten Bucket eine Lebenszyklus-Richtlinie für den Ablauf von Objekten vorhanden ist und Sie dasselbe Verhalten hinsichtlich einer dauerhaften Löschung beim Aktivieren des Versionings beibehalten möchten, müssen Sie eine langfristige Ablaufrichtlinie hinzufügen. Die Lebenszyklus-Richtlinie für den langfristigen Ablauf verwaltet das Löschen der langfristigen Objektversionen im versionsfähigen Bucket. (Ein versionsfähiges Bucket behält eine kurzfristige und null oder mehr langfristige Objektversionen.) Weitere Informationen finden Sie unter How Do I Create a Lifecycle Policy for an S3 Bucket? (Wie erstelle ich eine Lebenszyklus-Richtlinie für einen S3-Bucket?) im Konsolenbenutzerhandbuch für Amazon Simple Storage Service.

Buckets können einen von drei Status haben: nicht versionsfähig (Standard), versionsfähig oder mit ausgesetztem Versioning.

Wichtig

Nachdem Sie einen Bucket versionsfähig gemacht haben, kann er nicht in einen nicht versionsfähigen Status zurückgesetzt werden. Sie können das Versioning für diesen Bucket jedoch aussetzen.

Der Versioning-Status gilt für alle (niemals für eine Untermenge) der Objekte in diesem Bucket. Wenn Sie das Versioning für einen Bucket zum ersten Mal aktivieren, werden die Objekte darin anschließend immer als Versionen gespeichert und erhalten eine Versions-ID. Beachten Sie Folgendes:

  • Objekte, die in Ihrem Bucket gespeichert waren, bevor Sie den Versioning-Status einrichten, haben die Versions-ID null. Wenn Sie das Versioning aktivieren, ändern sich die in Ihrem Bucket vorhandenen Objekte nicht mehr. Was sich ändert, ist, wie Amazon S3 die Objekte in zukünftigen Anfragen verarbeitet. Weitere Informationen finden Sie unter Verwaltung von Objekten in einem Bucket mit aktiviertem Versioning.

  • Der Bucket-Eigentümer (oder ein anderer Benutzer mit geeigneten Berechtigungen) kann das Versioning aussetzen, um zu verhindern, dass sich weitere Objektversionen ansammeln. Wenn Sie das Versioning aussetzen, ändern sich die in Ihrem Bucket vorhandenen Objekte nicht. Was sich ändert, ist, wie Amazon S3 die Objekte in zukünftigen Anfragen verarbeitet. Weitere Informationen finden Sie unter Verwaltung von Objekten in einem Bucket mit ausgesetztem Versioning.

Konfigurieren des Versionings für einem Bucket

Sie können das Versioning für einen Bucket unter Verwendung einer der folgenden Methoden konfigurieren:

  • Konfigurieren des Versionings mithilfe der Amazon S3-Konsole.

  • Programmgesteuertes Konfigurieren des Versionings mithilfe der AWS SDKs.

    Sowohl die Konsole als auch die SDKs rufen die REST-API auf, die Amazon S3 für die Verwaltung des Versionings bereitstellt.

    Anmerkung

    Falls nötig, können Sie auch die REST API-Aufrufe in Amazon S3 direkt von Ihrem Code aus durchführen. Allerdings kann dies aufwändig sein, weil Sie Code zur Authentifizierung Ihrer Anfragen schreiben müssen.

    Jedem von Ihnen erstellten Bucket ist eine Versioning-Subressource zugeordnet (siehe Optionen für die Bucket-Konfiguration). Standardmäßig ist Ihr Bucket nicht versionsfähig, und dementsprechend speichert die Versioning-Subressource eine leere Versioning-Konfiguration.

    <VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> </VersioningConfiguration>

    Um das Versioning zu aktivieren, senden Sie eine Anfrage an Amazon S3 mit einer Versionskonfiguration, die einen Status enthält.

    <VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Status>Enabled</Status> </VersioningConfiguration>

    Um das Versioning auszusetzen, setzen Sie den Statuswert auf Suspended.

Der Bucket-Eigentümer, ein AWS-Konto, das den Bucket erstellt hat (Root-Konto), sowie autorisierte Benutzer können den Versioning-Status eines Buckets konfigurieren. Weitere Informationen zu Berechtigungen finden Sie unter Übersicht über die Verwaltung von Zugriffsberechtigungen für Ihre Amazon S3-Ressourcen.

Ein Beispiel für die Konfiguration des Versionings finden Sie unter Beispiel für das Aktivieren des Bucket-Versionings.

MFA Delete

Sie können optional eine weitere Sicherheitsschicht einführen, indem Sie einen Bucket mit MFA (Multi-Factor Authentication) Delete konfigurieren, sodass für jede der folgenden Operationen eine zusätzliche Authentifizierung erforderlich ist:

  • Ändern des Versioning-Status Ihres Buckets

  • Dauerhaftes Löschen einer Objektversion

MFA Delete fordert zwei Authentifizierungsformen in Kombination:

  • Ihre Sicherheitsanmeldeinformationen

  • Die Verkettung einer gültigen Seriennummer, eines Leerzeichens und des sechsstelligen Codes, der auf einem zugelassenen Authentifizierungsgerät angezeigt wird

MFA Delete bietet damit zusätzliche Sicherheit, wenn beispielsweise Ihre Sicherheitsanmeldeinformationen nicht mehr vertrauenswürdig sind.

Für das Aktivieren oder Deaktivieren von MFA Delete verwenden Sie dieselbe API, die Sie für die Konfiguration des Versionings für einen Bucket verwenden. Amazon S3 speichert die MFA Delete-Konfiguration in derselben Versioning-Subressource, in der auch der Versioning-Status des Buckets gespeichert ist.

MFA Delete kann helfen, versehentliches Löschen von Buckets zu verhindern, da die Person, die den Löschvorgang initiiert, Folgendes durchführen muss:

  • Den physischen Besitz eines MFA-Geräts mit einem MFA-Code nachweisen und

  • Es fügt eine zusätzliche Ebene der Reibung und Sicherheit zum Löschvorgang hinzu

<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Status>VersioningState</Status> <MfaDelete>MfaDeleteState</MfaDelete> </VersioningConfiguration>

Um MFA Delete zu nutzen, verwenden Sie ein Hardwaregerät oder ein virtuelles MFA-Gerät, um einen Authentifizierungscode zu generieren. Das folgende Beispiel zeigt einen generierten Authentifizierungscode, angezeigt auf einem Hardwaregerät.

Anmerkung

MFA Delete und ein durch MFA geschützter API-Zugriff sind Funktionen, die Schutz in bestimmten Situationen bieten sollen. Sie konfigurieren MFA Delete für einen Bucket, um sicherzustellen, dass die Daten in Ihrem Bucket nicht versehentlich gelöscht werden können. Der durch MFA geschützte API-Zugriff wird verwendet, um einen zusätzlichen Authentifizierungsfaktor (MFA-Code) einzuführen, wenn Sie auf sensible Amazon S3-Ressourcen zugreifen. Sie können für alle Operationen für Amazon S3-Ressourcen fordern, dass sie mit temporären Anmeldeinformationen ausgeführt werden, die mit MFA erstellt wurden. Ein Beispiel finden Sie unter Hinzufügen einer Bucket-Richtlinie zur Anforderung einer MFA.

Weitere Informationen dazu, wie Sie ein Authentifizierungsgerät kaufen und aktivieren, finden Sie unter https://aws.amazon.com/iam/details/mfa/.

Anmerkung

Der Bucket-Eigentümer, das AWS-Konto, das den Bucket erstellt hat (Root-Konto), sowie alle autorisierten IAM-Benutzer können das Versioning aktivieren, aber nur der Bucket-Eigentümer (Root-Konto) kann MFA Delete aktivieren.

Weitere Informationen finden Sie unter den folgenden Themen: