Аутентификация учетной записи службы gcloud в автоматическом режиме - PullRequest
0 голосов
/ 16 января 2019

Общая цель:

Мы хотим иметь возможность загружать артефакты из контейнера Docker в наших заданиях Circle CI в корзину в Google Cloud. В идеале мы могли бы достичь этого с gsutil cp <artifact> <bucket>

Вопрос:

Мне сложнее всего проверить подлинность учетной записи службы gcloud в автоматическом режиме, и я нигде не могу найти документацию по этому вопросу. Почти каждая статья, которую я прочитал, предлагает вам один из этих двух вариантов:

  1. Настройка с помощью gsutil

    $ gsutil config -a
    

    Однако возникает ряд вопросов, требующих взаимодействия с оболочкой:

    Backing up existing config file "/Users/<user>/.boto" to "/Users/<user>/.boto.bak"...
    This command will create a boto config file at
    /Users/<user>/.boto containing your credentials, based on your
    responses to the following questions.
    What is your google access key ID?
    
  2. Вход в систему с gcloud:

    $ gcloud auth login
    Your browser has been opened to visit:
    
        https://accounts.google.com/o/oauth2/auth?....
    

Поскольку конечным результатом здесь является то, что контейнер Docker будет аутентифицировать служебную учетную запись для выполнения gsutil cp, интерактивный вход в систему не очень благоприятен ...

У меня есть настройки JSON для учетных данных в в этом примере , но при установке переменной среды GOOGLE_APPLICATION_CREDENTIALS все еще запрашивается сообщение Are you sure? [Y/n], которое не может быть автоматически пропущено. Есть идеи?

1 Ответ

0 голосов
/ 16 января 2019

Команда для настройки CLI Google Cloud SDK из файла Json служебной учетной записи:

gcloud auth activate-service-account test@development-123456.iam.gserviceaccount.com --key-file=service_account.json

Замените адрес электронной почты test@... на адрес электронной почты вашей учетной записи службы. Замените имя файла Json service_account.json именем файла, которое вы используете для учетных данных своей учетной записи службы.

Адрес электронной почты учетной записи службы находится внутри файла json учетной записи службы как client_email.

Если вам нужна дополнительная информация, я написал ряд статей о Google Credentials и OAuth:

Google Cloud - Настройка Gcloud с учетными данными служебной учетной записи

...