amazon web services -一个S3 Bucket中geobjects的AWS IAM权限不工作



我正在尝试为用户编写一个权限,以便能够访问一个特定桶中的对象。

我现在有:

{
  "Version": "2012-10-17",
  "Statement":[{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": ["arn:aws:s3:::test",
                 "arn:aws:s3:::test/*"]
    }
  ]
}

,但用户仍然可以访问我的所有其他桶。请注意,我的其他桶没有策略…我认为这不重要。我只是希望该用户的IAM被允许到特定的桶

Amazon S3是最复杂的服务之一,因为它提供了三种不同的权限机制,这些机制可以同时应用,例如IAM策略、桶策略和acl !噢我的天!(控制对S3资源的访问),可以很好地描述主题,特别是一节,授权如何与多种访问控制机制一起工作?:

当AWS主体向S3发出请求时,授权决策取决于应用的所有IAM策略、S3桶策略和S3 acl的联合。

您所经历的行为表明某些配置错误,即您可能允许访问您可能不知道的级别的桶-仅关于Amazon IAM, IAM策略模拟器是调试此类情况的极好工具,我强烈建议首先验证您的配置。

然而,虽然这对大多数服务来说已经足够了,但它并没有涵盖上面概述的S3的其他两种权限机制,但至少已经隔离了分析。

请尝试以下IAM用户策略,该策略只允许对单个桶进行完全访问。

请注意,'list all buckets'是必需的,但是用户将不能访问除您在策略中指定的bucket之外的其他bucket。

{
   "Statement":[
  {
     "Effect":"Allow",
     "Action":[
        "s3:ListAllMyBuckets"
     ],
     "Resource":"arn:aws:s3:::*"
  },
  {
     "Effect":"Allow",
     "Action":[
        "s3:ListBucket",
        "s3:GetBucketLocation"
     ],
     "Resource":"arn:aws:s3:::examplebucket"
  },
  {
     "Effect":"Allow",
     "Action":[
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
     ],
     "Resource":"arn:aws:s3:::examplebucket/*"
  }
   ]
}

相关内容

  • 没有找到相关文章