Nano Hash - криптовалюты, майнинг, программирование

Облачное хранилище Google удаляет только собственные объекты

У меня есть корзина, в которую несколько учетных записей служб могут загружать свои объекты, поэтому у них есть storage.objects.create и ACL, установленный на projectPrivate. Но я хочу, чтобы они могли перезаписывать (удалять) только те объекты, которые они загрузили, чтобы они не перезаписывали объекты других людей. Все объекты должны быть доступны для чтения всем. Но если я дам им storage.objects.delete, они смогут перезаписать любые объекты в этом ведре.

Могу ли я установить какое-то разрешение, чтобы они могли удалять только те элементы, которые они создали?


Ответы:


1

Согласно документации GCP:

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

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

Однако вы можете использовать разные сегменты для разных учетных записей служб.

14.11.2019
  • Вот чего я боялся 14.11.2019

  • 2

    Если мы посмотрим на документацию, найденную здесь:

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

    Мы обнаружили, что ACL projectPrivate предоставляет разрешения пользователю/serviceAccount в зависимости от их роли. Однако существует альтернативный ACL под названием private, который задокументирован как:

    Предоставляет владельцу корзины или объекта разрешение OWNER для корзины или объекта и удаляет все остальные разрешения на доступ.

    Если я правильно читаю, это звучит как то, что вы хотите. Особенно концепция, согласно которой он удаляет все другие разрешения на доступ, что, как я понимаю, означает, что он удаляет все другие разрешения на доступ для ДРУГИХ пользователей.

    14.11.2019
  • Извините, я отредактировал свой вопрос: все объекты должны быть доступны для чтения всем. 14.11.2019
  • Например: мое ведро мелкозернистое, у моего объекта есть только Пользователь - мой пользователь - Владелец, и с помощью учетной записи службы с хранилищем.objects.delete я могу удалить этот объект. 14.11.2019

  • 3

    Отличный вопрос. Я думаю, это поможет вам.

    Существует нечто, называемое Списками контроля доступа для объектов по умолчанию

    По умолчанию любой, у кого есть разрешение OWNER или WRITER для корзины, может загружать объекты в эту корзину. Когда вы загружаете объект, вы можете указать предопределенный ACL или вообще не указывать ACL. Если вы не укажете ACL, Cloud Storage применит к объекту ACL объекта корзины по умолчанию. У каждого сегмента есть список контроля доступа по умолчанию для объектов, и этот список контроля доступа применяется ко всем объектам, загруженным в этот сегмент без предопределенного списка контроля доступа или списка контроля доступа, указанного в запросе (только JSON API). Начальное значение для ACL объекта по умолчанию для каждого сегмента — projectPrivate.

    В зависимости от того, как загружаются объекты, списки управления доступом к объектам применяются соответствующим образом:

    Проверенные загрузки

    Если вы делаете аутентифицированный запрос на загрузку объекта и не указываете какие-либо списки ACL объекта при его загрузке, то вы указывается как владелец объекта, и к объекту по умолчанию применяется предопределенный список управления доступом projectPrivate. Это означает:

    • Вы (тот, кто загрузил объект) указан как владелец объекта. Владение объектом нельзя изменить, изменив ACL. Вы можете изменить владельца объекта, только перезаписав объект.
    • Вам (владельцу объекта) предоставляется разрешение OWNER на объект. Если вы попытаетесь предоставить владельцу меньше разрешений, чем ВЛАДЕЛЕЦ, Cloud Storage автоматически эскалирует разрешение до ВЛАДЕЛЬЦА.
    • Владельцы проекта и группа редакторов проекта имеют разрешение OWNER на объект.
    • Группа членов команды проекта имеет разрешение READER на объект.

      Источник и дополнительная информация: Нажмите здесь
    14.11.2019
  • Это даже решает вашу проблему, я думаю, все объекты будут доступны для чтения всем. Вы должны копать это больше для правильной реализации. Но я почти уверен, что это решит вашу проблему. 14.11.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..