s3:PutObject

Write

s3:PutObject is a Write access-level action in the s3 service. Grants permission to add an object to a bucket

Resource types

ARNs that s3:PutObject can be scoped to in an IAM policy.

arn:${Partition}:s3:${Region}:${Account}:accesspoint/${AccessPointName}/object/${ObjectName}
accesspointobject
arn:${Partition}:s3:::${BucketName}/${ObjectName}
object

Condition keys

Keys you can use in the Condition block of a policy that grants s3:PutObject.

s3:AccessGrantsInstanceArn ARN

Filters access by access grants instance ARN

s3:ObjectCreationOperation Bool

Filters access by whether or not the operation creates an object

s3:RequestObjectTag/<key> String

Filters access by the tag keys and values to be added to objects

s3:RequestObjectTagKeys ArrayOfString

Filters access by the tag keys to be added to objects

s3:ResourceAccount String

Filters access by the resource owner AWS account ID

s3:TlsVersion Numeric

Filters access by the TLS version used by the client

s3:authType String

Filters access by authentication method

s3:if-match String

Filters access by the request's 'If-Match' conditional header

s3:if-none-match String

Filters access by the request's 'If-None-Match' conditional header

s3:object-lock-event-hold String

Filters access by object event hold status (ON or OFF)

s3:object-lock-event-hold-duration-days Numeric

Filters access by object event hold duration in days

s3:object-lock-legal-hold String

Filters access by object legal hold status

s3:object-lock-mode String

Filters access by object retention mode (COMPLIANCE or GOVERNANCE)

s3:object-lock-remaining-retention-days Numeric

Filters access by remaining object retention days

s3:object-lock-retain-until-date Date

Filters access by object retain-until date

s3:signatureAge Numeric

Filters access by the age in milliseconds of the request signature

s3:signatureversion String

Filters access by the version of AWS Signature used on the request

s3:x-amz-acl String

Filters access by canned ACL in the request's x-amz-acl header

s3:x-amz-content-sha256 String

Filters access by unsigned content in your bucket

s3:x-amz-copy-source String

Filters access by copy source bucket, prefix, or object in the copy object requests

s3:x-amz-grant-full-control String

Filters access by x-amz-grant-full-control (full control) header

s3:x-amz-grant-read String

Filters access by x-amz-grant-read (read access) header

s3:x-amz-grant-read-acp String

Filters access by the x-amz-grant-read-acp (read permissions for the ACL) header

s3:x-amz-grant-write String

Filters access by the x-amz-grant-write (write access) header

s3:x-amz-grant-write-acp String

Filters access by the x-amz-grant-write-acp (write permissions for the ACL) header

s3:x-amz-metadata-directive String

Filters access by object metadata behavior (COPY or REPLACE) when objects are copied

s3:x-amz-object-annotation-directive String

Filters access by the annotation copy directive specified in the request

s3:x-amz-server-side-encryption String

Filters access by server-side encryption

s3:x-amz-server-side-encryption-aws-kms-key-id ARN

Filters access by AWS KMS customer managed CMK for server-side encryption

s3:x-amz-server-side-encryption-customer-algorithm String

Filters access by customer specified algorithm for server-side encryption

s3:x-amz-storage-class String

Filters access by storage class

s3:x-amz-website-redirect-location String

Filters access by a specific website redirect location for buckets that are configured as static websites

aws:ResourceTag/${TagKey} String

Filters access by the tags associated with the resource

s3:AccessPointNetworkOrigin String

Filters access by the network origin (Internet or VPC)

s3:AccessPointTag/${TagKey} String

Filters access by existing access point tag key and value

s3:BucketTag/${TagKey} String

Filters access by the tags associated with the bucket

s3:DataAccessPointAccount String

Filters access by the AWS Account ID that owns the access point

s3:DataAccessPointArn ARN

Filters access by an access point Amazon Resource Name (ARN)

Example IAM policy

A minimal policy that allows s3:PutObject. Replace "Resource": "*" with a specific ARN to follow least privilege.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowS3PutObject",
      "Effect": "Allow",
      "Action": "s3:PutObject",
      "Resource": "*"
    }
  ]
}

Related actions in s3

View all s3 actions →