Object Lock: Legal Hold

Last change on 2024-12-03 • Created on 2024-10-18 • ID: ST-04AE5

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

In diesem Getting Started geht es um Legal Hold. Wie in der Liste unterstützter Actions bereits erwähnt, muss Object Lock bereits beim Erstellen des Buckets aktiviert werden.

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

  1. Neuen Bucket mit Object Lock erstellen

    • MinIO 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üfen Sie den Inhalt von ~/.aws/config. Wenn die Datei folgende Zeilen enthält, kommentieren Sie diese mit einem #-Symbol aus:

      #s3 =
      #  addressing_style = virtual

  1. "Object Lock"-Status prüfen

    • MinIO Client

      mc stat <alias_name>/<bucket_name>

    • AWS CLI

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

  1. Legal Hold aktivieren

    • MinIO Client

      Für alle Objekte im Bucket:

      mc legalhold set --recursive <alias_name>/<bucket_name>

      Für ein einzelnes Objekt:

      mc legalhold set <alias_name>/<bucket_name>/<object_name>

    • AWS CLI

      Für alle Objekte im Bucket:

      BUCKET="<bucket_name>"
      for key in $(aws s3api list-objects --bucket "$BUCKET" --query 'Contents[].Key' --output text); do
        aws s3api put-object-legal-hold --legal-hold Status=ON --bucket "$BUCKET" --key "$key"; done

      Für ein einzelnes Objekt:

      aws s3api put-object-legal-hold --bucket <bucket_name> \ 
        --key <object_name> --legal-hold Status=ON

  1. "Legal Hold"-Status prüfen

    • MinIO Client

      Status aller Objekte im Bucket:

      BUCKET="<alias_name>/<bucket_name>"
      for key in $(mc ls "$BUCKET" \
        | awk '{print $NF}'); do mc legalhold info \
        --json "$BUCKET"/"$key"; done

      Objekt-Status:

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

    • AWS CLI

      Status aller Objekte im Bucket:

      BUCKET="<bucket_name>"
      for key in $(aws s3api list-objects --bucket "$BUCKET" --query 'Contents[].Key' --output text); do
        echo "Object: $key";
        aws s3api get-object-legal-hold --bucket "$BUCKET" --key "$key"; done

      Objekt-Status:

      aws s3api get-object-legal-hold --bucket <bucket_name> --key <object_name>

  1. Legal Hold beenden

    • MinIO Client

      Für alle Objekte im Bucket:

      mc legalhold clear --recursive <alias_name>/<bucket_name>

      Für ein einzelnes Objekt:

      mc legalhold clear <alias_name>/<bucket>/<object_name>

    • AWS CLI

      Für alle Objekte im Bucket:

      BUCKET="<bucket_name>"
      for key in $(aws s3api list-objects --bucket "$BUCKET" --query 'Contents[].Key' --output text); do
        aws s3api put-object-legal-hold --bucket "$BUCKET" --key "$key" --legal-hold Status=OFF; done

      Für ein einzelnes Objekt:

      aws s3api put-object-legal-hold --bucket <bucket_name> \
        --key <object_name> --legal-hold Status=OFF

Ihre Objekte sollten nun vor versehentlichem Löschen geschützt sein.


Nächste Schritte: