Support S3 versioning #166

Open
opened 2021-12-06 13:35:09 +00:00 by lx · 5 comments
Owner
  • Do we want to support S3 versioning ? I think we mostly don't care
  • If we want to do it, think how to do it
  • Do it
- [ ] Do we want to support S3 versioning ? I think we mostly don't care - [ ] If we want to do it, think how to do it - [ ] Do it
lx added the
kind
improvement
scope
s3-api
labels 2021-12-06 13:35:09 +00:00
lx added this to the Speculative milestone 2022-01-11 19:04:59 +00:00
Owner

At the beginning of the development, I said it could be interesting to have a delay between the deletion of an object and its effective removal of the cluster. Such behavior can be achieved by enabling bucket versioning + adding a lifecycle policy.

Having these 2 features could enable many people to implement a backup strategy "for free", including us.

For example, currently I am investigating ways to backup Garage buckets by mirroring them on minio with s3s3mirror. By activating versioning on Minio + a lifecycle policy, it will be possible to restore any file during a given period (eg. 100 days) even if it has been wrongly deleted or modified by an operator, a faulty software or a user.

At the beginning of the development, I said it could be interesting to have a delay between the deletion of an object and its effective removal of the cluster. Such behavior can be achieved by enabling bucket versioning + adding a lifecycle policy. Having these 2 features could enable many people to implement a backup strategy "for free", including us. For example, currently I am investigating ways to backup Garage buckets by mirroring them on minio with [s3s3mirror](https://github.com/cobbzilla/s3s3mirror/). By activating versioning on Minio + a lifecycle policy, it will be possible to restore any file during a given period (eg. 100 days) even if it has been wrongly deleted or modified by an operator, a faulty software or a user.
Contributor

I have two usecases for a versioning system:

  1. The simple backup described above, just to assist users who say "I accidentally deleted a file and I'd like it back please"

  2. Thwarting any potential ransomware attacks that happen to figure out how to 'encrypt' files in an object store (though this would require that disabling the versioning to be additionally restricted to admin's only)

I have two usecases for a versioning system: 1. The simple backup described above, just to assist users who say "I accidentally deleted a file and I'd like it back please" 2. Thwarting any potential ransomware attacks that happen to figure out how to 'encrypt' files in an object store (though this would require that disabling the versioning to be additionally restricted to admin's only)

Another use case for versioning is to view the document's editing history. Instead of creating multiple copies of a document, one can use versioning to view the editing history of a document.

Another use case for versioning is to view the document's editing history. Instead of creating multiple copies of a document, one can use versioning to view the editing history of a document.

Use case:

I have a few repos with veeam and versioning is a key feature for backups, due to ransomware.

Use case: I have a few repos with veeam and versioning is a key feature for backups, due to ransomware.

I would like to use our garage cluster with teleport, unfortunately versionning is required :-(

https://goteleport.com/docs/reference/backends/#s3-session-recordings

I would like to use our garage cluster with teleport, unfortunately versionning is required :-( https://goteleport.com/docs/reference/backends/#s3-session-recordings
Sign in to join this conversation.
No milestone
No project
No assignees
6 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Deuxfleurs/garage#166
No description provided.