Использование токена сервисного аккаунта ВМ для работы с API
Привяжите сервисный аккаунт к виртуальной машине, чтобы безопасно получать и автоматически обновлять токены из метаданных ВМ. Это позволит избежать хранения ключей или токенов на диске ВМ и упростит автоматизацию процессов в облаке. Токен поступит в метаданные ВМ сразу после привязки сервисного аккаунта.
Чтобы узнать, как использовать токен сервисного аккаунта для запросов к API:
- Добавьте сервисный аккаунт в настройки виртуальной машины.
- Получите информацию о сервисном аккаунте из метаданных виртуальной машины.
Если вам больше не нужны созданные ресурсы, удалите их.
Подготовка MWS Cloud Platform к работе
Заголовок раздела «Подготовка MWS Cloud Platform к работе»Создайте сервисный аккаунт с именем
service-accountи базовой рольюeditor.Чтобы сделать это, ваша роль должна быть не ниже
iam.serviceAccount.admin.Вы также можете использовать существующий сервисный аккаунт, в этом случае вам будет достаточно роли
iam.serviceAccount.user(входит в рольeditor).Создайте виртуальную машину с именем
vm-ca-testи сгенерированным ключом SSH. Вы можете выбрать сервисный аккаунтservice-accountпри создании ВМ или добавить его позже.Для более комфортной работы с выводом команд установите утилиту jq.
Если вы планируете использовать MWS CLI:
6.1. Создайте авторизованный ключ для сервисного аккаунта
service-account.6.2. Установите и настройте MWS CLI.
1. Добавьте сервисный аккаунт в настройки виртуальной машины
Заголовок раздела «1. Добавьте сервисный аккаунт в настройки виртуальной машины»- Веб-консоль
- MWS CLI
- В веб-консоли выберите нужный проект.
- В списке сервисов выберите Compute → Виртуальные машины и выберите виртуальную машину с именем
vm-ca-test. - На вкладке Основное перейдите к редактированию сервисного аккаунта.
- Выберите сервисный аккаунт с именем
service-account. - Нажмите кнопку Сохранить.
2. Получите информацию о сервисном аккаунте
Заголовок раздела «2. Получите информацию о сервисном аккаунте»Подключитесь по SSH к виртуальной машине с именем
vm-ca-test.Привязка сервисного аккаунта к ВМ может занять несколько минут. Чтобы убедиться, что операция привязки завершена, получите информацию о сервисном аккаунте:
bash curl -s -H "Metadata-Flavor: Google" \http://169.254.169.254/computeMetadata/v1/instance/service-accounts/?recursive=true | jqОжидаемый вывод команды:
bash {"<имя проекта>/serviceAccounts/<имя сервисного аккаунта>": {"aliases": ["default"]}}
3. Получите токен сервисного аккаунта
Заголовок раздела «3. Получите токен сервисного аккаунта»Получите токен для сервисного аккаунта:
curl -s -H "Metadata-Flavor: Google" \http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token | jqВывод команды содержит тело токена, срок его действия в секундах, и тип токена:
{ "access_token": "ey...Dw", "expires_in": 43144, "token_type": "Bearer"}4. Выполните запрос к API с помощью токена сервисного аккаунта
Заголовок раздела «4. Выполните запрос к API с помощью токена сервисного аккаунта»Добавьте токен в переменные окружения виртуальной машины:
bash TOKEN=$(curl -s -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token \| jq -r '.access_token')Выполните любой запрос к API, например, получите список ВМ в проекте:
bash curl -H "Authorization: Bearer $TOKEN" \https://compute.mwsapis.ru/compute/v1/projects/project-sa-vm/virtualMachines
Удалите ресурсы
Заголовок раздела «Удалите ресурсы»Некоторые ресурсы тарифицируются. Чтобы за их использование не списывалась плата: