aws s3 存储桶策略

aws s3 bucket policy

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

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

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

试试这个:

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

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

作为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/*"
            ]
        }
    ]
}