ResumableUploadAbortException: 403 Недостаточное разрешение

Я использую Google Cloud Storage и Google Compute Engine и пытаюсь загрузить в свою корзину со своей виртуальной машины. У моего ведра есть разрешения на чтение и запись, как и у всех, кто имеет к нему доступ. Они помечены как Владелец. Я могу скачать из своего ведра нормально. Когда я пытаюсь загрузить в корзину, я получаю эту ошибку. ResumableUploadAbortException: 403 Insufficient Permission. Я не уверен, почему это так? Какие-нибудь подсказки?


person superuserdo    schedule 19.02.2015    source источник


Ответы (6)


Измените область доступа к Cloud API виртуальной машины, чтобы разрешить чтение и запись в хранилище. Это находится в разделе «Области доступа» в настройках виртуальной машины. Для этого необходимо остановить вашу виртуальную машину.

0. Stop VM instance
1. Open VM instance details
2. Press "Edit"
3. Change Cloud API access scope--> "Allow full access to all cloud APIs"

....

https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances#changeserviceaccountandscopes

ВАЖНЫЙ!! Обратите внимание на этот комментарий к соответствующему сообщению, которое вы может потребоваться удалить учетные данные в ~/.gsutil после определения новой области.

# VM instance console
sudo rm -r ~/.gsutil
person Daniel Golden    schedule 12.01.2017
comment
НАКЛОН: rm -rf ~ / .gsutil - person Rondo; 07.08.2018
comment
В дополнение к этому вам необходимо убедиться, что учетная запись службы может создавать объекты в корзине. Вы можете сделать это, перейдя в корзину, щелкнув «Разрешения» и добавив адрес электронной почты учетной записи службы с ролью «Создатель объекта хранения». - person foges; 26.12.2018
comment
Обратите внимание, что вместо выбора «Разрешить полный доступ ко всем облачным API», как рекомендовано в текущей версии документации, можно выбрать «Установить доступ для каждого API», а затем перейти к выбору выпадающего списка «Хранилище» и установить для Полный значение Это - person manasouza; 15.05.2019
comment
Это помогло # Консоль экземпляра виртуальной машины sudo rm -r ~ / .gsutil - person rbyndoor; 15.12.2020

На экземпляре GCE выполните следующие действия для настройки: Нет необходимости перезапускать Compute Engine,

gcloud init

Результат будет примерно таким.

Choose the account you would like to use to perform operations for  this configuration:
 [1] [email protected]
 [2] Log in with a new account
Please enter your numeric choice: 1

Выберите номер 1, чтобы использовать учетную запись службы. Если это общая машина, и вы входите в систему под своей личной учетной записью, ваши учетные данные могут быть использованы кем-либо еще на этой машине. Подробнее Прочтите здесь

Если вы уже инициализировали gcloud, повторная инициализация не требуется.

gcloud auth login 
person Nanhe Kumar    schedule 31.10.2019
comment
это хороший рабочий ответ, если вы не хотите перезапускать виртуальную машину. - person philshem; 07.04.2020

Используете ли вы учетную запись службы по умолчанию на виртуальной машине для доступа к корзине? По умолчанию это только область чтения. Попробуйте создать виртуальную машину с областью чтения / записи.

person Travis Hobrla    schedule 20.02.2015
comment
Мне нужно воссоздать другой экземпляр виртуальной машины? У меня есть приложения, запрограммированные на то, чтобы указывать на текущий IP-адрес моей виртуальной машины. Если я создам новый экземпляр виртуальной машины, мне будет назначен новый IP-адрес. Есть ли способ дать моей учетной записи права на запись, не делая этого? - person superuserdo; 21.02.2015
comment
Я не думаю, что есть способ изменить разрешения для запущенного экземпляра. Если вам нужен постоянный IP-адрес, я бы рекомендовал зарезервировать статический IP-адрес: cloud.google.com/compute/docs/ - person Travis Hobrla; 23.02.2015

При взаимодействии с другими продуктами Cloud Platform, такими как Google Cloud Storage (корзины), неинтерактивными способами, например, из экземпляра виртуальной машины, рекомендуется использовать области, которые, в свою очередь, используют учетные записи служб, что является предпочтительным способом аутентификации виртуальной машины. / системы. Дополнительную информацию можно найти здесь.

person Sammy Villoldo    schedule 20.02.2015

позвольте мне, если возможно, сделать более простые шаги:

  1. С консоли остановите виртуальную машину, отредактируйте управление доступом и измените разрешение «Хранилище» с READ на Write или full.
  2. Запустить виртуальную машину
  3. Очистить кеш из командной строки

    rm -r ~ / .gsutil

Это должно работать.

person Ayman Salama    schedule 26.06.2019

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

  1. Получите адрес электронной почты своего служебного аккаунта:
$ gcloud auth list
                  Credentialed Accounts
ACTIVE  ACCOUNT
*       [email protected]
  1. Откройте корзину в Cloud Console и перейдите на вкладку «Разрешения».
  2. Нажмите "Добавить участников"
  3. Вставьте адрес электронной почты учетной записи службы, указанный выше
  4. Under "Role", select "Storage Object Admin"
    • Note: this gives permission to create, list, and delete objects. If you only need to create objects, you can try "Storage Object Creator" instead.
  5. Нажмите "Сохранить".

Обратите внимание, что это дает разрешения всем экземплярам, ​​использующим одну и ту же учетную запись службы. Если вам нужен более детальный контроль доступа, вы должны создать отдельную учетную запись службы для каждого экземпляра.

После того, как вы выполните эти шаги, вам нужно перезагрузить разрешения, как говорили другие:

rm -rf ~/.gsutil
rm -rf /root/.gsutil
person sffc    schedule 06.04.2020
comment
ты рок-звезда! - person Bira; 15.02.2021