AWS S3 Bucket policy для предотвращения обновления объектов - PullRequest
0 голосов
/ 04 мая 2020

У меня есть набор объектов в S3 Bucket, все с общим префиксом. Я хочу запретить обновление существующих в настоящее время объектов, однако разрешить пользователям добавлять новые объекты в том же префиксе.

Насколько я понимаю, действие S3:PutObject используется как для обновления существующих объектов, так и для создания новых.

Существует ли политика корзины, которая может ограничивать обновление, в то же время позволяя создавать?

ex: запрещать изменение уже существующих s3:/bucket/Input/obj1, но разрешать создание s3:/bucket/Input/obj2


edit, context: мы используем S3 в качестве хранилища данных регрессионных тестов, используемых для тестирования наших преобразований. Поскольку мы постоянно добавляем новые тестовые данные, мы хотим, чтобы уже введенные входные данные не изменились. Это позволило бы устранить одну из текущих причин неудачных испытаний. Все наши входные данные хранятся с одинаковым префиксом, а также для ожидаемых данных.

Ответы [ 2 ]

1 голос
/ 04 мая 2020

Это невозможно описанным вами способом, но есть своего рода механизм, называемый S3 object lock , который позволяет заблокировать указанную c версию файла. Это не помешает созданию новых версий файла, но заблокированная версия будет неизменной.

1 голос
/ 04 мая 2020

Нет, это невозможно.

Один и тот же вызов API и те же разрешения используются для загрузки объекта независимо от того, существует ли объект с таким именем.

Вы можете использовать Amazon S3 Versioning , чтобы сохранить как старый, так и новый объект, но это зависит от того, как вы будете использовать объекты.

...