как создать кластер dataproc по учетной записи службы

Меня очень смущает этот документ. введите здесь описание ссылки

Service account requirements and Limitations:
* Service accounts can only be set when a cluster is created.
* You need to create a service account before creating the Cloud Dataproc cluster that will be associated with the service account.
* Once set, the service account used for a cluster cannot be changed.

Это означает, что я не могу создать учетную запись службы, у которой есть роль для создания кластера dataproc? На данный момент я могу создать кластер dataproc только с помощью моей собственной учетной записи «gcloud auth login», но я хочу создать кластер dataproc из jenkins путем настройки

gcloud auth activate-service-account --key-file


person howie    schedule 18.09.2018    source источник


Ответы (2)


Да, вы можете использовать учетную запись службы для создания кластеров Dataproc и отправки заданий. Однако ссылка, на которую вы ссылаетесь, касается запуска кластеров Dataproc со служебной учетной записью, которая не применима к вашей проблеме.

Чтобы создать Dataproc с использованием учетной записи службы:

  1. Создайте сервисный аккаунт

  2. Назначьте роль редактора Cloud Dataproc

  3. Загрузите его файл учетных данных json

  4. Настроить механизм аутентификации:

    4.1 gcloud auth activate-service-account --key-file = JSON_FILE_PATH

    4.2 GOOGLE_APPLICATION_CREDENTIALS = JSON_FILE_PATH

  5. Создайте свой кластер Dataproc

person tix    schedule 18.09.2018

Сначала вам нужно создать учетную запись службы, а также предоставить доступ к следующим ролям:

  1. Dataproc Worker: Согласно [doc] [1]

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

2.Dataproc Hub Agent: он предоставит доступ к разрешению act as service account, в противном случае будет выдана следующая ошибка:

ОШИБКА: (gcloud.beta.dataproc.clusters.create) INVALID_ARGUMENT: пользователь не авторизован для работы в качестве учетной записи службы '[email protected]'. Чтобы действовать как учетная запись службы, пользователь должен иметь одну из ролей [Владелец, Редактор, Актер учетной записи службы]. См. https://cloud.google.com/iam/docs/understanding-service-accounts для получения дополнительных сведений.

3.Dataproc Editor: эта роль будет предоставлять доступ для создания и удаления кластера dataproc.

Активация служебной учетной записи: после предоставления доступа к ролям загрузите служебную учетную запись json. Активируйте новую учетную запись службы до gcloud auth active-service-account --key-file=<service-json>. Проверить активацию gcloud auth list. Установить GOOGLE_APPLICATION_CREDENTIALS переменную среды с помощью export GOOGLE_APPLICATION_CREDENTIALS="service-json-full-path"

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

gcloud auth activate-service-account --key-file=<service-key-file>
export GOOGLE_APPLICATION_CREDENTIALS="<service-key-file>"
gcloud beta dataproc clusters create <CLUSTER-NAME> \
    --region=<REGION> \
    --project=<PROJECT-ID> \
    --service-account=<SERVICE-ACCOUNT-EMAIL> \
    --single-node
person Md Shihab Uddin    schedule 06.04.2021