Zum Hauptinhalt springen

Aufbewahrung der Objekte eines gesperrten Buckets verwalten

Ein mit Enable Object Lock (WORM) erstellter Bucket sperrt jedes Objekt nach dem Schreiben 365 Tage lang im Modus COMPLIANCE. Diese Anleitung zeigt, wie Sie diese Sperre prüfen und ein Objekt mit den Standardbefehlen von S3 Object Lock länger aufbewahren: eigene Aufbewahrung pro Objekt, Verlängerung, gesetzliche Aufbewahrungssperre (Legal Hold).

Diese Vorgänge erfolgen mit einem S3-Client. Konsole und API von Hikube zeigen nur die Standardaufbewahrung des Buckets.

Voraussetzungen​

Eine Sperre lässt sich nicht aufheben

Eine Aufbewahrung im Modus COMPLIANCE kann weder verkürzt noch entfernt werden. Das Objekt kann vor Ablauf weder gelöscht noch der Bucket geleert werden. Prüfen Sie das Datum, bevor Sie einen Befehl ausführen.

Die zwei Mechanismen verstehen​

MechanismusDauerGesetzt durchAufhebung
Aufbewahrung (Retention)Bis zu einem Datum (RetainUntilDate)Den Bucket beim Schreiben jedes Objekts (365 Tage) oder Sie, Objekt für ObjektAutomatisch bei Ablauf; kann nur verlängert werden
Legal HoldOhne AblaufSie, Objekt für ObjektWenn Sie ihn entfernen (Status=OFF)

Beide wirken zusammen: Ein Objekt kann erst gelöscht werden, wenn seine Aufbewahrung abgelaufen und sein Legal Hold entfernt ist.

Schritte​

1. Die Sperre des Buckets prüfen​

aws --endpoint-url "$S3_ENDPOINT" s3api get-object-lock-configuration \
--bucket "$BUCKET_NAME"

Erwartetes Ergebnis:

{
"ObjectLockConfiguration": {
"ObjectLockEnabled": "Enabled",
"Rule": {
"DefaultRetention": {
"Mode": "COMPLIANCE",
"Days": 365
}
}
}
}

DefaultRetention ist die Aufbewahrung, die für jedes ohne eigene Aufbewahrung geschriebene Objekt gilt.

2. Ein Objekt mit eigener Aufbewahrung hochladen​

Um ein Objekt länger als 365 Tage aufzubewahren (etwa ein regulatorisches Archiv über zehn Jahre), geben Sie ihm beim Hochladen ein Ablaufdatum. Wählen Sie ein Datum nach dem Standardablauf (365 Tage nach dem Hochladen): Die eigene Aufbewahrung eines Objekts dient dazu, es länger aufzubewahren.

# Ablaufdatum: ISO 8601, in UTC
RETAIN_UNTIL="2036-12-31T00:00:00Z"

aws --endpoint-url "$S3_ENDPOINT" s3api put-object \
--bucket "$BUCKET_NAME" --key archives/report-2026.pdf --body ./report-2026.pdf \
--object-lock-mode COMPLIANCE \
--object-lock-retain-until-date "$RETAIN_UNTIL"

3. Die Aufbewahrung eines Objekts lesen​

aws --endpoint-url "$S3_ENDPOINT" s3api get-object-retention \
--bucket "$BUCKET_NAME" --key archives/report-2026.pdf

Erwartetes Ergebnis:

{
"Retention": {
"Mode": "COMPLIANCE",
"RetainUntilDate": "2036-12-31T00:00:00+00:00"
}
}

4. Die Aufbewahrung eines Objekts verlängern​

Eine Aufbewahrung kann nur verlängert werden: Das neue Datum muss nach dem aktuellen Ablauf liegen, sonst wird die Anfrage abgelehnt.

aws --endpoint-url "$S3_ENDPOINT" s3api put-object-retention \
--bucket "$BUCKET_NAME" --key archives/report-2026.pdf \
--retention '{"Mode":"COMPLIANCE","RetainUntilDate":"2040-12-31T00:00:00Z"}'

Ein Legal Hold verhindert das Löschen eines Objekts ohne Ablaufdatum, zum Beispiel während eines Rechtsstreits oder einer Prüfung:

# Legal Hold setzen
aws --endpoint-url "$S3_ENDPOINT" s3api put-object-legal-hold \
--bucket "$BUCKET_NAME" --key archives/report-2026.pdf \
--legal-hold Status=ON

# Legal Hold prüfen
aws --endpoint-url "$S3_ENDPOINT" s3api get-object-legal-hold \
--bucket "$BUCKET_NAME" --key archives/report-2026.pdf

# Legal Hold entfernen
aws --endpoint-url "$S3_ENDPOINT" s3api put-object-legal-hold \
--bucket "$BUCKET_NAME" --key archives/report-2026.pdf \
--legal-hold Status=OFF

Das Entfernen des Legal Hold hebt die Aufbewahrung nicht auf: Das Objekt bleibt bis zu deren Ablauf geschützt.

Modus GOVERNANCE​

Der Modus GOVERNANCE wird akzeptiert, aber die Benutzer eines Buckets dürfen eine Aufbewahrung nicht umgehen: --bypass-governance-retention liefert AccessDenied. Ein Objekt in GOVERNANCE ist daher bis zum Ablauf praktisch ebenso unveränderlich wie in COMPLIANCE. Verwenden Sie COMPLIANCE, das ausdrückt, was angewendet wird.

Fehlerbehebung​

SymptomWahrscheinliche UrsacheMaßnahme
get-object-lock-configuration schlägt fehlBucket ohne Sperre erstelltDie Sperre lässt sich nur bei der Erstellung aktivieren: Erstellen Sie einen gesperrten Bucket und kopieren Sie die Objekte hinein
AccessDenied bei put-object-retention oder put-object-legal-holdBenutzer mit Read-onlyVerwenden Sie einen Benutzer mit Read / Write
Verlängerung abgelehntNeues Datum vor dem aktuellen AblaufWählen Sie ein Datum nach dem aktuellen Ablauf (Schritt 3)
Datum beim Hochladen abgelehntDatum in der Vergangenheit oder falsches FormatDatum in der Zukunft, im Format ISO 8601 in UTC (2036-12-31T00:00:00Z)
AccessDenied beim Löschen eines ObjektsAufbewahrung läuft noch oder Legal Hold gesetztLesen Sie die Aufbewahrung (Schritt 3) und den Legal Hold (Schritt 5) des Objekts

Weiterführende Informationen​