S3 / Client / get_bucket_ownership_controls




This operation is not supported by directory buckets.

Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:GetBucketOwnershipControls permission. For more information about Amazon S3 permissions, see Specifying permissions in a policy.

For information about Amazon S3 Object Ownership, see Using Object Ownership.

The following operations are related to GetBucketOwnershipControls:

  • PutBucketOwnershipControls

  • DeleteBucketOwnershipControls

See also: AWS API Documentation

Request Syntax

response = client.get_bucket_ownership_controls(
  • Bucket (string) –


    The name of the Amazon S3 bucket whose OwnershipControls you want to retrieve.

  • ExpectedBucketOwner (string) – The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

Return type:



Response Syntax

    'OwnershipControls': {
        'Rules': [
                'ObjectOwnership': 'BucketOwnerPreferred'|'ObjectWriter'|'BucketOwnerEnforced'

Response Structure

  • (dict) –

    • OwnershipControls (dict) –

      The OwnershipControls (BucketOwnerEnforced, BucketOwnerPreferred, or ObjectWriter) currently in effect for this Amazon S3 bucket.

      • Rules (list) –

        The container element for an ownership control rule.

        • (dict) –

          The container element for an ownership control rule.

          • ObjectOwnership (string) –

            The container element for object ownership for a bucket’s ownership controls.

            BucketOwnerPreferred - Objects uploaded to the bucket change ownership to the bucket owner if the objects are uploaded with the bucket-owner-full-control canned ACL.

            ObjectWriter - The uploading account will own the object if the object is uploaded with the bucket-owner-full-control canned ACL.

            BucketOwnerEnforced - Access control lists (ACLs) are disabled and no longer affect permissions. The bucket owner automatically owns and has full control over every object in the bucket. The bucket only accepts PUT requests that don’t specify an ACL or specify bucket owner full control ACLs (such as the predefined bucket-owner-full-control canned ACL or a custom ACL in XML format that grants the same permissions).

            By default, ObjectOwnership is set to BucketOwnerEnforced and ACLs are disabled. We recommend keeping ACLs disabled, except in uncommon use cases where you must control access for each object individually. For more information about S3 Object Ownership, see Controlling ownership of objects and disabling ACLs for your bucket in the Amazon S3 User Guide.


            This functionality is not supported for directory buckets. Directory buckets use the bucket owner enforced setting for S3 Object Ownership.