gcloud установлен на экземпляре gce с проблемами разрешения учетных записей уровня обслуживания

Я запустил экземпляр с включенными учетными записями уровня обслуживания. Например, у него установлен storage-rw. Подтвердил, что в экземпляре они есть. Теперь всякий раз, когда я запускаю gsutil ls gs: // my_bucket из экземпляра, я получаю сообщение об ошибке: Failure: unauthorized_client.

gcloud auth list возвращает

Credentialed accounts:
 - [email protected] (active)

Мне нужно использовать gcloud sdk из экземпляра, потому что мне нужно больше компонентов, кроме gcutil и gsutil.

Итак, мой вопрос: как я могу разрешить gcloud использовать учетную запись [email protected] и, следовательно, разрешения, указанные только для экземпляра, а не мою личную учетную запись пользователя, которая имеет полные разрешения для всего?


person jaran    schedule 27.02.2014    source источник
comment
Может быть проблема с разрешениями на уровне корзины? Тот факт, что ваша учетная запись службы имеет доступ к хранилищу rw, не обязательно дает ей доступ к корзине. Можете ли вы создать ведра из своего экземпляра?   -  person    schedule 06.03.2014
comment
Активен ли статус биллинга для вашего проекта?   -  person jterrace    schedule 06.03.2014
comment
@ user3385351 - нет, я даже ведро создать не могу. Та же ошибка неавторизованного клиента.   -  person jaran    schedule 07.03.2014
comment
@jterrace да, он включен.   -  person jaran    schedule 07.03.2014


Ответы (2)


Интерфейс командной строки gcloud определенно обрабатывает учетные записи служб Google Compute Engine. Если вы видите его как «(активный)», когда делаете $ gcloud auth list, этого должно быть достаточно.

Здесь могут пойти не так две вещи:

  1. Вы используете неправильный gsutil.

    Когда вы устанавливаете Google Cloud SDK, он создает google-cloud-sdk/bin/gsutil, и именно ЭТО тот, который вы хотите запустить. Сделайте $ which gsutil, чтобы дважды проверить. Если вы используете google-cloud-sdk/platform/gsutil/gsutil, это неверный вариант, и он не будет знать ни о чем, что может сказать gcloud.

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

Источник: инженер по Google Cloud SDK

person John Asmuth    schedule 05.03.2014
comment
Джон, который gsutil возвращает / home / web / google-cloud-sdk / bin / gsutil. Так что выглядит хорошо. - person jaran; 07.03.2014
comment
Иоанна 1), который gsutil возвращает / home / web / google-cloud-sdk / bin / gsutil. Думаю, это выглядит неплохо. 2) Если я запускаю экземпляр и не устанавливаю gcloud sdk, я могу прочитать содержимое корзины с установленным по умолчанию gsutil и разрешениями службы, установленными на чтение и запись. с установленным облачным sdk я не могу создать ведро или прочитать какие-либо ведра. Я также не могу перечислить экземпляры cloudql со списком экземпляров gcloud sql. Я подтвердил, что могу получить доступ к облачному sql из этого экземпляра и что его внешний IP-адрес разрешен на сервере cloudql. Разрешения экземпляра - cloudsql = enabled. хранение = чтение, запись. Спасибо. - person jaran; 07.03.2014

См. Раздел «Аутентификация в Google Compute Engine» в этом документе: https://developers.google.com/compute/docs/gcutil/

person kateroh    schedule 28.02.2014
comment
Нет, это аутентификация с использованием личного кабинета. Мне нужен gcloud и все его компоненты, чтобы использовать [email protected], а не личные учетные записи, у которых слишком много разрешений. - person jaran; 01.03.2014
comment
В предоставленной ссылке нет раздела Аутентификация в Google Compute Engine, поэтому рекомендуется включать в ответ подробности, а не просто ссылку. - person Blake; 20.07.2018