Назад | Перейти на главную страницу

Как изменить области доступа к Cloud API в GCP Compute Engine без остановки экземпляра

я использую gcsfuse внутри Google Compute Engine. Я смонтировал папку с облачным хранилищем, но не смог создать в ней какой-либо файл:

touch t1

с ошибкой:

touch: cannot touch 't1': Input/output error

Решение проблемы - дать Объем доступа к Cloud API: хранилище: чтение / запись

Как изменить области доступа к облачному API в GCP Compute Engine без остановки экземпляра? Пожалуйста, предоставьте мне решение для этого iisue.

Заранее спасибо!

Похоже, у вас недостаточно прав GCS. Взгляните на документация для gcsfuse. Если вы используете сервисную учетную запись на виртуальной машине GCE, обязательно настройте виртуальную машину с storage-full область доступа.

Вы можете попробовать исправить это так:

  1. создать учетную запись службы (подробнее Вот)
  2. создайте ключ для учетной записи службы и загрузите файл .json
  3. назначить соответствующую роль учетной записи службы
  4. предоставить соответствующие разрешения учетной записи службы в корзине
  5. загрузить учетные данные .json для учетной записи службы на виртуальную машину
  6. определить переменную среды, которая содержит путь к учетным данным учетной записи службы при вызове gcsfuse из командной строки:

    GOOGLE_APPLICATION_CREDENTIALS = /root/credentials/service_credential_file.json gcsfuse bucket_name /my/mount/point
    

    использовать key_file возможность достичь той же цели в fstab как это задокументировано Вот.

Кроме того, вам нужно использовать переменную среды или key_file вариант, даже если вы настроили учетную запись службы на виртуальной машине, используя:

gcloud auth activate-service-account --key-file /root/credentials/service_credential_file.json

Пожалуйста, обновите свой вопрос, указав свои шаги, команды и полные результаты, если у вас все еще есть проблема.