

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 允许对 Amazon S3 存储桶的读取和写入访问权限
<a name="users-policies-all-access"></a>

此部分说明了如何创建 IAM 策略，以允许对特定 Amazon S3 存储桶进行读写访问。向您的用户分配具有此 IAM 策略的 IAM 角色后，该用户 read/write 便可以访问指定的 Amazon S3 存储桶。

以下策略允许通过编程方式对 Amazon S3 存储桶进行读写访问。只有当您需要启用跨账户存取时，才需要 `GetObjectACL` 和 `PutObjectACL` 语句。也就是说，您的 Transfer Family 服务器需要访问其他账户中的存储桶。

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid":"ReadWriteS3",
      "Action": [
            "s3:ListBucket"
                ],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:GetObjectTagging",
        "s3:DeleteObject",              
        "s3:DeleteObjectVersion",
        "s3:GetObjectVersion",
        "s3:GetObjectVersionTagging",
        "s3:GetObjectACL",
        "s3:PutObjectACL"
      ],
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"]
    }
  ]
}
```

`ListBucket` 操作需要对存储桶本身的权限。`PUT`、`GET` 和 `DELETE` 操作需要对象权限。由于这些资源不同，因此使用不同的 Amazon 资源名称 (ARNs) 来指定。

要进一步限制用户，使其只能访问具有指定 `home` 前缀的 Amazon S3 存储桶，请参阅 [为 Amazon S3 存储桶创建会话策略](users-policies-session.md)。