Compare languages | Cloud provider — GCP: подготовка окружения

Для того чтобы Deckhouse мог управлять ресурсами, в Google Cloud необходимо создать service account. Далее представлена краткая последовательность действий по созданию service account. Если вам необходима более подробная инструкция, вы можете найти ее в документации провайдера.

You need to create a service account so that Deckhouse can manage resources in the Google Cloud. Below is a brief sequence of steps to create a service account. If you need detailed instructions, you can find them in the provider’s documentation.

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

Note! The created service account key cannot be restored, you can only delete and create a new one.

Настройка через Google Cloud Console

Setup using Google Cloud Console

Перейдите по ссылке, выберите проект и создайте новый service account (также можно выбрать уже существующий).

Follow this link, select your project and create a new service account or select an existing one.

Созданному service account’у должны быть присвоены несколько необходимых ролей:

The account must be assigned several necessary roles:

text Compute Admin Service Account User Network Management Admin

text Compute Admin Service Account User Network Management Admin

Роли можно присвоить на этапе создания service account’а, либо изменить на этой странице.

You can add roles when creating a service account or edit them here.

Чтобы получить service account key в JSON-формате, на странице в колонке Actions нажмите на три вертикальные точки и выберите Manage keys. Затем нажмите Add key -> Create new key -> Key type -> JSON.

To create a service account key in JSON format, click on three vertical dots in the Actions column and select Manage keys. Next, click on Add key -> Create new key -> Key type -> JSON.

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

Setup using gcloud CLI

Для настройки через интерфейс командной строки выполните следующие шаги:

To configure via the command line interface, follow these steps:

  1. Экспортируйте переменные окружения:
  1. Export environment variables:

shell export PROJECT_ID=sandbox export SERVICE_ACCOUNT_NAME=deckhouse

shell export PROJECT_ID=sandbox export SERVICE_ACCOUNT_NAME=deckhouse

  1. Выберите project:
  1. Select a project:

shell gcloud config set project $PROJECT_ID

shell gcloud config set project $PROJECT_ID

  1. Создайте service account:
  1. Create a service account:

shell gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME

shell gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME

  1. Присвойте роли созданному service account:
  1. Connect roles to the service account:

shell for role in roles/compute.admin roles/iam.serviceAccountUser roles/networkmanagement.admin; do gcloud projects add-iam-policy-binding ${PROJECT_ID} –member=serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com
–role=${role}; done

shell for role in roles/compute.admin roles/iam.serviceAccountUser roles/networkmanagement.admin; do gcloud projects add-iam-policy-binding ${PROJECT_ID} –member=serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com
–role=${role}; done

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

List of roles required:

text roles/compute.admin roles/iam.serviceAccountUser roles/networkmanagement.admin

text roles/compute.admin roles/iam.serviceAccountUser roles/networkmanagement.admin

  1. Выполните проверку ролей service account:
  1. Verify service account roles:

shell gcloud projects get-iam-policy ${PROJECT_ID} –flatten=”bindings[].members” –format=’table(bindings.role)’
–filter=”bindings.members:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com”

shell gcloud projects get-iam-policy ${PROJECT_ID} –flatten=”bindings[].members” –format=’table(bindings.role)’
–filter=”bindings.members:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com”

  1. Создайте service account key:
  1. Create a service account key:

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

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