GCP - Контроль доступа к служебной учетной записи для Google Cloud Storage - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь загрузить файл с помощью клиента @ google-cloud / storage из Node.js. Я успешно создал служебную учетную запись с ролью, которая дает ей право создавать (загружать), удалять (повторно загружать объект с тем же именем) и загружать объект в облачном хранилище. Это стало возможным благодаря роли администратора объекта хранения.

Когда я назначил роль создателя объекта хранения, я не смог загрузить изображение с таким же именем в хранилище.

Что мне действительно нужно, так это то, что мне нужно предоставить права на загрузку и удаление, но не права на загрузку для клиента Node.js.

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

1 Ответ

0 голосов
/ 01 апреля 2020

Вам необходимо создать пользовательскую роль со следующими разрешениями:

resourcemanager.projects.get
resourcemanager.projects.list
storage.objects.create
storage.objects.delete

Имейте в виду, что разрешение storage.objects.create дает вам возможность добавлять новые объекты в ведро, но и возможность скачать объект, который вы создали. Согласно моему тестированию, с этой пользовательской ролью вы не сможете загружать созданные вами файлы. Если вы попытаетесь, вы получите следующее сообщение об ошибке:

403 service account does not have storage.objects.list permission

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

Что касается части условие , вы можете создать условия для загрузки (resource.name.endsWith(".jpg"), но я не думаю, что вы создаете условия для загрузки.

...