Protecting S3 Data from Accidental Deletion
A company has an Amazon S3 bucket that contains critical data. The company must protect the data from accidental deletion. Which combination of steps should a solutions architect take to meet these requirements? (Choose two.)
Community Insight
The tested concept is the difference between preventing deletion outright and protecting against ACCIDENTAL deletion; the trap is choosing policy, encryption, or lifecycle controls that address confidentiality or cleanup rather than recovery from an unintended delete.
This AWS Solutions Architect (SAA-C03) question asks which two Amazon S3 controls together protect critical data from accidental deletion. Enabling versioning (A) preserves recoverable object versions, and MFA Delete (B) forces a multi-factor authentication step before a delete is committed, making A and B the correct combination.
Option C (bucket policy) is the most tempting wrong pick: learners argue you can deny s3:DeleteObject, but a bucket policy blocks all unauthorized deletes and does nothing for an authorized user who deletes the wrong object by mistake — exactly the accidental scenario posed. Options D and E fail outright because encryption protects confidentiality and lifecycle rules actually automate deletion.
Community Discussion (83 comments)
Comments & Corrections
No comments yet — spotted an error or have a note? Share it below.
Expert Analysis
Why the Answer Is Correct
Versioning is the foundational safeguard: when it is enabled, a delete request creates a delete marker rather than permanently removing the object, so any accidentally deleted item can be restored from a prior version. MFA Delete adds a second, deliberate step — a privileged delete requires a time-based code from a multi-factor device — which makes an unintended delete virtually impossible because it cannot be triggered by a single mistaken command. AWS explicitly pairs these two features as its recommended mitigation for lost or deleted objects, and together they satisfy the requirement without changing access patterns for legitimate users. Neither feature alone is complete: versioning recovers after the fact, while MFA Delete reduces the likelihood of the event occurring at all.Why the Other Options Are Wrong
A bucket policy (C) governs who may perform which API actions; adding an s3:DeleteObject deny would also block legitimate, intentional cleanup and still would not stop an authenticated administrator who is permitted to delete from removing the wrong object, so it does not address accidental deletion. Default encryption (D) protects data at rest from unauthorized disclosure and has no bearing on whether an object can be deleted. A lifecycle policy (E) is actively counterproductive here, since it automates the expiration and permanent removal of objects after a defined period. As pentium75 summarized, "You're asked to prevent ACCIDENTAL deletion, not deletion."Community Comment Notes
The community strongly converges on A and B, with Uhrien citing AWS Premium Support guidance that recommends versioning plus MFA delete, and awsgeek75 making the crucial distinction that the scenario requires stopping accidental deletion rather than stopping all deletion. liams123's doubt about choosing A and C is misplaced for the reason above: a bucket policy cannot distinguish an accident from intent. One dissenting vote for B and D on the grounds that "Versioning does not prevent accidental deletion; it only allows for recovery" misunderstands the requirement — recovery capability is exactly the protection AWS prescribes. The remaining comments from Buruguduystunstugudunstu and others confirm that C, D, and E offer no protection against accidental deletion.Official Reference
Exam Strategy
On SAA-C03 data-protection questions, read whether the requirement is confidentiality, integrity, or recoverability before evaluating options. For 'accidental deletion' specifically, look for versioning paired with MFA Delete, and treat bucket policies, encryption, and lifecycle rules as distractors that target different goals.
Frequently Asked Questions
Why isn't a bucket policy denying s3:DeleteObject a valid answer here?
A bucket policy cannot distinguish an accidental delete from an intentional one; it would block all deletes by the denied principals and still protect nothing when an authorized user removes the wrong object by mistake.
Does enabling versioning alone fully prevent accidental deletion in S3?
No. Versioning preserves prior versions and lets you restore deleted objects, but a delete marker still hides the object. MFA Delete adds the deliberate confirmation step that reduces accidental deletes in the first place.
Related Analysis
Practice All SAA-C03 Questions
Access 120 questions with complete answers and detailed explanations.
View Full SAA-C03 Practice Test →