Перейти к содержимому

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

В MWS Cloud Platform доступно несколько способов аутентификации в MWS CLI:

Если вы уже прошли аутентификацию с помощью браузера и OAuth flow, но не пользовались утилитой продолжительное время, может потребоваться обновление refresh-токена.

Аутентификация с помощью привязки сервисного аккаунта

Заголовок раздела «Аутентификация с помощью привязки сервисного аккаунта»

Доступны два варианта привязки сервисного аккаунта и инициализации профиля:

  • Универсальный — подойдет для любого устройства и любой ВМ. Этот вариант предполагает создание авторизованного ключа сервисного аккаунта и инициализацию профиля с помощью этого ключа.
  • Упрощенный — подойдет только для ВМ в сервисе Compute. В этом варианте к виртуальной машине, развернутой в сервисе Compute, будет привязан сервисный аккаунт. Авторизованный ключ сервисного аккаунта не нужен.
  • Универсальный
  • Упрощенный
  1. Создайте сервисный аккаунт, с правами которого будут выполняться операции над ресурсами MWS.

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

  3. Установите MWS CLI, если утилита еще не установлена.

  4. Для сервисного аккаунта создайте авторизованный ключ.

  5. Сохраните авторизованный ключ на диске устройства.

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

    bash
    mws init --service-account-authorized-key "<путь к файлу с авторизованным ключом, включая расширение>"

    При успешном выполнении команды появится сообщение вида:

    bash
    Profile "default" successfully initialized at "/Users/<имя пользователя>/.mws/config/default.yaml"
  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 | |
    +--------------------+-------------+--------+-------------+
  8. (опционально) Удалите файл с авторизованным ключом с диска устройства. Файл больше не потребуется — приватный ключ зашифрован и сохранен в каталоге $HOME/.config/mws/.credentials.

По умолчанию в запросах используется профиль default. Вы можете создать дополнительные профили для других сервисных аккаунтов.

Аутентификация в браузере с помощью OAuth flow

Заголовок раздела «Аутентификация в браузере с помощью OAuth flow»

В этом способе для аутентификации используется IAM-токен, полученный от имени пользователя. IAM-токен создается автоматически после инициализации CLI.

Важно

IAM-токен, полученный от имени пользователя, действует только 5 минут.

Если вы планируете автоматизировать работу с API MWS, используйте аутентификацию через привязку сервисного аккаунта или аутентификацию с помощью OAuth flow и сервисного аккаунта.

После ввода первой команды MWS CLI предложит автоматически открыть страницу веб-консоли в браузере и авторизоваться. Также страницу можно открыть вручную, если нужно авторизоваться с другого устройства (например, если вы работаете с ВМ, где нельзя открыть браузер).

  • Автоматически из MWS CLI
  • Вручную на другом устройстве
  1. Инициализируйте профиль default:

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

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

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

  5. (опционально) Проверьте работу 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 | |
    +--------------------+-------------+--------+-------------+

По умолчанию в запросах используется профиль default. Вы можете создать дополнительные профили для других сервисных аккаунтов.

При инициализации и работе утилиты 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 и сервисного аккаунта

Заголовок раздела «Аутентификация с помощью 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 <имя проекта>

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