【问题标题】:Amazon S3 Bucket policy to allow user to write to the bucket but that bucket onlyAmazon S3 存储桶策略允许用户写入存储桶,但仅限该存储桶
【发布时间】:2016-07-15 10:16:53
【问题描述】:

我在 Amazon S3 中有一个名为“data1”的存储桶。

当我使用 Cyber​​duck 连接到我的 S3 时,我希望用户只能访问“data1”存储桶,而不能访问其他存储桶。

我还设置了一个名为 data1 的新 IAM 用户,并将“AmazonS3FullAccess”策略附加到该用户的权限 - 但这提供了对所有存储桶的访问权限 - 这是您所期望的。

我想我需要为此设置另一个策略 - 但是我会执行什么策略?

【问题讨论】:

标签: amazon-web-services amazon-s3


【解决方案1】:

首先找到用户原则。这些可以通过查看此命令输出的 Arn 字段来找到

aws iam list-users

例如

{
    "Users": [
        {
            "UserName": "eric",
            "Path": "/",
            "CreateDate": "2016-07-12T09:08:21Z",
            "UserId": "AIDAJXPI4SWK7X7PY4RX2",
            "Arn": "arn:aws:iam::930517348925:user/eric"
        },
        {
            "UserName": "bambi",
            "Path": "/",
            "CreateDate": "2015-07-15T11:07:16Z",
            "UserId": "AIDAJ2LEXFRXJI5AKUU7W",
            "Arn": "arn:aws:iam::930517348725:user/bambi"
        }
]
}

然后设置 S3 存储桶策略。这些适用于存储桶并按存储桶设置。正常 IAM 策略是按 IAM 实体设置的,并附加到 IAM 实体,例如用户。您已有 IAM 政策。对于此要求,需要 S3 策略。

强调一下 - S3 策略适用于存储桶并“附加”到 S3,IAM 策略适用于 IAM 并与 IAM 对象相关联。当 IAM 实体尝试使用 S3 存储桶时,S3 策略和 IAM 策略都可以应用。见http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html

一旦您知道原理的 ARN,然后添加这样的 S3 策略

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"AddPerm",
      "Effect":"Allow",
      "Principal": "arn:aws:iam::930517348725:user/bambi",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::examplebucket/*"]
    },
    {
      "Sid":"block",
      "Effect":"Deny",
      "Principal": "arn:aws:iam::930517348725:user/bambi",
      "Action":["s3:*"],
      "Resource":["arn:aws:s3:::*"]
    }
  ]
}

我没有对此进行测试,但这是一般的想法。对不起,我没有在示例中使用“data1”作为原则和存储桶名称,但这太混乱了..:)

【讨论】:

    【解决方案2】:

    对于只写访问,您可以附加这样的策略:

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

    但看起来你想做的不仅仅是写作?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 2011-09-10
      • 2023-02-26
      • 2021-06-28
      • 2021-01-19
      • 2013-01-08
      • 2018-07-12
      • 2013-12-21
      相关资源
      最近更新 更多