versioning is a backup of current object even delete or overwrite some action in current object we can recover from versioning.
it is primarily used to monitor who can accessing the bucket.
we use bucket policy to control specific cloud storage resources
accidental deletion protection, overwrites protection,easy recovery
automatically scales