安全概览

本文档介绍了 Fleet Engine 如何确保 Fleet Engine 系统的三个主要环境(后端服务器、Fleet Engine 服务器以及客户端应用和网站)之间的信息交换安全无虞。

Fleet Engine 主要通过两种方式管理安全性,并遵循最小权限原则:

  • 应用默认凭证 (ADC):适用于高权限环境 例如服务器到服务器通信。当您的后端服务器在 Fleet Engine 中创建车辆和行程并对其进行管理时使用。如需了解详情, 请参阅 应用默认凭证

  • JSON Web 令牌 (JWT):适用于低信任环境,例如在智能手机和浏览器上运行的客户端 应用。用于完成低权限操作,例如在 Fleet Engine 中更新车辆位置。

    低信任环境所需的 JWT 由后端服务器生成和颁发,以保护服务账号密钥,并包含特定于 Fleet Engine 的其他声明。如需了解详情,请参阅 JSON Web 令牌

    例如,如果您有一个司机应用,司机可以通过该应用访问 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 实例通信。如需了解 详情,请参阅 应用默认凭证

  3. 配置与客户端应用的安全通信 (JWT):创建 JSON Web 令牌生成器,以创建具有适用于客户端 应用和监控网站的相应声明的 JWT。如需了解详情,请参阅 颁发 JSON Web 令牌

应用安全设置

应用开发者需要在客户端应用或网站中添加一种方法来提取后端服务器生成的 JSON Web 令牌,并使用这些令牌与 Fleet Engine 安全地通信。如需了解详情,请参阅您所需应用的 司机体验消费者 体验文档中的设置说明。

服务器和客户端应用安全流

以下序列图展示了服务器和客户端应用身份验证和授权流,其中 Fleet Engine 使用 ADC 与后端服务器通信,使用 JWT 与客户端应用和网站通信。

服务器和客户端应用身份验证期间的安全流程图

  • 您的后端服务器在 Fleet Engine 中创建车辆和行程或任务

  • 您的后端服务器将行程或任务分配给车辆: 司机应用在处于活动状态时检索分配。

  • 您的后端服务器:使用分配的任务或行程的相应 IAM 角色为相应服务 账号签名并颁发 JWT。

  • 客户端应用:客户端应用使用收到的 JWT 向 Fleet Engine 发送车辆 位置更新。

后续步骤