Table Of Contents


User Guide

First time using the AWS CLI? See the User Guide for help getting started.

[ aws . s3api ]



Sets the permissions on a bucket using access control lists (ACL).

See also: AWS API Documentation

See 'aws help' for descriptions of global parameters.


[--acl <value>]
[--access-control-policy <value>]
--bucket <value>
[--content-md5 <value>]
[--grant-full-control <value>]
[--grant-read <value>]
[--grant-read-acp <value>]
[--grant-write <value>]
[--grant-write-acp <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]


--acl (string)

The canned ACL to apply to the bucket.

Possible values:

  • private
  • public-read
  • public-read-write
  • authenticated-read

--access-control-policy (structure)

Contains the elements that set the ACL permissions for an object per grantee.

JSON Syntax:

  "Grants": [
      "Grantee": {
        "DisplayName": "string",
        "EmailAddress": "string",
        "ID": "string",
        "Type": "CanonicalUser"|"AmazonCustomerByEmail"|"Group",
        "URI": "string"
      "Permission": "FULL_CONTROL"|"WRITE"|"WRITE_ACP"|"READ"|"READ_ACP"
  "Owner": {
    "DisplayName": "string",
    "ID": "string"

--bucket (string)

--content-md5 (string)

--grant-full-control (string)

Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.

--grant-read (string)

Allows grantee to list the objects in the bucket.

--grant-read-acp (string)

Allows grantee to read the bucket ACL.

--grant-write (string)

Allows grantee to create, overwrite, and delete any object in the bucket.

--grant-write-acp (string)

Allows grantee to write the ACL for the applicable bucket.

--cli-input-json (string) Performs service operation based on the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, the CLI values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally.

--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.

See 'aws help' for descriptions of global parameters.


This example grants full control to two AWS users ( and and read permission to everyone:

aws s3api put-bucket-acl --bucket MyBucket --grant-full-control, --grant-read uri=

See for details on custom ACLs (the s3api ACL commands, such as put-bucket-acl, use the same shorthand argument notation).