Permissions can be set using bucket policies, ACLs (Access Control Lists), and IAM policies. Here’s an example of setting a bucket policy using Boto3:
import boto3
s3 = boto3.client('s3')
bucket_name = 'my-example-bucket'
bucket_policy = {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": f"arn:aws:s3:::{bucket_name}/*"
}
]
}
# Convert the policy from JSON dict to string
bucket_policy = json.dumps(bucket_policy)
# Set the new policy
s3.put_bucket_policy(Bucket=bucket_name, Policy=bucket_policy)
print(f"Policy has been set for {bucket_name}")