S3 API Compatibility and Permissions

This document lists all S3 API operations, their support status and required permissions.

Permission Structure

Storadera uses the simplified S3 permission structure.

Each account can create one or more Roles.

Each Role can have a different set of permissions.

Each Role has up to two S3 keys.

There are 2 levels of permissions for Role:

– Role level permissions

– Bucket level permissions

In some cases, the operation requires both levels of permissions.

Role Level Permissions

PermissionDescription
Admin bucketsCan modify bucket settings (versioning, object lock, etc.). Applies only to buckets with Write access
Create bucketsAllows creating new buckets. Requires Bucket access: All
Delete bucketsAllows deleting buckets. Requires Delete permission for that bucket

Bucket Level Permissions

Bucket accessDescriptionNew buckets
AllAll buckets are accessibleAutomatically accessible
CustomSelect custom permissions for every bucketNot accessible

When Bucket access is Custom, each bucket can have one of these modes:

ModeDescription
NoneNo access to the bucket
FullFull access (List + Read + Write + Delete)
LimitedSelect specific permissions from: List, Read, Write, Delete

Individual permissions (for Limited mode):

PermissionDescription
ListList objects in bucket
ReadRead objects and bucket info
WriteWrite/modify objects
DeleteDelete objects

Bucket Permission Check Logic

For operations requiring bucket level permissions:

– If Bucket access is All → Full access granted to all buckets

– If Bucket access is Custom → checks per-bucket permission mode and settings

Supported Operations

Bucket Operations

OperationPermissions Required
CreateBucketCreate buckets
DeleteBucketDelete buckets (role level) + Delete
GetBucketAclRead
GetBucketLocationRead
GetBucketVersioningRead
GetObjectLockConfigurationRead
HeadBucketRead
ListBucketsBucket access: All → all buckets, otherwise only buckets with permissions
PutBucketVersioningAdmin buckets (role level) + Write
PutObjectLockConfigurationAdmin buckets (role level) + Write

Object Operations

OperationPermissions Required
CopyObjectRead (source bucket) + Write (target bucket)
DeleteObjectDelete
DeleteObjectsDelete
GetObjectRead
GetObjectRetentionRead
HeadObjectRead
ListObjectsList
ListObjectsV2List
ListObjectVersionsRead
PutObjectWrite
PutObjectRetentionWrite

Multipart Upload Operations

OperationPermissions Required
AbortMultipartUploadDelete
CompleteMultipartUploadWrite
CreateMultipartUploadWrite
ListMultipartUploadsList
ListPartsRead
UploadPartWrite
UploadPartCopyRead (source bucket) + Write (target bucket)

Unsupported Operations

Unsupported Bucket Operations

Operation
DeleteBucketAnalyticsConfiguration
DeleteBucketCors
DeleteBucketEncryption
DeleteBucketIntelligentTieringConfiguration
DeleteBucketInventoryConfiguration
DeleteBucketLifecycle
DeleteBucketMetricsConfiguration
DeleteBucketOwnershipControls
DeleteBucketPolicy
DeleteBucketReplication
DeleteBucketTagging
DeleteBucketWebsite
DeletePublicAccessBlock
GetBucketAccelerateConfiguration
GetBucketAnalyticsConfiguration
GetBucketCors
GetBucketEncryption
GetBucketIntelligentTieringConfiguration
GetBucketInventoryConfiguration
GetBucketLifecycleConfiguration
GetBucketLogging
GetBucketMetricsConfiguration
GetBucketNotificationConfiguration
GetBucketOwnershipControls
GetBucketPolicy
GetBucketPolicyStatus
GetBucketReplication
GetBucketRequestPayment
GetBucketTagging
GetBucketWebsite
GetPublicAccessBlock
ListBucketAnalyticsConfigurations
ListBucketIntelligentTieringConfigurations
ListBucketInventoryConfigurations
ListBucketMetricsConfigurations
PutBucketAccelerateConfiguration
PutBucketAcl
PutBucketAnalyticsConfiguration
PutBucketCors
PutBucketEncryption
PutBucketIntelligentTieringConfiguration
PutBucketInventoryConfiguration
PutBucketLifecycleConfiguration
PutBucketLogging
PutBucketMetricsConfiguration
PutBucketNotificationConfiguration
PutBucketOwnershipControls
PutBucketPolicy
PutBucketReplication
PutBucketRequestPayment
PutBucketTagging
PutBucketWebsite
PutPublicAccessBlock

Unsupported Object Operations

Operation
DeleteObjectTagging
GetObjectAcl
GetObjectAttributes
GetObjectLegalHold
GetObjectTagging
GetObjectTorrent
PutObjectAcl
PutObjectLegalHold
PutObjectTagging
RestoreObject
SelectObjectContent
WriteGetObjectResponse