Warum kann ich Objekte löschen, obwohl ich Object Lock für meinen Amazon S3-Bucket aktiviert habe?

Lesedauer: 4 Minute
0

Ich habe Object Lock für meinen Amazon Simple Storage Service (Amazon S3)-Bucket aktiviert. Ich muss wissen, warum ich dennoch einige Objekte aus diesem Bucket löschen kann.

Behebung

Die Object Lock-Konfigurationseinstellungen auf Objektebene bestimmen, ob Sie mit Object Lock ein Objekt aus einem Amazon S3-Bucket löschen können.

Um festzustellen, warum Sie ein bestimmtes Objekt in einem Bucket mit Object Lock immer noch löschen können, überprüfen Sie die Object Lock-Einstellung, die auf das Objekt angewendet wird. Überprüfen Sie auch den Löschmodus.

**Hinweis:**Wenn Sie beim Ausführen von Befehlen der AWS Command Line Interface (AWS CLI) Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS CLI verwenden.

Die Einstellungen der gesetzlichen Aufbewahrungsfrist von Object Lock und die Object Lock-Aufbewahrungseinstellungen für das Objekt überprüfen

Um diese Einstellungen zu überprüfen, öffnen Sie die Amazon S3-Konsole und navigieren Sie zur Seite Eigenschaften des Objekts. Sie können auch den AWS CLI-Befehl head-object ausführen:

aws s3api head-object --bucket sample-bucket --key test.png

Die Ausgabe sieht ähnlich wie die folgende aus:

{  
 "AcceptRanges": "bytes",  
 "LastModified": "2023-03-09T04:39:46+00:00",  
 "ContentLength": 285074,  
 "ETag": "\"1e8cd7fb4e4ddeafdc6513200f47958f\"",  
 "VersionId": "Cm_wsGgkj8L3fySNPUu.J7xV1HEKMhGr",  
 "ContentType": "image/png",  
 "ServerSideEncryption": "aws:kms",  
 "Metadata": {},  
 "SSEKMSKeyId": "arn:aws:kms:us-east-1:111111111111:key/eod57e78-8c46-454a-8c22-897d8be9a5f4",  
 "ReplicationStatus": "PENDING",  
 "ObjectLockMode": "COMPLIANCE",  
 "ObjectLockRetainUntilDate": "2023-03-10T04:39:45.913000+00:00",  
 "ObjectLockLegalHoldStatus": "ON"  
}

Wenn Sie die gesetzliche Aufbewahrungsfrist auf das Objekt angewendet haben, werden die ObjectLockLegalHoldStatus-Felder in der Ausgabe angezeigt. Wenn Sie die Object Lock-Aufbewahrung auf das Objekt angewendet haben, werden auch die Felder ObjectLockMode und ObjectLockRetainUntilDate angezeigt.

Sie haben die gesetzliche Aufbewahrungsfrist für Object Lock oder die Object Lock-Aufbewahrung für das Objekt nicht aktiviert.

Sie können das Objekt dauerhaft löschen.

Sie haben die gesetzliche Aufbewahrungsfrist für Object Lock am Objekt aktiviert.

Sie können das Objekt erst dann dauerhaft löschen, wenn ein Benutzer mit den s3:PutObjectLegalHold-Berechtigungen die gesetzliche Aufbewahrungsfrist für das Objekt explizit deaktiviert hat.

Sie haben die Object Lock-Aufbewahrung für das Objekt aktiviert

Wenn das Objekt im GOVERNANCE-Modus geschützt ist, können Sie das Objekt unter den folgenden Bedingungen dauerhaft löschen, noch bevor der Aufbewahrungszeitraum abgelaufen ist:

  • Sie verfügen über s3:BypassGovernanceRetention-Berechtigungen.
  • Sie haben x-amz-bypass-governance-retention:true explizit als Anforderungsheader in die DELETE-Anforderung aufgenommen.

Standardmäßig enthält die Amazon S3-Konsole den x-amz-bypass-governance-retention:true-Header in einer DELETE-Anforderung. Wenn Sie also über s3:BypassGovernanceRetention-Berechtigungen verfügen, können Sie die S3-Konsole verwenden, um eine Objektversion zu löschen, die durch den GOVERNANCE-Modus geschützt ist.

Mit s3:BypassGovernanceRetention-Berechtigungen können Sie auch die AWS CLI verwenden, um eine Objektversion zu löschen. Übergeben Sie die Option --bypass-governance-retention im Befehl delete-object:

aws s3api delete-object --bucket sample-bucket --key test.txt --version-id "9_gKg5vG56F.TTEUdwkxGpJ3tNDlWlGq" --bypass-governance-retention

Wenn das Objekt im COMPLIANCE-Modus geschützt ist, kann kein Benutzer, einschließlich des Root-Kontos, das Objekt dauerhaft löschen, bis der Aufbewahrungszeitraum abgelaufen ist.

Löschmodus überprüfen

Einfacher DELETE-Vorgang

In einem einfachen DELETE-Vorgang löschen Sie ein Objekt, ohne die Objektversions-ID in der Löschanforderung anzugeben. 

Sie können unabhängig von den Object Lock-Konfigurationen einen einfachen DELETE-Vorgang für jedes Objekt ausführen, das sich in einem Bucket mit Object Lock befindet. Durch einen einfachen DELETE-Vorgang werden keine Daten aus dem Bucket entfernt. Dem Bucket wird nur eine Löschmarkierung hinzugefügt und die aktuelle Version wird als nicht aktuell beibehalten.

Dauerhafter DELETE-Vorgang

In einem dauerhaften DELETE-Vorgang löschen Sie ein Objekt, indem Sie die Objektversions-ID in der Löschanforderung angeben.

Sie können einen dauerhaften DELETE-Vorgang für ein Objekt ausführen, das durch den GOVERNANCE-Aufbewahrungsmodus geschützt ist, noch bevor der Aufbewahrungszeitraum abgelaufen ist. Sie müssen jedoch über die erforderlichen Berechtigungen verfügen, um den GOVERNANCE-Modus zu umgehen.

Unter keiner der folgenden Bedingungen können Sie einen dauerhaften DELETE-Vorgang für ein Objekt ausführen:

  • Das Objekt ist durch den COMPLIANCE-Aufbewahrungsmodus geschützt, und der Aufbewahrungszeitraum ist noch nicht abgelaufen.
  • Für das Objekt gilt die gesetzliche Aufbewahrungsfrist.

Über S3-Lebenszyklusregeln löschen

S3-Lebenszyklusregeln löschen weiterhin abgelaufene aktuelle Versionen durch einfache DELETE-Operationen, unabhängig von den Object Lock-Konfigurationen auf Objektebene. Diese Regeln löschen die nicht aktuellen Versionen jedoch nicht dauerhaft, wenn sie durch Object Lock geschützt sind.

Ähnliche Informationen

Rechtliche Aufbewahrungsfristen

Aufbewahrungsmodi

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr