Openstack swift - запретить удаление и изменение объектов

Есть ли способ настроить контейнер так, чтобы для определенного пользователя он разрешал создание новых объектов, но запрещал удаление и изменение существующих объектов?

В моем случае я предоставляю веб-службу, которая получает и обслуживает файлы с использованием удаленного хранилища openstack swift, и я хочу, чтобы в случае компрометации учетных данных на уровне веб-службы лицо, получившее доступ к этим учетным данным, не смогло бы изменить существующие файлы.


person Mihai Caracostea    schedule 10.12.2014    source источник
comment
Этот вопрос кажется не по теме, поскольку он касается установки и настройки продукта, а не вопроса программирования.   -  person nos    schedule 10.12.2014
comment
Затем подумайте о том, чтобы сделать это программно, используя предоставленный REST API... Во всяком случае, я собираюсь это сделать, если такие конфигурации существуют.   -  person Mihai Caracostea    schedule 10.12.2014
comment
Затем, пожалуйста, добавьте соответствующую информацию к вашему вопросу, поскольку сейчас это просто вопрос поддержки для некоторого стороннего программного обеспечения.   -  person nos    schedule 10.12.2014


Ответы (1)


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

Но вы можете написать java API и предоставить его пользователю для загрузки файла, а внутри вы можете загрузить файл, используя набор учетных данных. Не раскрывайте функции, которые пользователь не должен выполнять (удаление/обновление и т. д.). Вы можете иметь все свои кредиты и все в коде (лучше быть зашифрованным). Таким образом, вы можете достичь того, чего хотите. Но это обходной путь.

person Tanmoy Bhattacharjee    schedule 23.01.2015
comment
Я уже сделал то, что вы предложили, но в .NET. Однако этот API будет содержать встроенные в его код все настройки, необходимые для свободного доступа к сервису хранилища объектов. Я зашифровал эту информацию, но тем не менее, поскольку API требует их в открытом виде, он также будет содержать ключ шифрования, необходимый для их расшифровки. Это компромисс... и теперь я полагаюсь на силу обфускатора, который использую. - person Mihai Caracostea; 24.01.2015