Виртуальной машине Google не хватает разрешений для записи на установленное ведро - PullRequest
0 голосов
/ 02 июля 2018

Я использую Google Compute Instance, который должен иметь возможность подключаться для чтения и записи в корзину, смонтированную локально.

На данный момент, пока я ssh-ed в машину, у меня есть разрешение на чтение всех файлов в каталоге, но не на их запись.

Вот еще несколько деталей:

gcloud init
account: PROJECT_NUMBER-compute@developer.gserviceaccount.com

При рассмотрении IAM на платформе Google этот IAM играет проприетарную роль, поэтому он должен иметь доступ ко всем ресурсам в проекте.

gcsfuse -o allow_other --file-mode 777 --dir-mode 777 --o nonempty BUCKET LOCAL_DIR

Теперь, глядя на разрешения, все файлы имеют (как и ожидалось)

ls -lh LOCAL_DIR/
drwxrwxrwx 1 ubuntu ubuntu 0 Jul  2 11:51 folder

Однако при запуске очень простого кода Python, сохраняющего рассол в одном из этих каталогов, я получаю следующую ошибку

OSError: [Errno 5] Input/output error: FILENAME

Если я запускаю gcsuse с флагом --foreground, он выдает ошибку

fuse: 2018/07/02 12:31:05.353525 *fuseops.GetXattrOp error: function not implemented
fuse: 2018/07/02 12:31:05.362076 *fuseops.SetInodeAttributesOp error: SetMtime: \
UpdateObject: googleapi: Error 403: Insufficient Permission, insufficientPermissions

Что странно, поскольку учетная запись на виртуальной машине играет проприетарную роль.

Есть какие-нибудь предположения о том, как это преодолеть?

1 Ответ

0 голосов
/ 27 июля 2018

Вашему экземпляру требуются соответствующие области для доступа к корзинам GCS. Вы можете просматривать области действия через консоль или с помощью экземпляров вычислений gcloud. Description [instance_name] | grep scopes -A 10

У вас должно быть хранилище для чтения / записи или https://www.googleapis.com/auth/devstorage.read_write

...