L
o
a
d
i
n
g
.
.
.
https://michele.zonca.org

AWS IAM Policy: give access to one bucket

By Michele Zonca

6 October 2011

1 minutes to read

Today I had to create a new user in our S3 account and to give him all permissions to just one bucket.

As you can see in our S3 file-manager implementation ( https://github.com/Mashape/file-manager ) I use these two lines to load credentials from a properties file and to connect to the S3 bucket

` s3Service = new RestS3Service(awsCredentials);bucket = s3Service.getBucket(properties.getProperty(“s3.bucket”)); `

The second lines throws an exception if you don’t give s3:ListAllMyBuckets permission to that user. So the final policy I used is this:

  "Statement": [
    {
      "Action": [
        "s3:ListAllMyBuckets"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::bucket",
        "arn:aws:s3:::bucket/*"
      ]
    }
  ]

Obviously you can avoid the “Action”: “s3:*” part and put just a list of actions you want to allow..