【问题标题】:How to setup a policy for Amazon S3 bucket to be accessible only to an IAM user?如何将 Amazon S3 存储桶设置为仅可供 IAM 用户访问的策略?
【发布时间】:2012-12-24 23:28:33
【问题描述】:

我有一堆文件想放在 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>"
            ]
         }
    ]
}

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

相关用户附有“超级用户”政策:

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

}

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

【问题讨论】:

  • 你能发布一个完整的解决方案吗?

标签: rest amazon-s3 amazon policy


【解决方案1】:

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

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

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

【讨论】:

猜你喜欢
  • 2023-03-29
  • 2016-03-12
  • 2021-08-04
  • 2013-08-05
  • 2015-10-06
  • 2017-04-30
  • 2022-01-10
  • 2011-09-10
  • 2023-02-26
相关资源
最近更新 更多