Skip to content

Аутентификация в MWS CLI

В MWS Cloud Platform доступно несколько способов аутентификации в 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-токена ограничен:

Если не пользоваться утилитой дольше, чем срок действия refresh-токена, потребуется повторная инициализация сессии. Она запустится автоматически при выполнении любой команды, для которой требуется токен, например:

bash
$ 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 и инициализировать профиль:

  1. Создайте сервисный аккаунт, с правами которого будут выполняться операции над ресурсами MWS.

  2. Назначьте сервисному аккаунту роли для работы с ресурсами через CLI. Ролевая модель MWS CLI совпадает с общей ролевой моделью.

  3. Инициализируйте профиль default:

    bash
    mws init --profile default \
             --service-account <имя сервисного аккаунта> \
             --project <имя проекта>
  4. В открывшемся окне браузера введите учетные данные и войдите в веб-консоль.

  5. После аутентификации в браузере вернитесь в окно терминала. Убедитесь, что инициализация профиля выполнена успешно:

    bash
    Profile "default" successfully initialized at "/Users/<имя пользователя>/.mws/config/default.yaml"
  6. Закройте окно браузера.

  7. (опционально) Проверьте работу MWS CLI, например, запросив список типов ВМ:

    bash
    mws 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 <имя проекта>.

  • Установить для профиля проект по умолчанию с помощью команды:

    bash
    mws profile param set project <имя проекта>

    Подробнее об изменении параметров профиля читайте в разделе Управление профилем.