Zum Inhalt springen

Erstellen und verwalten Sie eine Object Lock im Object Storage

Zuletzt aktualisiert am

Die Object Lock verhindert, dass Objekte gelöscht oder überschrieben werden, bis eine bestimmte Aufbewahrungsfrist abgelaufen ist. In dieser Anleitung werden alle Vorgänge der Object Lock behandelt: Aktivieren der Compliance-Sperre, Erstellen eines Buckets mit Object Lock, Konfigurieren der Standardaufbewahrung und Verwalten der Aufbewahrung auf Objektebene.

  • Ein STACKIT-Projekt mit aktiviertem Object Storage
  • Entsprechende Projektberechtigungen
  • S3-kompatible Anmeldeinformationen (Zugriffsschlüssel + geheimer Zugriffsschlüssel) für Vorgänge auf Objektebene

Die Compliance-Sperre ist der Schalter auf Projektebene, der die S3-Object Lock für alle Buckets in einem STACKIT-Projekt aktiviert. Es muss aktiviert werden, bevor Sie Buckets mit Object Lock erstellen oder Aufbewahrungsrichtlinien konfigurieren können.

Terminal-Fenster
curl -X POST \
"https://object-storage.api.{region}.stackit.cloud/v1/project/{projectId}/compliance-lock" \
-H "Authorization: Bearer $TOKEN"

Antwort (HTTP 201):

{
"project": "cd5e788d-5b7b-4ab9-a20d-e790205df10b",
"maxRetentionDays": 365
}
Terminal-Fenster
curl -X GET \
"https://object-storage.api.{region}.stackit.cloud/v1/project/{projectId}/compliance-lock" \
-H "Authorization: Bearer $TOKEN"

Antwort (HTTP 200):

{
"project": "cd5e788d-5b7b-4ab9-a20d-e790205df10b",
"maxRetentionDays": 365
}

Gibt HTTP 404 zurück, wenn die Compliance-Sperre nicht aktiv ist.

Terminal-Fenster
curl -X DELETE \
"https://object-storage.api.{region}.stackit.cloud/v1/project/{projectId}/compliance-lock" \
-H "Authorization: Bearer $TOKEN"

Antwort (HTTP 200):

{
"project": "cd5e788d-5b7b-4ab9-a20d-e790205df10b",
"maxRetentionDays": 365
}

Ein Projekt mit aktiver Compliance-Sperre kann nicht gelöscht werden. Sowohl die Endpunkte zum regulären Projektlöschen als auch zum erzwungenen Löschen geben HTTP 409-Konflikt zurück, wenn die Compliance-Sperre aktiv ist.

Um ein Projekt zu löschen, müssen Sie zunächst die Compliance-Sperre deaktivieren.

Die Object Lock kann nur zum Zeitpunkt der Bucket-Erstellung aktiviert werden. Es kann nicht für vorhandene Buckets aktiviert oder nach der Erstellung deaktiviert werden.

Die Compliance-Sperre muss aktiv sein, bevor ein Bucket mit Object Lock erstellt wird.

Fügen Sie beim Erstellen eines Buckets den Query-Parameter objectLockEnabled=true hinzu:

Terminal-Fenster
curl -X POST \
"https://object-storage.api.{region}.stackit.cloud/v1/project/{projectId}/bucket/{bucketName}?objectLockEnabled=true" \
-H "Authorization: Bearer $TOKEN"

Antwort (HTTP 201):

{
"project": "cd5e788d-5b7b-4ab9-a20d-e790205df10b",
"bucket": "my-compliant-bucket"
}

Sobald ein Bucket mit aktivierter Object Lock erstellt wurde:

  1. Die Versionierung ist automatisch aktiviert. Die Object Lock erfordert eine Bucket-Versionierung. Es wird automatisch eingeschaltet und kann nicht ausgesetzt werden.
  2. Sie können eine Standardaufbewahrungsrichtlinie konfigurieren, um einen automatischen Aufbewahrungszeitraum für alle hochgeladenen Objekte festzulegen. Siehe Konfigurieren Sie die Standardaufbewahrung.
  3. Sie können die Aufbewahrung pro Objekt festlegen mithilfe der S3-kompatiblen API. Siehe Verwalten Sie die Aufbewahrung auf Objektebene.
  • Die Object Lock kann nach der Bucket-Erstellung nicht deaktiviert werden.
  • Sie können in einem Projekt mit aktivierter Compliance-Sperre auch Buckets ohne Object Lock erstellen. Lassen Sie den Parameter objectLockEnabled weg oder setzen Sie ihn auf false.
  • Ein Bucket-Name muss DNS-konform sein (3–63 Zeichen).

Eine Standardaufbewahrungsrichtlinie wendet automatisch einen Aufbewahrungszeitraum auf jedes in einen Bucket hochgeladene Objekt an. Dies erspart Ihnen die Notwendigkeit, die Aufbewahrung für jedes Objekt einzeln festzulegen.

Der Bucket muss erstellt mit aktivierter Object Lock sein.

Legen Sie die Standardaufbewahrung fest oder aktualisieren Sie sie

Abschnitt betitelt „Legen Sie die Standardaufbewahrung fest oder aktualisieren Sie sie“
Terminal-Fenster
curl -X PUT \
"https://object-storage.api.{region}.stackit.cloud/v1/project/{projectId}/bucket/{bucketName}/default-retention" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"mode": "COMPLIANCE",
"days": 90
}'

Antwort (HTTP 200):

{
"project": "cd5e788d-5b7b-4ab9-a20d-e790205df10b",
"bucket": "my-compliant-bucket",
"mode": "COMPLIANCE",
"days": 90
}

Sie können den Standardaufbewahrungsmodus und die Standarddauer jederzeit ändern, indem Sie den PUT-Endpunkt erneut aufrufen. Änderungen gelten nur für Objekte, die nach dem Update hochgeladen wurden.

Terminal-Fenster
curl -X GET \
"https://object-storage.api.{region}.stackit.cloud/v1/project/{projectId}/bucket/{bucketName}/default-retention" \
-H "Authorization: Bearer $TOKEN"

Antwort (HTTP 200):

{
"project": "cd5e788d-5b7b-4ab9-a20d-e790205df10b",
"bucket": "my-compliant-bucket",
"mode": "COMPLIANCE",
"days": 90
}

Gibt HTTP 404 zurück, wenn keine Standardaufbewahrung konfiguriert ist, wenn der Object Lock für den Bucket nicht aktiviert ist oder wenn der Bucket nicht vorhanden ist.

Terminal-Fenster
curl -X DELETE \
"https://object-storage.api.{region}.stackit.cloud/v1/project/{projectId}/bucket/{bucketName}/default-retention" \
-H "Authorization: Bearer $TOKEN"

Antwort (HTTP 200):

{
"project": "cd5e788d-5b7b-4ab9-a20d-e790205df10b",
"bucket": "my-compliant-bucket"
}

Verwalten Sie die Aufbewahrung auf Objektebene mit der S3-API

Abschnitt betitelt „Verwalten Sie die Aufbewahrung auf Objektebene mit der S3-API“

Zusätzlich zur Standardaufbewahrung auf Bucket-Ebene können Sie Aufbewahrungseinstellungen für einzelne Objekte mithilfe der S3-kompatiblen API verwalten. Auf diese Weise können Sie die Aufbewahrung pro Objekt festlegen, erweitern oder abfragen.

Der Bucket muss über eine Object Lock aktiviert verfügen.

Verwenden Sie put-object-retention, um den Aufbewahrungszeitraum für ein Objekt festzulegen oder zu verlängern:

Terminal-Fenster
aws s3api put-object-retention \
--bucket my-compliant-bucket \
--key my-document.pdf \
--retention '{"Mode": "COMPLIANCE", "RetainUntilDate": "2025-12-31T00:00:00Z"}' \
--endpoint-url https://object.storage.eu01.onstackit.cloud
Terminal-Fenster
aws s3api get-object-retention \
--bucket my-compliant-bucket \
--key my-document.pdf \
--endpoint-url https://object.storage.eu01.onstackit.cloud

Antwort:

{
"Retention": {
"Mode": "COMPLIANCE",
"RetainUntilDate": "2025-12-31T00:00:00Z"
}
}

Eine gesetzliche Aufbewahrungsfrist verhindert, dass ein Objekt gelöscht wird, unabhängig von seinen Aufbewahrungseinstellungen. Im Gegensatz zur Aufbewahrung hat eine gesetzliche Aufbewahrungsfrist kein Ablaufdatum. Sie bleibt gültig, bis sie ausdrücklich entfernt wird.

Terminal-Fenster
aws s3api put-object-legal-hold \
--bucket my-compliant-bucket \
--key my-document.pdf \
--legal-hold '{"Status": "ON"}' \
--endpoint-url https://object.storage.eu01.onstackit.cloud
Terminal-Fenster
aws s3api put-object-legal-hold \
--bucket my-compliant-bucket \
--key my-document.pdf \
--legal-hold '{"Status": "OFF"}' \
--endpoint-url https://object.storage.eu01.onstackit.cloud

Überprüfen Sie den Status der rechtlichen Sperre

Abschnitt betitelt „Überprüfen Sie den Status der rechtlichen Sperre“
Terminal-Fenster
aws s3api get-object-legal-hold \
--bucket my-compliant-bucket \
--key my-document.pdf \
--endpoint-url https://object.storage.eu01.onstackit.cloud

Wechselwirkung zwischen Aufbewahrung und gesetzlicher Aufbewahrungsfrist

Abschnitt betitelt „Wechselwirkung zwischen Aufbewahrung und gesetzlicher Aufbewahrungsfrist“

Für ein Objekt kann gleichzeitig eine Aufbewahrungsfrist und eine gesetzliche Aufbewahrungsfrist gelten. Damit das Objekt gelöscht werden kann, müssen beide Bedingungen erfüllt sein:

  1. Der Aufbewahrungszeitraum muss abgelaufen sein (oder es ist keine Aufbewahrung festgelegt).
  2. Legal Hold muss AUS sein (oder nicht eingestellt sein).