title: AWS S3 grant access to single IAM user
body: <p>I have a S3 bucket and dedicated user for that bucket. How could I limit write access to this particular bucket for this dedicated user only and in the same time allow everyone else to read objects from S3?</p>
  
  <p>Should I write a bucket policy for that? I am frustrated with primitive permissions I can configure from console and bucket policies. It seems like the same thing.</p>
  
  <p>I started with such policy made via generator, but I am not sure it is correct.</p>
  
  <pre><code>{
    "Id": "Policy1408967923699",
    "Statement": [
      {
        "Sid": "Stmt1408967189392",
        "Action": [
          "s3:GetObject"
        ],
        "Effect": "Allow",
        "Resource": "arn:aws:s3:::bucket-name/*",
        "Principal": {
          "AWS": [
            "*"
          ]
        }
      },
      {
        "Sid": "Stmt1408967224662",
        "Action": [
          "s3:GetObject",
          "s3:PutObject"
        ],
        "Effect": "Allow",
        "Resource": "arn:aws:s3:::bucket-name/*",
        "Principal": {
          "AWS": [
            "arn:aws:iam::111122223333:user/bucket-user"
          ]
        }
      }
    ]
  }
  </code></pre>