Аутентификация в 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, будет привязан сервисный аккаунт. Авторизованный ключ сервисного аккаунта не нужен.
По умолчанию в запросах используется профиль default. Вы можете создать дополнительные профили для других сервисных аккаунтов.
Аутентификация в браузере с помощью OAuth flow
В этом способе для аутентификации используется IAM-токен, полученный от имени пользователя. IAM-токен создается автоматически после инициализации CLI.
Важно
IAM-токен, полученный от имени пользователя, действует только 5 минут.
Если вы планируете автоматизировать работу с API MWS, используйте аутентификацию через привязку сервисного аккаунта или аутентификацию с помощью OAuth flow и сервисного аккаунта.
После ввода первой команды MWS CLI предложит автоматически открыть страницу веб-консоли в браузере и авторизоваться. Также страницу можно открыть вручную, если нужно авторизоваться с другого устройства (например, если вы работаете с ВМ, где нельзя открыть браузер).
По умолчанию в запросах используется профиль default. Вы можете создать дополнительные профили для других сервисных аккаунтов.
Обновление 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 и сервисного аккаунта
Вы можете инициализировать MWS CLI с помощью OAuth flow, используя авторизованный ключ сервисного аккаунта. Операции с MWS API будут выполняться от имени этого сервисного аккаунта.
Преимущества такого способа аутентификации:
- авторизованный ключ будет создан автоматически при инициализации профиля;
- срок действия ключа не ограничен;
- не нужно сохранять авторизованный ключ на устройстве.
Чтобы настроить MWS CLI и инициализировать профиль:
Создайте сервисный аккаунт, с правами которого будут выполняться операции над ресурсами MWS.
Назначьте сервисному аккаунту роли для работы с ресурсами через CLI. Ролевая модель MWS CLI совпадает с общей ролевой моделью.
Инициализируйте профиль
default:bashmws init --profile default \ --service-account <имя сервисного аккаунта> \ --project <имя проекта>В открывшемся окне браузера введите учетные данные и войдите в веб-консоль.
После аутентификации в браузере вернитесь в окно терминала. Убедитесь, что инициализация профиля выполнена успешно:
bashProfile "default" successfully initialized at "/Users/<имя пользователя>/.mws/config/default.yaml"Закройте окно браузера.
(опционально) Проверьте работу MWS CLI, например, запросив список типов ВМ:
bashmws compute vm-type listПример результата
bash+--------------------+-------------+--------+-------------+ | ID | DESCRIPTION | STATUS | UPDATE TIME | +--------------------+-------------+--------+-------------+ | vmTypes/gen-16-128 | | OK | | +--------------------+-------------+--------+-------------+ | vmTypes/gen-16-32 | | OK | | +--------------------+-------------+--------+-------------+ | vmTypes/gen-16-64 | | OK | | +--------------------+-------------+--------+-------------+ | vmTypes/gen-2-16 | | OK | | +--------------------+-------------+--------+-------------+ | vmTypes/gen-2-4 | | OK | | +--------------------+-------------+--------+-------------+ | vmTypes/gen-2-8 | | OK | | +--------------------+-------------+--------+-------------+
Установка проекта
Вы можете указать, в каком проекте будут выполняться команды, любым из способов:
Запустить команду с флагом
--project <имя проекта>.Установить для профиля проект по умолчанию с помощью команды:
bashmws profile param set project <имя проекта>Подробнее об изменении параметров профиля читайте в разделе Управление профилем.