Используйте ACL для предоставления разрешения на загрузку файла только по определенному пути в корзине GCS - PullRequest
0 голосов
/ 14 мая 2019

Я создал сервисный аккаунт.Его единственная задача - загрузить данные по определенному пути в корзину GCS, например, gs://bucket/current/.По этому пути эта учетная запись службы должна иметь возможность создавать папку, подобную 2019/, и загружать данные в gs://bucket/current/2019/file.csv. Эта учетная запись не сможет просматривать другие пути в этом сегменте, кроме gs://.../current/... и после загрузки данных по этому пути,файл не может быть удален или отредактирован.

Я не думаю, что смогу использовать IAM для предоставления такого разрешения.Итак, я изучил acl и defacl, но не смог найти способ сделать эту работу.Как я могу использовать acl для предоставления служебной учетной записи для этой задачи?

Редактировать: Спасибо за помощь в улучшении читаемости этого вопроса.Я прочитал google document , в котором много примеров про acl, но я не могу найти тот, который соответствует моему вопросу.

Edit2: я попробовал это gsutil acl ch -r -u serviceaccount:W gs://bucket/current/ и получил такой результат:

Skipping serviceaccount:W on gs://bucket/current/, as WRITER does not apply to objects No changes to gs://bucket/current/

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

Мое решение: вместо использования ACL я использовал разрешение и разрешение IAM.роль storage.objectCreator в корзине для этой учетной записи службы

...