S3 Bucket Policy, чтобы сделать определенную подпапку общедоступной, а все остальное - частным?

В настоящее время у нас есть политика корзины S3, которая делает все общедоступным.

На данный момент у нас ведро «bucket1», внутри которого есть пронумерованные подпапки для каждой записи с номерами от 01 вверх (например, 01, 02, 03), а внутри всегда есть папка с именем «128».

Мы хотим сделать файлы в 128 папках всегда общедоступными.

Так что нам нужно что-то, чтобы разрешить "bucket1 / * / 128", а все остальное будет доступно только с подписью с отметкой времени.

Предполагая, что это возможно, но не знаю, как создать заявление.


person realdannys    schedule 20.02.2014    source источник


Ответы (2)


Я сделал это!

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

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AllowPublicRead",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::BUCKETNAME/*/128/*"
        }
    ]
}

Примечание: отредактировал имя ресурса.

person realdannys    schedule 21.02.2014
comment
Какая часть предназначена для определенных подпапок? /128/ ?? - person Jin Kwon; 06.03.2018
comment
@JinKwon Да, именно так - person RyanQuey; 22.02.2019

Кажется, сейчас это заблокировано ..

Этот сегмент имеет общий доступ. Вы предоставили общий доступ к этому сегменту. Мы настоятельно рекомендуем вам никогда не предоставлять публичный доступ к вашей корзине S3.

person Ramesh Narasimhan    schedule 06.09.2020