Не удается сохранить файлы в хранилище объектов Google через gsutil

#google-cloud-platform #google-cloud-storage

#google-облачная платформа #google-облачное хранилище

Вопрос:

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

 louchenyao@dev ~> gcloud auth list
                  Credentialed Accounts
ACTIVE  ACCOUNT
*       290002171211-compute@developer.gserviceaccount.com
        louchenyao@gmail.com

To set the active account, run:
    $ gcloud config set account `ACCOUNT`

louchenyao@dev ~> curl -H 'Metadata-Flavor: Google' "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/scopes"
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
https://www.googleapis.com/auth/monitoring.write
https://www.googleapis.com/auth/service.management.readonly
https://www.googleapis.com/auth/servicecontrol
https://www.googleapis.com/auth/trace.append
louchenyao@dev ~> gsutil cp pgrc.sh gs://hidden-buckets-name
Copying file://pgrc.sh [Content-Type=text/x-sh]...
AccessDeniedException: 403 Insufficient Permission
  

И я предоставил администратору хранилища учетной записи облачных вычислений по умолчанию.

Если я переключусь на свою личную учетную запись, это сработает. Итак, мне интересно, пропустил ли я некоторые важные разрешения.

Комментарии:

1. Какие области включены для экземпляра? Убедитесь, что у вас включено «Хранилище для чтения и записи» ИЛИ «Хранилище заполнено». Я рекомендую использовать роли IAM вместо областей. Установите «Разрешить полный доступ ко всем облачным API». Затем управляйте разрешениями, используя роли IAM.

2. Также: помните, что после предоставления этих областей вы перезапускаете свой экземпляр.

3. @BrandonYarbrough — Спасибо. Вам не нужно перезапускать экземпляр, вы должны сначала завершить работу экземпляра, чтобы изменить области. Я должен был упомянуть об этом.

4. @JohnHanley Спасибо. Но мне любопытно, почему недостаточно установить область видимости в devstorage.read_write.

5. Я не понимаю, что вы имеете в виду под is not enough . Способ, которым разрешения работают с экземплярами GCE. Сначала вы подключаете разрешения IAM к учетной записи службы, которую использует GCE. Вы можете уменьшить эти разрешения, используя области, но вы не можете добавить разрешения, используя области, которых у учетной записи службы еще нет.

Ответ №1:

Чтобы предоставить доступ к записи в корзину из экземпляра виртуальной машины, используя учетную запись службы по умолчанию: измените области доступа API для экземпляра виртуальной машины, выполните следующие действия:

  • Stop экземпляр
  • Введите VM instance details > Edit
  • Изменить Cloud API access scopes > Storage: Full
  • Save внесите изменения и запустите экземпляр

Также можно установить области доступа при создании экземпляра виртуальной машины в Identity and API access разделе консоли

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