Обзор безопасности

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

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

  • Учетные данные приложения по умолчанию (ADC) : используются в средах с высокими привилегиями, например, при обмене данными между серверами. Применяются, когда ваш бэкэнд-сервер создает транспортные средства и поездки и управляет ими в Fleet Engine. Подробнее см. раздел «Учетные данные приложения по умолчанию» .

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

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

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

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

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

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

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

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

На следующей диаграмме представлен общий обзор шагов по настройке безопасности на вашем серверном и клиентском приложениях.

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

Более подробную информацию см. в следующих разделах.

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

Администратору автопарка необходимо выполнить следующие шаги:

  1. Создание и настройка служебных учетных записей :

    1. В консоли Google Cloud создайте учетные записи служб.

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

    3. Настройте свой сервер бэкэнда с использованием созданных учетных записей служб. Подробности см. в разделе «Роли учетных записей служб» .

  2. Настройка безопасной связи с Fleet Engine (ADC) : настройте свой бэкэнд для связи с экземпляром Fleet Engine, используя учетные данные приложения по умолчанию с соответствующей учетной записью службы *Admin. Подробности см. в разделе «Учетные данные приложения по умолчанию» .

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

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

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

Поток обеспечения безопасности серверного и клиентского приложений

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

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

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

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

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

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

Что дальше?