Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketOwnershipControls 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 PutBucketOwnershipControls :

  • GetBucketOwnershipControls
  • DeleteBucketOwnershipControls

See also: AWS API Documentation

Request Syntax

response = client.put_bucket_ownership_controls(
        'Rules': [
                'ObjectOwnership': 'BucketOwnerPreferred'|'ObjectWriter'|'BucketOwnerEnforced'
  • Bucket (string) --


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

  • ContentMD5 (string) --

    The MD5 hash of the OwnershipControls request body.

    For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

  • ExpectedBucketOwner (string) -- The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).
  • OwnershipControls (dict) --


    The OwnershipControls (BucketOwnerEnforced, BucketOwnerPreferred, or ObjectWriter) that you want to apply to this Amazon S3 bucket.

    • Rules (list) -- [REQUIRED]

      The container element for an ownership control rule.

      • (dict) --

        The container element for an ownership control rule.

        • ObjectOwnership (string) -- [REQUIRED]

          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 bucket owner full control ACLs, such as the bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed in the XML format.