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.
-
Neuen Bucket mit Object Lock erstellen
-
mc mb <alias_name>/<bucket_name> --with-lock --region fsn1
-
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
-
-
"Object Lock"-Status prüfen
-
mc stat <alias_name>/<bucket_name>
-
aws s3api get-object-lock-configuration --bucket <bucket_name>
-
-
Legal Hold aktivieren
-
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>
-
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
-
-
"Legal Hold"-Status prüfen
-
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>
-
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>
-
-
Legal Hold beenden
-
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>
-
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: