aws s3桶策略

时间:2016-01-08 10:08:34

标签: amazon-web-services amazon-s3 policy

我创建了一个简单的策略来访问经过身份验证的(访问密钥/密码)用户的特定存储桶。以下是政策

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

但是用户无法访问它。如果我用“arn:aws:s3 ::: *”替换资源,它可以工作,但显示所有存储桶到附加用户。

2 个答案:

答案 0 :(得分:4)

请改为尝试:

{
  "Statement": [
    {
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::xxxxxxx",
        "arn:aws:s3:::xxxxxxx/*"
      ]
    }
  ]
}

您需要在存储桶(/ *)中授予访问权限,然后授予存储桶本身,这是您缺少的部分。

答案 1 :(得分:3)

作为E.J. Brennan建议您可以将存储桶本身添加到资源列表,但这将使用户有权删除存储桶本身。如果您只是希望他们查看存储桶并能够修改其中的对象,除了您目前拥有的内容之外,还可以授予对存储桶的列表访问权限:

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