Существует ли политика S3 для ограничения доступа только для просмотра / доступа к одному сегменту? - PullRequest
106 голосов
/ 07 июля 2011

У меня есть простая корзина, которая выглядит как images.mysite.com на моем S3 и других корзинах, содержащих резервные копии и т. Д.

Я хочу разрешить конкретному пользователю иметь возможность доступа к корзине images.mysite.com по порядкузагружать изображения.Тем не менее, я не хочу, чтобы он видел другие ведра;даже то, что они существуют.

Я не мог сделать политику, которая делает это;каждый раз, когда я пытаюсь что-то ограничить, это блокирует список всех блоков.

Ответы [ 22 ]

0 голосов
/ 22 декабря 2016

Добавьте предложение Deny для сегментов, к которым вы не хотите обращаться.Помните, что они все еще могут быть в списке, но вы не сможете получить доступ к содержимому внутри них.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::bucket-name",
                "arn:aws:s3:::bucket-name/*"
            ]
        }
    ]
}
0 голосов
/ 20 августа 2015

Я просто добавляю аналогичную потребность, решаемую так:

{
  "Version": "2012-10-17",
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "s3:Get*",
            "s3:Put*",
            "s3:DeleteObject",
            "s3:ListBucket"
        ],
        "Resource": [
            "arn:aws:s3:::my-bucket-name",
            "arn:aws:s3:::my-bucket-name/*"
        ]
    }
  ]
}
...