# Policy documents The IAM policies generated by this tool for a bucket called `my-s3-bucket` would look like this: ## read-write (default) ``` { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::my-s3-bucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectLegalHold", "s3:GetObjectRetention", "s3:GetObjectTagging" ], "Resource": [ "arn:aws:s3:::my-s3-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::my-s3-bucket/*" ] } ] } ``` ## `--read-only` ``` { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::my-s3-bucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectLegalHold", "s3:GetObjectRetention", "s3:GetObjectTagging" ], "Resource": [ "arn:aws:s3:::my-s3-bucket/*" ] } ] } ``` ## `--write-only` ``` { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::my-s3-bucket/*" ] } ] } ``` ## `--prefix my-prefix/` ``` { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::my-s3-bucket" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-s3-bucket" ], "Condition": { "StringLike": { "s3:prefix": [ "my-prefix/*" ] } } }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectLegalHold", "s3:GetObjectRetention", "s3:GetObjectTagging" ], "Resource": [ "arn:aws:s3:::my-s3-bucket/my-prefix/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::my-s3-bucket/my-prefix/*" ] } ] } ``` ## `--prefix my-prefix/ --read-only` ``` { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::my-s3-bucket" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-s3-bucket" ], "Condition": { "StringLike": { "s3:prefix": [ "my-prefix/*" ] } } }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectLegalHold", "s3:GetObjectRetention", "s3:GetObjectTagging" ], "Resource": [ "arn:aws:s3:::my-s3-bucket/my-prefix/*" ] } ] } ``` ## `--prefix my-prefix/ --write-only` ``` { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::my-s3-bucket/my-prefix/*" ] } ] } ``` (public_bucket_policy)= ## public bucket policy Buckets created using the `--public` option will have the following bucket policy attached to them: ``` { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::my-s3-bucket/*" ] } ] } ```