Object Lock: Retention

Last change on 2024-10-18 • Created on 2024-10-18 • ID: ST-67734

Um Objekte vor versehentlichem Löschen zu schützen, kannst du die "Object Lock"-Optionen Legal Hold und Retention nutzen. Genauere Informationen darüber, inwiefern sich diese beiden Optionen unterscheiden, findest du in dem FAQ-Eintrag "Was ist der Unterschied zwischen Versioning und Object Locking?".

In diesem Getting Started geht es um Retention. Object Lock muss bereits beim Erstellen des Buckets aktiviert werden. Bei Buckets, die ohne Object Lock erstellt wurden, kann Object Lock nicht nachträglich aktiviert werden.

Die Befehle zum Verwalten von Retention unterscheiden sich je nach S3-kompatiblem Tool. Die folgenden Schritte werden mittels Beispielbefehlen für MinIO AIStor Client und AWS CLI erklärt.

  1. Neuen Bucket mit Object Lock erstellen

    • MinIO AIStor Client

      mc mb <alias_name>/<bucket_name> --with-lock --region fsn1

    • AWS CLI

      aws s3api create-bucket \
        --bucket <bucket_name> \
        --region fsn1 \
        --object-lock-enabled-for-bucket

      Falls ein Fehler angezeigt wird, prüfe den Inhalt von ~/.aws/config. Wenn die Datei folgende Zeilen enthält, kommentiere diese mit einem #-Symbol aus:

      #s3 =
      #  addressing_style = virtual

  1. "Object Lock"-Status prüfen


  1. Retention definieren

    Als Modus kann angegeben werden: GOVERNANCE oder COMPLIANCE

    • MinIO AIStor Client

      Standard für neue Objekte im Bucket:

      mc retention set GOVERNANCE "30d" --default <alias_name>/<bucket_name>

      Für ein existierendes Objekt:

      mc retention set GOVERNANCE "30d" <alias_name>/<bucket_name>/<object_name>

      In beiden Befehlen kann entweder die Anzahl der Tage #d oder die Anzahl der Jahre #y angegeben werden.


    • AWS CLI

      Standard für neue Objekte im Bucket:

      aws s3api put-object-lock-configuration --bucket <bucket_name> --object-lock-configuration \
        '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "GOVERNANCE", "Days": 30 }}}'

      Für ein existierendes Objekt:

      aws s3api put-object-retention --bucket <bucket_name> --key <object_name> \
        --retention '{ "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T12:00:00.00Z" }'

      Im ersten Befehl kann entweder die Anzahl der Tage "Days": # oder die Anzahl der Jahre"Years": # festgelegt werden. Im zweiten Befehl muss eine genaue Zeit angegeben werden.


  1. Status vom Object Lock prüfen

    • MinIO AIStor Client

      Bucket-Standard:

      mc retention info --json --default <alias_name>/<bucket_name>

      Objekt-Status:

      mc retention info --json <alias_name>/<bucket_name>/<object_name>

    • AWS CLI

      Bucket-Standard:

      aws s3api get-object-lock-configuration --bucket <bucket_name>

      Objekt-Status:

      aws s3api get-object-retention --bucket <bucket_name> --key <object_name>

  1. Retention-Zeitraum entfernen oder verkürzen

    Beachte, dass es nicht möglich ist den "Compliance Mode" frühzeitig zu beenden.

    • MinIO AIStor Client

      Standard Modus und Zeit für neue Objekte im Bucket entfernen:

      mc retention clear --default --json <alias_name>/<bucket_name>

      Für ein existierendes Objekt ändern:

      mc retention set GOVERNANCE "1d" --bypass <alias_name>/<bucket_name>/<object_name>

    • AWS CLI

      Standard Modus und Zeit für neue Objekte im Bucket entfernen:

      aws s3api put-object-lock-configuration --bucket <bucket_name> --object-lock-configuration \
        '{ "ObjectLockEnabled": "Enabled" }'

      Für ein existierendes Objekt ändern:

      aws s3api put-object-retention --bucket <bucket_name> --key <object_name> \
        --retention '{ "Mode": "GOVERNANCE", "RetainUntilDate": "<current_timestamp>" }' \
        --bypass-governance

Solange der Retention-Zeitraum nicht abgelaufen ist, sollten deine Objekte vor versehentlichem Löschen geschützt sein.


Nächste Schritte: