Чтобы Deckhouse смог управлять ресурсами в облаке Google, необходимо создать сервисный аккаунт. Подробная инструкция по этому действию доступна в документации провайдера. Далее представлена краткая последовательность необходимых действий:

Внимание! service account key невозможно восстановить, только удалить и создать новый.

Настройка через Google cloud console

Переходим по ссылке , выбираем проект и создаем новый сервис-аккаунт или выбираем существующий.

Список необходимых ролей:

Compute Admin
Service Account User
Network Management Admin

Роли можно прикрепить на этапе создания сервис-аккаунта, либо изменить на странице.

Чтобы получить service account key в JSON-формате, на странице в колонке Actions необходимо кликнуть на три вертикальные точки и выбрать Create key, тип ключа JSON.

Настройка через gcloud CLI

Список необходимых ролей:

roles/compute.admin
roles/iam.serviceAccountUser
roles/networkmanagement.admin
  • Экспортируйте переменные окружения:

    export PROJECT=sandbox
    export SERVICE_ACCOUNT_NAME=deckhouse
    
  • Выберите project:

    gcloud config set project $PROJECT
    
  • Создайте service account:

    gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME
    
  • Прикрепите роли к service account:

    for role in roles/compute.admin roles/iam.serviceAccountUser roles/networkmanagement.admin; do gcloud projects add-iam-policy-binding ${PROJECT} --member=serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT}.iam.gserviceaccount.com --role=${role}; done
    
  • Выполните проверку ролей service account:

    gcloud projects get-iam-policy ${PROJECT} --flatten="bindings[].members" --format='table(bindings.role)' \
        --filter="bindings.members:${SERVICE_ACCOUNT_NAME}@${PROJECT}.iam.gserviceaccount.com"
    
  • Создайте service account key:

    gcloud iam service-accounts keys create --iam-account ${SERVICE_ACCOUNT_NAME}@${PROJECT}.iam.gserviceaccount.com \
        ~/service-account-key-${PROJECT}-${SERVICE_ACCOUNT_NAME}.json