Принципы безопасности

В этом документе объясняется, как Fleet Engine защищает обмен информацией между тремя основными средами вашей системы Fleet Engine: вашим внутренним сервером, вашим сервером Fleet Engine, а также вашими клиентскими приложениями и веб-сайтами.

Fleet Engine обеспечивает безопасность двумя основными способами, используя принцип минимальных привилегий:

  • Application Default Credentials (ADC) – для сред с высоким уровнем доступа, например для обмена данными между серверами. Используется, когда ваш бэкенд-сервер создает транспортные средства и поездки и управляет ими в Fleet Engine. Подробную информацию можно найти в статье Application Default Credentials.

  • Веб-токены JSON (JWT). Используются в средах с низким уровнем доверия, например в клиентских приложениях, работающих на смартфонах и в браузерах. Используется для выполнения операций с более низкими привилегиями, таких как обновление местоположения транспортного средства в Fleet Engine.

    Токены JWT, необходимые для сред с низким уровнем доверия, генерируются и выдаются вашим бэкенд-сервером для защиты секретных ключей сервисного аккаунта и включают дополнительные утверждения, относящиеся к Fleet Engine. Подробную информацию можно найти в статье Веб-токены JSON.

    Например, если у вас есть приложение для водителей, они получают доступ к данным Fleet Engine через него. Приложение проходит аутентификацию с помощью токенов JWT, которые оно получает от вашего бэкенд-сервера. Утверждения JWT и роль сервисного аккаунта определяют, к каким частям системы у приложения водителя есть доступ и какие действия оно может выполнять. Такой подход позволяет ограничить доступ только к тем данным, которые необходимы для выполнения заданий по вождению.

Fleet Engine использует эти подходы к безопасности, чтобы обеспечить следующее:

  • Аутентификация – это проверка личности пользователя, отправляющего запрос. Fleet Engine использует ADC для сред с высоким уровнем доверия и JWT для сред с низким уровнем доверия.

  • Авторизация определяет, к каким ресурсам имеет доступ аутентифицированный объект. Fleet Engine использует сервисные аккаунты с ролями Google Cloud IAM, а также утверждения JWT, которые гарантируют, что у аутентифицированных объектов есть разрешения на просмотр или изменение запрашиваемых данных.

Настройка безопасности сервера и клиента

Чтобы обеспечить безопасность при работе с Fleet Engine, настройте необходимые аккаунты и параметры безопасности на бэкенд-сервере, а также в клиентских приложениях и на сайтах.

На схеме ниже показаны основные этапы настройки безопасности на бэкенд-сервере и в клиентских приложениях.

Схема потока безопасности во время настройки аутентификации сервера и клиентского приложения

Подробные сведения приведены в разделах ниже.

Настройка безопасности бэкенд-сервера

Администратор автопарка должен выполнить следующие действия:

  1. Создайте и настройте сервисные аккаунты:

    1. Создайте сервисные аккаунты в Google Cloud Console.

    2. Назначьте сервисным аккаунтам определенные роли IAM.

    3. Настройте бэкенд-сервер с созданными сервисными аккаунтами. Подробнее о ролях сервисных аккаунтов…

  2. Настройте безопасный обмен данными с Fleet Engine (ADC). Настройте серверную часть для обмена данными с экземпляром Fleet Engine, используя учетные данные по умолчанию для приложения с соответствующим сервисным аккаунтом администратора. Подробнее об Application Default Credentials…

  3. Настройте безопасный обмен данными с клиентскими приложениями (JWT). Создайте генератор JSON Web Token, чтобы создавать JWT с подходящими утверждениями для клиентских приложений и сайтов мониторинга. Подробнее о том, как выпускать веб-токены JSON…

Настройка безопасности приложений

Разработчики приложений должны предусмотреть способ получения веб-токенов JSON, сгенерированных вашим бэкенд-сервером, в клиентских приложениях или на сайтах и использовать их для безопасного обмена данными с Fleet Engine. Подробные инструкции по настройке приведены в документации по интерфейсу для водителей и интерфейсу для клиентов.

Схема обеспечения безопасности сервера и клиентского приложения

На следующей схеме показан процесс аутентификации и авторизации сервера и клиентского приложения в Fleet Engine с использованием ADC на бэкенд-сервере и JWT в клиентских приложениях и на сайтах.

Схема потока безопасности во время работы для аутентификации сервера и клиентского приложения

  • Ваш бэкенд-сервер создает транспортные средства и поездки или задачи в Fleet Engine.

  • Ваш бэкенд-сервер назначает поездку или задачу транспортному средству. Когда приложение водителя активно, оно получает назначение.

  • Ваш бэкенд-сервер подписывает и выпускает JWT для соответствующего сервисного аккаунта с ролью IAM, подходящей для назначенной задачи или поездки.

  • Клиентское приложение. Клиентское приложение использует полученный JWT для отправки обновлений местоположения транспортного средства в Fleet Engine.

Дальнейшие действия