gcloud Firebase Android Test: невозможно получить доступ к каталогу тестовой среды: ResponseError 403: не авторизован для проекта

Что я сделал:

Что я хочу выполнить:

gcloud firebase test android run --app ./app/build/outputs/apk/app-debug.apk

Я получаю ошибку:

ERROR: (gcloud.firebase.test.android.run) Unable to access the test environment catalog: ResponseError 403: Not authorized for project <project-id>

Вопрос

Что я делаю неправильно? Я попытался добавить учетную запись службы в IAM со всеми правилами учетной записи службы, но это не помогло.

Можно ли включить эти API специально для учетной записи службы? Я сделал это только для всего проекта и учетной записи Gmail: Включите необходимые API. После входа в систему с использованием учетной записи службы: «На странице библиотеки API консоли Google Developers включите Google Cloud Testing API и Cloud Tool Results API. Чтобы включить эти API, введите эти имена API в поле поиска в верхней части консоли, а затем нажмите Включить API на странице обзора этого API. "

Подробные сведения о моих действиях на данный момент:

docker exec -it container bash

export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)"
echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-get update && sudo apt-get install google-cloud-sdk
gcloud init

# only if this service account does not already exist:
# gcloud iam service-accounts create continuous-integration

gcloud iam service-accounts keys create $JENKINS_HOME/gce-continuous-integration-key.json --iam-account=continuous-integration@<project-id>.iam.gserviceaccount.com

gcloud auth activate-service-account continuous-integration@<project-id>.iam.gserviceaccount.com --key-file=$JENKINS_HOME/gce-continuous-integration-key.json

gcloud auth login continuous-integration@<project-id>.iam.gserviceaccount.com

jenkins@VM:/$ gcloud config list
# returns:
[compute]
region = europe-west3
zone = europe-west3-c
[core]
account = continuous-integration@<project-id>.iam.gserviceaccount.com
disable_usage_reporting = True
project = <project-id>
Your active configuration is: [default]

person hb0    schedule 24.10.2017    source источник
comment
Каждый раз, когда я видел похожие ошибки 403 в прошлом, это обычно происходило по одной из двух причин. Либо: из-за смешения была использована другая учетная запись службы для команды запуска gcloud firebase test android; или Учетной записи службы была назначена роль (или роли), которая не позволяла ей вызывать API тестирования и ToolResults.   -  person P. Davis    schedule 24.10.2017
comment
Какую роль (роли) выполняет ваша учетная запись службы на странице IAM в консоли разработчика?   -  person P. Davis    schedule 24.10.2017
comment
Спасибо что нашли время ответить. В настоящее время я назначил: Администратор учетной записи службы, -Пользователь, -Ключевой администратор, -Создатель токена. Я не нашел каких-либо четких ресурсов, для каких ролей эта учетная запись нужна для работы с этой командой Firebase.   -  person hb0    schedule 25.10.2017
comment
(2) Эта команда: gcloud firebase test android run --log-http --verbosity = debug --app *** показывает мне только, что выбран правильный проект, а не какая учетная запись используется. (3) gcloud auth list = ›показывает мне =› АКТИВНЫЙ АККАУНТ * continuous-integration @ ‹project-id› .iam.gserviceaccount.com (selected) ‹и мой адрес Gmail во второй строке›   -  person hb0    schedule 25.10.2017
comment
Можете ли вы попробовать предоставить учетной записи службы права редактора проекта на странице IAM? Для запуска тестов FTL авторизация должна позволять gcloud создавать несколько типов ресурсов (тестовые матрицы, результаты инструментов, промежуточные файлы и файлы результатов, хранящиеся в облачном хранилище).   -  person P. Davis    schedule 25.10.2017
comment
Ты гений !! Большое спасибо, теперь это работает. ;-) Где вы нашли информацию о том, что эти разрешения требуются? Наблюдал ли я за этим в Руководстве Google? Если хотите, добавьте свое решение в качестве ответа, и я его приму.   -  person hb0    schedule 26.10.2017
comment
Добавлен ответ. Эта роль редактора указана на следующем сайте, но ее следует добавить на страницу документа FIrebase, на которую вы указали ссылку. engineering.dailymotion.com/   -  person P. Davis    schedule 26.10.2017
comment
Думаю ответ на вопрос Можно ли включить эти API специально для сервис-аккаунта? Я сделал это только для всего проекта и учетной записи Gmail: Включите необходимые API. После входа в систему с использованием учетной записи службы: это необходимо сделать для всего проекта, а не для учетной записи службы. Но я мог ошибаться.   -  person Michael Osofsky    schedule 16.08.2019


Ответы (2)


Попробуйте предоставить учетной записи службы права Project-> Editor на странице IAM. Для запуска тестов Firebase Test Lab необходима авторизация, позволяющая gcloud создавать несколько типов облачных ресурсов (тестовые матрицы, результаты инструментов), а также записывать файлы промежуточных и окончательных результатов тестирования в корзину Cloud Storage вашего проекта.

person P. Davis    schedule 26.10.2017
comment
Большое тебе спасибо. Я сообщил службе поддержки Firebase, что они должны указать это необходимое разрешение в своем руководстве. - person hb0; 27.10.2017

Роль редактора у меня не сработала. В моем случае я создавал учетную запись службы со страницы IAM, но оказалось, что там чего-то не хватает, поэтому вам нужно «сгенерировать закрытый ключ» в https://console.firebase.google.com/u/0/project/my-project/settings/serviceaccounts/adminsdk

Я имею в виду: Настройки / Учетные записи служб / Firebase Admin SDK -> Создать закрытый ключ.

person Daniel Gomez Rico    schedule 28.05.2019