Не удается удалить собственный доступ к объекту облачного хранилища Google - PullRequest
0 голосов
/ 27 октября 2018

У меня есть сервер, который записывает некоторые файлы данных в корзину Cloud Storage, используя служебную учетную запись, которой я предоставил разрешения «Storage Object Creator» для корзины.Я хочу, чтобы разрешения этой учетной записи службы были доступны только для записи.

Разрешение Storage Object Creator также позволяет, насколько я могу судить, доступ на чтение, поэтому я хотел просто удалить разрешение для объектов после их записи.Я думал, что мог бы использовать ACL для этого, но это, похоже, не работает.Если я использую

gsutil acl get gs://bucket/object > acl.json

, то отредактируйте файл acl.json, чтобы удалить разрешение ВЛАДЕЛЕЦ для учетной записи службы, а затем используйте

gsutil acel set acl.json gs://bucket/object

чтобы обновить ACL, я обнаружил, что ничего не изменилось;ВЛАДЕЛЕЦ разрешение все еще там, если я проверяю ACL снова.То же самое происходит, если я пытаюсь удалить разрешение OWNER в веб-интерфейсе Cloud Console.

Есть ли способ удалить это разрешение?Или другой способ сделать это?

Ответы [ 2 ]

0 голосов
/ 17 марта 2019

Переименование объекта делает свое дело.

gsutil mv -p gs://bucket/object gs://bucket/object-renamed
gsutil mv -p gs://bucket/object-renamed gs://bucket/object

Объект учетной записи renamer станет объектом OWNER.

0 голосов
/ 28 октября 2018

Нельзя удалить разрешения OWNER для учетной записи службы, которая загрузила объект, из:

https://cloud.google.com/storage/docs/access-control/lists#bestpractices

Владелец корзины или объекта всегда имеет разрешение OWNER для корзины или объекта.

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

Когда вы применяете новый ACL к корзине или объекту, Cloud Storage соответственно добавляет OWNER разрешение владельцу корзины или объекта, если вы пропустите гранты.

Я не пробовал этого, но вы можете загрузить объекты, используя один раз служебную учетную запись (назовите ее SA1), затем перезаписать объекты с использованием отдельной служебной учетной записи (назовите ее SA2), а затем удалить объекты. SA1 больше не будет владельцем, и поэтому не будет иметь разрешения на чтение. SA2 по-прежнему будет иметь права как на чтение, так и на запись, однако нет способа предотвратить чтение объекта владельцем объекта.

...