AWS S3 Object Lock is a game-changer for businesses that require high data integrity and compliance. It's a feature that allows you to store objects in S3 with a retention period, making it impossible for them to be deleted or modified.
With Object Lock, you can protect your data from accidental or intentional deletion, which is a huge relief for companies in regulated industries. This feature is especially useful for businesses that need to meet strict compliance requirements.
Object Lock also provides a versioning feature, which allows you to store multiple versions of an object. This is particularly useful for companies that need to track changes to their data over time.
What Is AWS S3 Object Lock
AWS S3 Object Lock is an Amazon S3 feature that enables highly secure, unchangeable file storage. It's based on the write once, read many (WORM) approach.
This feature is employed when enterprises must demonstrate that data has not been altered or destroyed after being written. Many businesses rely on S3 Object Lock and WORM when they need to prove Compliance or when they need an unalterable, permanent copy of the data for auditing or record-keeping.
S3 Object Lock implements the write-once-read-many (WORM) model to protect the objects stored in it. Objects cannot be overwritten or deleted once they are stored in S3.
Object Lock helps achieve compliance by capturing a baseline copy of the data that cannot be overwritten or deleted once it is written. The data stored becomes immutable and tamper-proof.
You can protect individual objects or all objects stored in a given S3 bucket using the Amazon S3 Object Lock functionality. The duration for which the lock is applied is also flexible.
Enabling and Configuring
You can enable Object Lock for a new container during its creation by checking the "Object Lock" option in the management interface. This will automatically enable Versioning for the new container, which may lead to additional storage consumption.
Object Lock can be enabled for a new container during its creation, not after.
To enable Object Lock using the AWS S3 CLI, make sure the Object Storage credentials were set. This option is only available via the CLI.
You can configure a bucket's object lock with default retention values at the bucket level in a single command using the CLI. This is a more efficient way to configure Object Lock.
Object Lock should be enabled on the container level, during creation time, and Object versioning will be enabled automatically. This is the expected result when enabling Object Lock.
To enable Object Lock for a new bucket, you specify it when you create the bucket. You can't enable Object Lock for an existing bucket, so you'll need to contact AWS Support if you want to turn it on for an existing bucket.
You can identify a container with Object Lock enabled by checking the container properties, where the Object Lock property will be set to true.
Managing and Viewing
Managing and Viewing S3 Object Lock is a crucial part of data retention and compliance. You can configure and examine lock information, establish retention limits, manage deletes and lifecycles, and more using the AWS CLI, AWS SDKs, and Amazon S3 REST APIs.
To view the lock information for an object, you can use the GET Object or HEAD Object commands. These commands return the retention mode, Retain Until Date, and the legal-hold status for the supplied object version.
You need the s3:GetObjectRetention permission to see the retention mode and duration for an object version, and the s3:GetObjectLegalHold permission to see the legal hold status of an object version. If you lack these permissions, the request will still be successful, but you won't see any data that you're not authorized to read.
To view the default retention configuration for a bucket, you need the s3:GetBucketObjectLockConfiguration permission. This will show you the bucket's default retention settings, if any.
Here are the permissions you need to view lock information for an object:
- s3:GetObjectRetention for retention mode and duration
- s3:GetObjectLegalHold for legal hold status
- s3:GetBucketObjectLockConfiguration for default retention configuration
Configuring and Settings
To configure Object Lock for a bucket, you can use the AWS Management Console, the AWS CLI, or a bucket policy. You can also configure a default retention mode and period that applies to new objects placed in the bucket.
To enable Object Lock for a bucket, you must first select the bucket's name from the list of buckets. Then, you can select the object whose Object Lock retention settings you want to change and edit the retention mode and period.
You can limit the minimum and maximum retention times for a bucket using a bucket policy. The s3:object-lock-remaining-retention-days condition key is used to set a maximum retention time of ten days, for example.
You can also configure a default retention mode and period that applies to new objects placed in the bucket. This is done by setting the bucket defaults and denying users permission to configure object retention settings.
Here is a table outlining the steps to configure a bucket's default retention settings:
Configure Container Defaults
You can configure a container's default retention values with object lock via the CLI, in a single command. This allows you to set the default retention values for a bucket.
To enable object lock for a bucket, you must first create the bucket and turn on object lock. You can then configure the default retention values for the bucket.
A bucket's default retention period is a period of time during which the object version is protected. The minimum retention period is one day and there is no upper limit on the maximum retention period.
You can configure a default retention period on a bucket to automatically protect new object versions placed in the bucket. This is done by specifying a duration, in either days or years, for which every object version placed in the bucket should be protected.
Here are the steps to configure a default retention period on a bucket:
- Specify a duration, in either days or years, for which every object version placed in the bucket should be protected.
- Amazon S3 calculates a Retain Until Date for the object version by adding the specified duration to the object version's creation timestamp.
- The object version is then protected exactly as though you explicitly placed a lock with that retention period on the object version.
Default settings apply only to new objects that are placed in the bucket. Placing a default retention setting on a bucket doesn't place any retention settings on objects that already exist in the bucket.
Note that if you configure a default retention period on a bucket, requests to upload objects in such a bucket must include the Content-MD5 header.
Configuring Events and Notifications
Configuring Events and Notifications is a crucial part of managing your data and settings.
Amazon S3 Event Notifications can track who accesses and modifies your S3 Object Lock settings and data.
This helps you stay on top of any changes made to your sensitive information.
Modes
S3 Object Lock offers two protection modes: Governance and Compliance. Governance mode is ideal for storage that doesn't need to comply with regulations, allowing specific users with special authority to temporarily override or modify retention settings.
In Governance mode, users can't overwrite or delete an object version or alter its lock settings unless they have special permissions, such as the s3:BypassGovernanceRetention permission. This permission also requires the user to explicitly include x-amz-bypass-governance-retention:true as a request header with any request that requires overriding governance mode.
The Amazon S3 console by default includes the x-amz-bypass-governance-retention:true header, making it easier to delete objects protected by Governance mode.
Compliance mode, on the other hand, is stricter and designed to comply with regulations. In Compliance mode, a protected object version can't be overwritten or deleted by any user, including the root user in your AWS account.
Here's a comparison of Governance and Compliance modes:
In Compliance mode, when an object is locked, its retention mode can't be changed, and its retention period can't be shortened, ensuring that an object version can't be overwritten or deleted for the duration of the retention period.
Security and Compliance
S3 Object Lock provides an additional layer of security for your data, making it virtually impossible to delete or alter it without proper authorization.
With S3 Object Lock, you can choose from two protection modes: Governance and Compliance. Governance mode allows users with special permissions to temporarily override or modify retention settings, while Compliance mode is a stricter mode that prevents any user, including the root user, from deleting or altering data during the retention period.
Data protected by S3 Object Lock is stored in a WORM (Write Once, Read Many) format, which means it cannot be altered, overwritten, destroyed, or harmed in any other way.
S3 Object Lock is compatible with extra storage services for increased security, including Seagate Lyve Cloud object storage as a service, which is compatible with S3 Object Lock and other storage providers.
The feature is made available worldwide through the Grid Manager, and for a bucket, it is enabled when creating a new bucket with the Tenant Manager, Tenant Management API, or S3 REST API.
Compliance mode is ideal for storing data that must regularly be monitored for compliance, while Governance mode is suitable for storage that doesn't need to comply with regulations.
Here's a comparison of the two protection modes:
In Governance mode, users can't overwrite or delete an object version or alter its lock settings unless they have special permissions, such as the s3:BypassGovernanceRetention permission.
In Compliance mode, a protected object version can't be overwritten or deleted by any user, including the root user in your AWS account, and its retention mode can't be changed, and its retention period can't be shortened.
S3 Object Lock also provides two retention modes: Governance and Compliance, which apply different levels of protection to your objects.
The retention modes are as follows:
- Governance mode: Users can't overwrite or delete an object version or alter its lock settings unless they have special permissions.
- Compliance mode: A protected object version can't be overwritten or deleted by any user, including the root user, and its retention mode can't be changed, and its retention period can't be shortened.
Frequently Asked Questions
Can I delete an S3 bucket with object lock?
S3 Object Lock prevents deletion of protected objects, including buckets, through lifecycle policies or other means. Learn more about S3 Object Lock and its impact on bucket management
Does S3 Glacier support object lock?
S3 Glacier does not support S3 Object Lock, which is a feature designed to prevent objects from being deleted or overwritten. If you need to preserve objects for long-term archival, consider using S3 Glacier with S3 Object Lock enabled in the source bucket.
Sources
- https://guides.zadara.com/zios-guide/latest/appendix-c-object-storage-immutability.html
- https://www.scaler.com/topics/aws/s3-object-lock/
- https://github.com/awsdocs/amazon-s3-developer-guide/blob/master/doc_source/object-lock-overview.md
- https://www.cloudthat.com/resources/blog/safeguarding-your-data-on-amazon-s3-using-object-lock-and-replication
- https://n2ws.com/blog/aws-cloud-security-compliance/amazon-s3-object-lock-part-1
Featured Images: pexels.com