Object Lock
Object Lock uses the WORM (Write Once Read Many) principle and allows you to lock objects to prevent them from being overwritten or deleted.
To use Object Lock, versioning must be enabled in the bucket. Object Lock applies only to object versions.
Locking can have different types and modes. Depending on the lock type, you can set it on individual objects or on the bucket by default — the lock will apply to new objects.
The ability to manage locking also depends on the user's role and bucket policy rules, for more details, see the Managing S3 access guide. You can work with Object Lock in the Control Panel (capabilities are limited), via S3 API and tools that use it — for example, AWS CLI.
To manage object locks after configuring Object Lock, use the Managing object locks guide.
If you delete a project that contains locked objects, they will not be deleted as long as the lock is active. At the same time, they will not be displayed in the Control Panel or via the API. To restore locked objects after deleting a project, create a ticket.
Types and retention modes
Locking can be temporary or indefinite. Temporary locking has two modes: Governance and Compliance.
If both a temporary and an indefinite lock are enabled for an object, the indefinite lock takes precedence.
* Available only to users:
- with the
member;role; - with other roles with S3 access, if the bucket has an access policy that allows the action
s3:BypassGovernance.
Enable Object Lock in a bucket
Object Lock can be enabled by:
- The account owner;
- users with the
member,s3.admin, andobject_storage:admin;roles; - users with the
s3.bucket.user,s3.user, andobject_storage_userroles if the access policy allows them the actions3:PutBucketObjectLockConfiguration.
If you enable Object Lock, it cannot be disabled, and versioning cannot be suspended.
Enabling Object Lock does not lock objects automatically. After configuring Object Lock in a bucket, you will be able to:
- manage object locks;
- upload objects with an active lock (using only S3 API and tools that use it);
- manage the default retention lock in the bucket.
Control panel
AWS CLI
If versioning is disabled or suspended in a bucket, it will be enabled automatically when Object Lock is enabled.
-
In the control panel, on the top menu, click Products and select S3.
-
Go to the Buckets section.
-
Open the bucket page → Configuration tab.
-
In the Data protection block, in the Object Lock row, click Edit.
-
Select the Enable Object Lock checkbox.
-
Optional: enable default retention in the bucket:
6.1.Select the Enable default retention checkbox.
6.2.Select the lock mode.
6.3.Specify the lock duration. The maximum lock duration is:
- for Compliance mode — one year. To set a Compliance lock for more than one year, use the API or tools, such as AWS CLI;
- for Governance mode — 100 years.
You will be able to manage the default retention even after Object Lock is enabled.
-
Click Save.
Managing default retention in a bucket
Default retention can be managed by:
- Account Owner;
- users with the
member,s3.admin, andobject_storage:admin;roles; - users with the
s3.bucket.user,s3.user, andobject_storage_userroles, if the access policy allows them the relevant actions.
Enable default retention
The temporary lock will be applied to all new objects in the bucket.
Control panel
AWS CLI
-
In the control panel, on the top menu, click Products and select S3.
-
Go to the Buckets section.
-
Open the bucket page → Configuration tab.
-
In the Data protection block, in the Object Lock row, click Edit.
-
Make sure the Enable Object Lock checkbox is selected.
-
Select the Enable default retention checkbox.
-
Select a lock mode.
-
Specify the lock duration. The maximum lock duration is:
- for Compliance mode — one year. To set a Compliance lock for more than one year, use the API or tools, such as AWS CLI;
- for Governance mode — 100 years.
-
Click Save.
Change default retention duration
If the lock mode is:
- Governance — the lock duration can be shortened or extended;
- Compliance — the lock duration can only be extended.
Control panel
AWS CLI
-
In the control panel, on the top menu, click Products and select S3.
-
Go to the Buckets section.
-
Open the bucket page → Configuration tab.
-
In the Data protection block, in the Object Lock row, click Edit.
-
Specify a new lock duration. The maximum lock duration is:
- for Compliance mode — one year. To set a Compliance lock for more than one year, use the API or tools, such as AWS CLI;
- for Governance mode — 100 years.
-
Click Save.
Change default retention mode
You can only change the lock mode from Governance to Compliance.
Control panel
AWS CLI
- In the control panel, on the top menu, click Products and select S3.
- Go to the Buckets section.
- Open the bucket page → Configuration tab.
- In the Data protection block, in the Object Lock row, click Edit.
- Select the Compliance lock mode.
- Specify the lock duration. The maximum Compliance lock duration is one year. To set a Compliance lock for more than one year, use the API or tools, such as AWS CLI.
- Click Save.
Disable default retention
You can only disable default retention in Governance mode.
When disabling temporary locking, new objects will not be locked. Objects that were uploaded and automatically locked before disabling temporary locking by default will remain locked in accordance with the lock mode. Object Lock itself will not be disabled in the bucket.
Control panel
AWS CLI
Default retention can only be disabled in the control panel by the Account Owner or a user with the member role.
- In the control panel, on the top menu, click Products and select S3.
- Go to the Buckets section.
- Open the bucket page → Configuration tab.
- In the Data protection block, in the Object Lock row, click Edit.
- Clear the Enable default retention checkbox.
- Click Save.