Jump to Content

Class PutBucketPolicyCommandProtected

Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity must have the PutBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.

If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

As a security precaution, the root user of the Amazon Web Services account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action.

For more information, see Bucket policy examples.

The following operations are related to PutBucketPolicy:


Use a bare-bones client and the command you need to make an API call.

import { S3Client, PutBucketPolicyCommand } from "@aws-sdk/client-s3"; // ES Modules import
// const { S3Client, PutBucketPolicyCommand } = require("@aws-sdk/client-s3"); // CommonJS import
const client = new S3Client(config);
const input = {
Bucket: "STRING_VALUE", // required
ChecksumAlgorithm: "CRC32" || "CRC32C" || "SHA1" || "SHA256",
ConfirmRemoveSelfBucketAccess: true || false,
Policy: "STRING_VALUE", // required
ExpectedBucketOwner: "STRING_VALUE",
const command = new PutBucketPolicyCommand(input);
const response = await client.send(command);







Set bucket policy

// The following example sets a permission policy on a bucket.
const input = {
"Bucket": "examplebucket",
"Policy": "{\"Version\": \"2012-10-17\", \"Statement\": [{ \"Sid\": \"id-1\",\"Effect\": \"Allow\",\"Principal\": {\"AWS\": \"arn:aws:iam::123456789012:root\"}, \"Action\": [ \"s3:PutObject\",\"s3:PutObjectAcl\"], \"Resource\": [\"arn:aws:s3:::acl3/*\" ] } ]}"
const command = new PutBucketPolicyCommand(input);
await client.send(command);
// example id: set-bucket-policy-1482448903302