2014-12-03 3 views
39

Я подключился к экземпляру GCE через SSH. Оттуда я хотел бы получить доступ к Storage с помощью учетной записи службы:.gsutil copy return "AccessDeniedException: 403 Недостаточное разрешение" из GCE

GCE> gcloud auth list 
Credentialed accounts: 
- [email protected] (active) 

я первый сделал уверен, что эта учетная запись службы помечена «Может редактировать» в разрешениях проекта я работаю в I также обязательно дать ему запись ACL на ведро, я хотел бы его скопировать файл:

local> gsutil acl ch -u [email protected]:W gs://mybucket 

Но тогда следующая команда терпит неудачу:

GCE> gsutil cp test.txt gs://mybucket/logs 

(я также уверен, что «журналы " создается под «mybucket»).

Сообщение об ошибке я получаю:

Copying file://test.txt [Content-Type=text/plain]... 
AccessDeniedException: 403 Insufficient Permission    0 B 

Что мне не хватает?

+2

Была ли создана виртуальная машина GCE с полным контролем или полем чтения/записи GCS? – jterrace

+0

Спасибо, что указали это. На самом деле я этого не знал. Я повторно создал экземпляр с включенной опцией, и он сработал. Если бы вы могли предложить включить флаг в качестве ответа, я бы с радостью отметил его. – Christophe

ответ

43

Еще одна вещь, которую нужно искать, - убедиться, что вы создали соответствующие области при создании виртуальной машины GCE. Даже если виртуальная машина имеет подключенную учетную запись службы, для доступа к GCS ей должны быть назначены области devstorage.

Например, если вы создали свою виртуальную машину с областью devstorage.read_only, попытка записи в ведро не удалась, даже если ваша учетная запись службы имеет разрешение на запись в ведро. Вам понадобится devstorage.full_control или devstorage.read_write.

Подробнее см. В разделе Preparing an instance to use service accounts.

+0

как я могу это сделать для уже запущенного экземпляра? –

+0

вы не можете изменить области уже запущенного экземпляра – jterrace

+0

Я воссоздал свой экземпляр с разрешениями, и все это работает сейчас.Спасибо – Syclone

9

GSUtil конфигурации -b

Тогда прибой к URL она обеспечивает, [CLICK Разрешить]

Затем скопируйте код и вставьте в терминал.

+0

Обратите внимание, что это не работает, если вы запускаете 'gsutil' из' ssh'. – bfontaine

+0

«Не работает», если вы не открываете свой браузер. Вместо этого он предоставляет URL-адрес для копирования и вставки вручную. – BuvinJ

+0

Это хорошо подходит для людей, использующих консоль в браузере. -2017 – igaurav

13

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

gcloud auth login 
-3

Tl; Др Эта задача была решена путем принуждать конфигурации AWS с помощью их командной строки Util awscli для меня на Mac

  1. Установка awscli через варку: brew install awscli
  2. Run aws configure после установки и введите секретный ключ и идентификатор ключа доступа на быстрой
  3. Попробуйте gsutil двигаться сейчас, и он должен работать.
+2

Вопрос о GCE, а не AWS. – talonx

Смежные вопросы