Доступ запрещен 403 при попытке загрузки с Google Cloud Platform, но у пользователя есть все права доступа
Мы просто пытаемся использовать gsutil из командной строки для загрузки некоторых данных DCM с Google Cloud Platform:
gsutil -m cp -R gs://dcdt_-dcm_account75701/dcm_account75701_activity_201803* C:\Users\[omissis]\Desktop\ImprData
Мы получаем сообщение об ошибке ниже, похоже на проблему с доступом, но мы убедились, что в облачной консоли был предоставлен весь правильный доступ.
AccessDeniedException: 403 [omissis] does not have storage.objects.list access to dcdt_-dcm_account75701.
CommandException: 1 file/object could not be transferred
Кто-нибудь знает, что это может быть?
1 ответ
Похоже, вы копируете несколько объектов, используя подстановочный знак:
dcm_account75701_activity_201803*
Чтобы это работало, вы должны предоставить своему пользователю также привилегию storage.objects.list, а не только привилегию storage.objects.get.
Чтобы убедиться в этом, замените dcm_account75701_activity_201803*
с полным именем одного из объектов в dcdt_-dcm_account75701
ведро.
РЕДАКТИРОВАТЬ: обратите внимание, что storage.buckets.list
а также storage.objects.list
две разные привилегии. Первый позволяет вам перечислить все группы, принадлежащие вашему проекту, а второй (которого вам не хватает) позволяет перечислить объекты внутри корзины.
Согласно руководству пользователя:
https://cloud.google.com/storage/docs/access-control/iam-roles
будучи владельцем, вы получаете привилегии storage.buckets.*, а не привилегии storage.objects.*. Возможно, вы захотите предоставить роль storage.objectAdmin своему пользователю.