S3 / Client / put_bucket_ownership_controls




This operation is not supported by directory buckets.

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 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).

  • 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 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.