MFA Delete adds an extra layer of security by requiring an MFA code before anyone can permanently delete an object version or change versioning settings.
Purpose: Prevent accidental or malicious permanent deletion of data.
| Action | MFA Required? |
|---|---|
| Permanently delete an object version | Yes |
| Suspend versioning on the bucket | Yes |
| Enable versioning | No |
| List deleted versions | No |
| Add a delete marker (soft delete) | No |
Without MFA Delete:
You --> delete object --> gone immediately
With MFA Delete:
You --> delete object --> system asks for MFA code
--> enter code from device --> deletion proceeds
--> wrong or missing code --> deletion blocked
MFA Delete can only be enabled using the CLI with root credentials.
aws s3api put-bucket-versioning \\
--bucket YOUR-BUCKET-NAME \\
--versioning-configuration Status=Enabled,MFADelete=Enabled \\
--mfa "arn:aws:iam::ACCOUNT-ID:mfa/root-account-mfa-device MFA-CODE" \\
--profile root-profile