How to get the ownership control details of an S3 bucket using Boto3 and AWS Client?

Amazon S3 bucket ownership controls define who owns objects uploaded to a bucket. Using the Boto3 library, you can retrieve these ownership control settings programmatically.

Understanding S3 Bucket Ownership Controls

S3 bucket ownership controls determine object ownership when objects are uploaded by other AWS accounts. The main ownership settings are:

  • BucketOwnerEnforced ? Bucket owner owns all objects regardless of uploader
  • BucketOwnerPreferred ? Bucket owner preferred but uploader can specify ownership
  • ObjectWriter ? Object uploader owns the object

Getting Bucket Ownership Controls

The following example demonstrates how to retrieve ownership control details using Boto3 ?

import boto3
from botocore.exceptions import ClientError

def get_bucket_ownership_control_of_s3(bucket_name):
    session = boto3.session.Session()
    s3_client = session.client('s3')
    try:
        result = s3_client.get_bucket_ownership_controls(Bucket=bucket_name)
    except ClientError as e:
        raise Exception("boto3 client error in get_bucket_ownership_control_of_s3: " + str(e))
    except Exception as e:
        raise Exception("Unexpected error in get_bucket_ownership_control_of_s3: " + str(e))
    return result

# Example usage
print(get_bucket_ownership_control_of_s3("Bucket_1"))

Output

{
    'OwnershipControls': {
        'Rules': [
            {
                'ObjectOwnership': 'BucketOwnerPreferred'
            }
        ]
    }
}

Error Handling

Common exceptions you might encounter:

  • NoSuchBucket ? The specified bucket does not exist
  • OwnershipControlsNotFoundError ? No ownership controls are set
  • AccessDenied ? Insufficient permissions to access the bucket

How It Works

The get_bucket_ownership_controls() method retrieves the ownership control configuration. The response contains an OwnershipControls dictionary with a Rules array specifying the ObjectOwnership setting.

Conclusion

Use get_bucket_ownership_controls() to retrieve S3 bucket ownership settings. Always implement proper error handling for cases where ownership controls aren't configured or access is denied.

Updated on: 2026-03-25T18:11:28+05:30

890 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements