Аутентификация в MWS CLI
В MWS Cloud Platform доступно несколько способов аутентификации в MWS CLI:
- Привязка сервисного аккаунта к профилю MWS CLI. Аутентификация выполняется с помощью заранее созданного сервисного аккаунта. Этот способ подойдет для автоматизированных решений.
- Аутентификация в браузере через OAuth flow. Аутентификация выполняется с помощью механизма OAuth flow. Для аутентификации используется IAM-токен, полученный от имени пользователя и наследующий его права доступа.
- Аутентификация с помощью OAuth flow и сервисного аккаунта. Этот способ комбинирует два предыдущих: клиент проходит авторизацию в облаке с помощью OAuth flow, но инициализация MWS CLI выполняется с помощью автоматически создаваемого авторизованного ключа сервисного аккаунта.
Если вы уже прошли аутентификацию с помощью браузера и OAuth flow, но не пользовались утилитой продолжительное время, может потребоваться обновление refresh-токена.
Аутентификация с помощью привязки сервисного аккаунта
Заголовок раздела «Аутентификация с помощью привязки сервисного аккаунта»Доступны два варианта привязки сервисного аккаунта и инициализации профиля:
- Универсальный — подойдет для любого устройства и любой ВМ. Этот вариант предполагает создание авторизованного ключа сервисного аккаунта и инициализацию профиля с помощью этого ключа.
- Упрощенный — подойдет только для ВМ в сервисе Compute. В этом варианте к виртуальной машине, развернутой в сервисе Compute, будет привязан сервисный аккаунт. Авторизованный ключ сервисного аккаунта не нужен.
- Универсальный
- Упрощенный
Создайте сервисный аккаунт, с правами которого будут выполняться операции над ресурсами MWS.
Назначьте сервисному аккаунту роли для работы с ресурсами через CLI. Ролевая модель MWS CLI совпадает с общей ролевой моделью.
Установите MWS CLI, если утилита еще не установлена.
Для сервисного аккаунта создайте авторизованный ключ.
Сохраните авторизованный ключ на диске устройства.
Инициализируйте профиль
default:bash mws init --service-account-authorized-key "<путь к файлу с авторизованным ключом, включая расширение>"При успешном выполнении команды появится сообщение вида:
bash Profile "default" successfully initialized at "/Users/<имя пользователя>/.mws/config/default.yaml"(опционально) Проверьте работу MWS CLI, например, запросив список типов ВМ:
bash mws compute vm-type list(опционально) Удалите файл с авторизованным ключом с диска устройства. Файл больше не потребуется — приватный ключ зашифрован и сохранен в каталоге
$HOME/.config/mws/.credentials.
По умолчанию в запросах используется профиль default. Вы можете создать дополнительные профили для других сервисных аккаунтов.
Аутентификация в браузере с помощью OAuth flow
Заголовок раздела «Аутентификация в браузере с помощью OAuth flow»В этом способе для аутентификации используется IAM-токен, полученный от имени пользователя. IAM-токен создается автоматически после инициализации CLI.
После ввода первой команды MWS CLI предложит автоматически открыть страницу веб-консоли в браузере и авторизоваться. Также страницу можно открыть вручную, если нужно авторизоваться с другого устройства (например, если вы работаете с ВМ, где нельзя открыть браузер).
- Автоматически из MWS CLI
- Вручную на другом устройстве
Инициализируйте профиль
default:bash mws init --project <имя проекта>В открывшемся окне браузера введите учетные данные и войдите в веб-консоль.
После аутентификации в браузере вернитесь в окно терминала. Убедитесь, что инициализация профиля выполнена успешно:
bash Profile "default" successfully initialized at "/Users/<имя пользователя>/.mws/config/default.yaml"Закройте окно браузера.
(опционально) Проверьте работу MWS CLI, например, запросив список типов ВМ:
bash mws compute vm-type list
По умолчанию в запросах используется профиль default. Вы можете создать дополнительные профили для других сервисных аккаунтов.
Обновление refresh-токена OAuth flow
Заголовок раздела «Обновление refresh-токена OAuth flow»При инициализации и работе утилиты MWS CLI через OAuth flow участвует специальный долговременный ключ — refresh-токен. Этот токен не участвует в запросах к API MWS, и предназначен только для получения нового IAM-токена.
Срок действия refresh-токена ограничен:
- Для пользовательских аккаунтов — 30 дней, с автоматическим обновлением срока действия при выполнении любого запроса через MWS CLI.
- Для федеративных аккаунтов — 10 часов, без автоматического обновления срока действия.
Если не пользоваться утилитой дольше, чем срок действия refresh-токена, потребуется повторная инициализация сессии. Она запустится автоматически при выполнении любой команды, для которой требуется токен, например:
$ mws compute vm-type list
Session is expired, re-initializing...Do you wish to open browser for authentication (Y/N, default: Y)?В зависимости от предпочитаемого способа аутентификации выберите один из вариантов ответа:
Y— чтобы автоматически перейти к авторизации в браузере;N— чтобы вручную авторизоваться на другом устройстве.
Чтобы выбрать вариант по умолчанию, нажмите клавишу Enter.
После успешной аутентификации вы можете закрыть окно браузера и продолжить работу с MWS CLI.
Аутентификация с помощью OAuth flow и сервисного аккаунта
Заголовок раздела «Аутентификация с помощью OAuth flow и сервисного аккаунта»Вы можете инициализировать MWS CLI с помощью OAuth flow, используя авторизованный ключ сервисного аккаунта. Операции с MWS API будут выполняться от имени этого сервисного аккаунта.
Преимущества такого способа аутентификации:
- авторизованный ключ будет создан автоматически при инициализации профиля;
- срок действия ключа не ограничен;
- не нужно сохранять авторизованный ключ на устройстве.
Чтобы настроить MWS CLI и инициализировать профиль:
Создайте сервисный аккаунт, с правами которого будут выполняться операции над ресурсами MWS.
Назначьте сервисному аккаунту роли для работы с ресурсами через CLI. Ролевая модель MWS CLI совпадает с общей ролевой моделью.
Инициализируйте профиль
default:bash mws init --profile default \--service-account <имя сервисного аккаунта> \--project <имя проекта>В открывшемся окне браузера введите учетные данные и войдите в веб-консоль.
После аутентификации в браузере вернитесь в окно терминала. Убедитесь, что инициализация профиля выполнена успешно:
bash Profile "default" successfully initialized at "/Users/<имя пользователя>/.mws/config/default.yaml"Закройте окно браузера.
(опционально) Проверьте работу MWS CLI, например, запросив список типов ВМ:
bash mws compute vm-type list
Установка проекта
Заголовок раздела «Установка проекта»Вы можете указать, в каком проекте будут выполняться команды, любым из способов:
Запустить команду с флагом
--project <имя проекта>.Установить для профиля проект по умолчанию с помощью команды:
bash mws profile param set project <имя проекта>Подробнее об изменении параметров профиля читайте в разделе Управление профилем.