Назад | Перейти на главную страницу

Почему я не могу получить доступ к объекту облачного хранилища, несмотря на то, что являюсь владельцем проекта?

Я являюсь владельцем конкретного проекта, у которого есть ведро с несколькими сотнями гигабайт объектов. Недавно я обнаружил с помощью сбойного gcloud rsync, что в моем ведре есть некоторые объекты, которые я могу list но нет cp или acl get и т.д., ни из командной строки, ни из облачной консоли.

Например:

gsutil acl get gs://$MYBUCKET/$SOMEOBJECT  
AccessDeniedException: Access denied. Please ensure you have OWNER permission on gs://$MYBUCKET/$SOMEOBJECT  

у меня есть

Что, черт возьми, происходит?

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

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

Вы можете установить политику Cloud IAM для проекта или сегмента.

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

  1. открыто Управление IAM
  2. Нажмите Edit permissions значок, связанный с пользователем, которому вы хотите добавить политику Cloud IAM
  3. Добавить [Storage]-[Storage Admin] роль. не [Storage Legacy].
  4. Нажмите Save кнопка

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

Я решил свою аналогичную проблему с помощью IAM, например:

    gsutil iam ch 'user:myacc@mydoma.in:legacyObjectOwner' gs://mybucket

После этого у пользователя появляются права владельца.

Я боролся с аналогичной ситуацией: учетная запись службы, создавшая объект, была указана как ВЛАДЕЛЕЦ (с gsutil acl get gs://...), но не удалось установить ACL. Затем я нашел следующую цитату в https://cloud.google.com/storage/docs/access-control/lists#predefined-acl:

Вы не можете применять списки управления доступом, которые изменяют владельца корзины или объекта (не следует путать с разрешением OWNER)