Как ограничить пользователей, чтобы создать публичный объект S3 в частном ведре - PullRequest
0 голосов
/ 10 октября 2019

Я создал корзину Amazon S3, которая является частной по своей природе, но я не хочу, чтобы мои пользователи создавали какие-либо открытые объекты внутри этой корзины. Как я должен сделать это через политику S3 этого ведра? Я пытался, но получаю сообщение об ошибке, что политика имеет недопустимый ресурс.

{
    "Version": "2012-10-17",
    "Statement": [

        {
            "Sid": "DenyPublicReadGetObject",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": [
               " arn:aws:s3:::aws-my-bucket-s3-vk/*"
            ]
        }
    ]
}

Пользователи должны иметь возможность получить доступ к корзине и создать новый объект / получить объект изнутри экземпляра EC2 с необходимыми разрешениями.

На консоли S3 после имени сегмента есть столбец доступа, который должен иметь вид «сегмент и объект не может быть общедоступным».

Ответы [ 2 ]

1 голос
/ 11 октября 2019

Вы должны включить Блокировать публичный доступ в корзине S3. Это не позволит никому обнародовать объекты в этом ведре. Вам также следует ограничить, какие пользователи / роли / политики IAM имеют разрешение на изменение параметров блокировки общего доступа.

Параметры открытого доступа блока Amazon S3 будут переопределять политики корзины S3 и разрешения на уровне объектов для предотвращения общего доступа.

1 голос
/ 10 октября 2019

Все корзины Amazon S3 по умолчанию являются закрытыми. Никто не может получить доступ / использовать блоки или их содержимое, если им не было предоставлено разрешение через политику IAM, политику корзины или разрешение на уровне объекта.

Похоже, что вы хотите, чтобы конкретный экземпляр Amazon EC2 мог использоватьведро. Поэтому:

  • Создание роли IAM
  • Предоставление необходимых разрешений для роли IAM (например, PutObject и GetObjectв этом сегменте)
  • Назначение роли IAM для экземпляра Amazon EC2
  • После этого приложения в экземпляре EC2 смогут получить доступ к сегменту

Нет необходимости использовать политику Deny. Это всегда переопределит другие политики. Для предоставления доступа лучше использовать политики Allow, но только для желаемых объектов.

Вот несколько примеров политик: Примеры политик пользователя - Amazon Simple Storage Service

...