安全概览

本文档介绍了 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 启用安全功能,请在后端服务器以及客户端应用和网站上设置所需的账号和安全功能。

下图简要介绍了在后端服务器和客户端应用上设置安全性的步骤。

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

如需了解详情,请参阅以下部分。

后端服务器安全设置

Fleet 管理员需要执行以下步骤:

  1. 创建和配置服务账号:

    1. 在 Google Cloud 控制台中,创建服务账号。

    2. 向服务账号分配特定的 IAM 角色。

    3. 使用创建的服务账号配置后端服务器。如需了解详情,请参阅服务账号角色。

  2. 配置与 Fleet Engine 的安全通信 (ADC):配置后端,以便使用应用默认凭证和适当的 *Admin 服务账号与 Fleet Engine 实例进行通信。如需了解详情,请参阅应用默认凭证。

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

应用安全保障设置

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

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

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

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

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

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

  • 您的后端服务器:为相应的服务账号签署并签发 JWT,该服务账号具有适合所分配任务或行程的 IAM 角色。

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

后续步骤