-1

我有一堆文件想放在 S3 上,这样对它们的访问仅限于特定的 IAM 用户。我尝试将策略与用户和存储桶相关联,并尝试使用 s3-cmd 访问存储桶中的文件。但是,我在响应中不断收到拒绝访问 xml(403 禁止)。我的政策如下所示:

{
    "Version": "2008-10-17",
    "Statement": [
        {
        "Sid": "<a statementID>",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::<my-account-num>:user/<username>"
        },
        "Action": "s3:*",
        "Resource": [
            "arn:aws:s3:::<bucket-name>/*",
            "arn:aws:s3:::<bucket>"
            ]
         }
    ]
}

只有当我将主体设置为“AWS”:“*”时,我才能通过 REST 调用下载资源。

有问题的用户附加了“高级用户”政策:

{
  "Statement": [
   {
      "Effect": "Allow",
      "NotAction": "iam:*",
      "Resource": "*"
   }
 ]

}

如何使用 S3 存储桶进行仅限私有访问?请帮忙。

4

1 回答 1

-2

问题不在于策略,而在于访问它的机器。我试图从 EC2 实例中对 S3 资源进行检索操作。今天我发现可以让每个 EC2 实例“承担”一个 IAM 角色。当实例这样做时,它会继承为该角色指定的权限。因此,只需使用以下策略创建角色:

{
  "Statement": [
    {
     "Effect": "Allow",
     "Action": "s3:*",
     "Resource": "*"
    }
   ]
}

并使 EC2 实例承担此角色允许它与 S3 存储桶进行通信。

于 2013-01-16T14:30:37.317 回答