View a markdown version of this page

Required permissions for Amazon S3 API operations - Amazon Simple Storage Service

Required permissions for Amazon S3 API operations

Note

This page is about Amazon S3 policy actions for general purpose buckets. To learn more about Amazon S3 policy actions for directory buckets, see Actions for directory buckets.

To perform an S3 API operation, you must have the right permissions. This page maps S3 API operations to the required permissions. To grant permissions to perform an S3 API operation, you must compose a valid policy (such as an S3 bucket policy or IAM identity-based policy), and specify corresponding actions in the Action element of the policy. These actions are called policy actions. Not every S3 API operation is represented by a single permission (a single policy action), and some permissions (some policy actions) are required for many different API operations.

When you compose policies, you must specify the Resource element based on the correct resource type required by the corresponding Amazon S3 policy actions. This page categorizes permissions to S3 API operations by the resource types. For more information about the resource types, see Resource types defined by Amazon S3 in the Service Authorization Reference. For a full list of Amazon S3 policy actions, resources, and condition keys for use in policies, see Actions, resources, and condition keys for Amazon S3 in the Service Authorization Reference. For a complete list of Amazon S3 API operations, see Amazon S3 API Actions in the Amazon Simple Storage Service API Reference.

For more information on how to address the HTTP 403 Forbidden errors in S3, see Troubleshoot access denied (403 Forbidden) errors in Amazon S3. For more information on the IAM features to use with S3, see How Amazon S3 works with IAM. For more information on S3 security best practices, see Security best practices for Amazon S3.

Bucket operations are S3 API operations that operate on the bucket resource type. You must specify S3 policy actions for bucket operations in bucket policies or IAM identity-based policies.

In the policies, the Resource element must be the bucket Amazon Resource Name (ARN). For more information about the Resource element format and example policies, see Bucket operations.

Note

To grant permissions to bucket operations in access point policies, note the following:

The following is the mapping of bucket operations and required policy actions.

API operations Policy actions Description of policy actions

CreateBucket

(Required) s3:CreateBucket

Required to create a new s3 bucket.

(Conditionally required) s3:PutBucketAcl

Required if you want to use access control list (ACL) to specify permissions on a bucket when you make a CreateBucket request.

(Conditionally required) s3:PutBucketObjectLockConfiguration, s3:PutBucketVersioning

Required if you want to enable Object Lock when you create a bucket.

(Conditionally required) s3:PutBucketOwnershipControls

Required if you want to specify S3 Object Ownership when you create a bucket.

CreateBucketMetadataConfiguration (V2 API operation. The IAM policy action name is the same for the V1 and V2 API operations.)

(Required) s3:CreateBucketMetadataTableConfiguration, s3tables:CreateTableBucket, s3tables:CreateNamespace, s3tables:CreateTable, s3tables:GetTable, s3tables:PutTablePolicy, s3tables:PutTableEncryption, kms:DescribeKey

Required to create a metadata table configuration on a general purpose bucket.

To create your AWS managed table bucket and the metadata tables that are specified in your metadata table configuration, you must have the specified s3tables permissions.

If you want to encrypt your metadata tables with server-side encryption with AWS Key Management Service (AWS KMS) keys (SSE-KMS), you need additional permissions in your KMS key policy. For more information, see Setting up permissions for configuring metadata tables.

If you also want to integrate your AWS managed table bucket with AWS analytics services so that you can query your metadata table, you need additional permissions. For more information, see Integrating Amazon S3 Tables with AWS analytics services.

CreateBucketMetadataTableConfiguration (V1 API operation)

(Required) s3:CreateBucketMetadataTableConfiguration, s3tables:CreateNamespace, s3tables:CreateTable, s3tables:GetTable,