이 문서에서는 Fleet Engine 시스템의 세 가지 기본 환경(백엔드 서버, Fleet Engine 서버, 클라이언트 애플리케이션 및 웹사이트) 간의 정보 교환을 Fleet Engine이 보호하는 방법을 설명합니다.
Fleet Engine은 최소 권한 원칙을 사용하여 두 가지 기본 방식으로 보안을 관리합니다.
애플리케이션 기본 사용자 인증 정보 (ADC): 서버 간 통신과 같은 높은 권한이 있는 환경에 사용됩니다. 백엔드 서버가 차량과 여정을 생성하고 Fleet Engine에서 관리할 때 사용됩니다. 자세한 내용은 애플리케이션 기본 사용자 인증 정보를 참고하세요.
JSON 웹 토큰 (JWT): 스마트폰 및 브라우저에서 실행되는 클라이언트 애플리케이션과 같은 신뢰도가 낮은 환경에 적합합니다. Fleet Engine에서 차량 위치를 업데이트하는 등 권한이 낮은 작업을 실행하는 데 사용됩니다.
신뢰 수준이 낮은 환경에 필요한 JWT는 서비스 계정 보안 비밀 키를 보호하기 위해 백엔드 서버에서 생성 및 발급되며 Fleet Engine에 특정한 추가 클레임이 포함됩니다. 자세한 내용은 JSON 웹 토큰을 참고하세요.
예를 들어 운전자 앱이 있는 경우 운전자는 앱을 통해 Fleet Engine의 데이터에 액세스합니다. 앱은 백엔드 서버에서 가져온 JWT를 사용하여 인증됩니다. 포함된 JWT 클레임은 서비스 계정 역할과 함께 드라이버 앱이 액세스할 수 있는 시스템 부분과 드라이버 앱이 할 수 있는 작업을 결정합니다. 이 접근 방식을 사용하면 운전 과제를 완료하는 데 필요한 데이터에만 액세스할 수 있습니다.
Fleet Engine은 이러한 보안 접근 방식을 사용하여 다음을 제공합니다.
인증은 요청을 하는 항목의 ID를 확인합니다.
Fleet Engine은 신뢰도가 높은 환경에는 ADC를 사용하고 신뢰도가 낮은 환경에는 JWT를 사용합니다.
승인은 인증된 항목이 액세스할 수 있는 리소스를 지정합니다. Fleet Engine은 Google Cloud IAM 역할이 있는 서비스 계정과 인증된 엔티티가 요청하는 데이터를 보거나 변경할 권한이 있음을 보장하는 JWT 클레임을 사용합니다.
서버 및 클라이언트 보안 설정
Fleet Engine으로 보안을 사용 설정하려면 백엔드 서버와 클라이언트 애플리케이션 및 웹사이트에서 필요한 계정과 보안을 설정하세요.
다음 다이어그램은 백엔드 서버와 클라이언트 애플리케이션에서 보안을 설정하는 단계의 개요를 보여줍니다.
자세한 내용은 다음 섹션을 참고하세요.
백엔드 서버 보안 설정
차량 관리자는 다음 단계를 따라야 합니다.
서비스 계정 만들기 및 구성:
Google Cloud 콘솔에서 서비스 계정을 만듭니다.
서비스 계정에 특정 IAM 역할을 할당합니다.
생성된 서비스 계정으로 백엔드 서버를 구성합니다. 자세한 내용은 서비스 계정 역할을 참고하세요.
Fleet Engine과의 보안 통신 구성 (ADC): 적절한 *관리 서비스 계정으로 애플리케이션 기본 사용자 인증 정보를 사용하여 Fleet Engine 인스턴스와 통신하도록 백엔드를 구성합니다. 자세한 내용은 애플리케이션 기본 사용자 인증 정보를 참고하세요.
클라이언트 앱과의 보안 통신 구성 (JWT): 클라이언트 애플리케이션 및 모니터링 웹사이트에 적합한 클레임이 있는 JWT를 생성하는 JSON 웹 토큰 생성기를 만듭니다. 자세한 내용은 JSON 웹 토큰 발급을 참고하세요.
애플리케이션 보안 설정
애플리케이션 개발자는 클라이언트 앱이나 웹사이트에 백엔드 서버에서 생성된 JSON 웹 토큰을 가져오는 방법을 포함하고 이를 사용하여 Fleet Engine과 안전하게 통신해야 합니다. 자세한 내용은 필요한 애플리케이션의 운전자 환경 또는 소비자 환경 문서에 있는 설정 안내를 참고하세요.
서버 및 클라이언트 앱 보안 흐름
다음 시퀀스 다이어그램은 백엔드 서버와 함께 ADC를 사용하고 클라이언트 애플리케이션 및 웹사이트와 함께 JWT를 사용하는 Fleet Engine의 서버 및 클라이언트 앱 인증 및 승인 흐름을 보여줍니다.
백엔드 서버가 Fleet Engine에서 차량, 여정 또는 작업을 만듭니다.
백엔드 서버에서 차량에 여정 또는 작업 할당: 운전자 앱이 활성 상태일 때 할당을 가져옵니다.
백엔드 서버: 할당된 작업 또는 여정에 적합한 IAM 역할이 있는 해당 서비스 계정의 JWT에 서명하고 발급합니다.
클라이언트 앱: 클라이언트 앱은 수신된 JWT를 사용하여 차량 위치 업데이트를 Fleet Engine에 전송합니다.
[null,null,["최종 업데이트: 2025-08-31(UTC)"],[[["\u003cp\u003eFleet Engine secures communication between your backend server, the Fleet Engine server, and your client applications using Application Default Credentials (ADC) and JSON Web Tokens (JWT).\u003c/p\u003e\n"],["\u003cp\u003eADC is used for high-privilege communication between your backend server and Fleet Engine, while JWT is used for low-trust environments like client applications.\u003c/p\u003e\n"],["\u003cp\u003eYour backend server generates and issues JWTs to client applications, limiting access based on JWT claims and service account roles for enhanced security.\u003c/p\u003e\n"],["\u003cp\u003eFleet Engine employs authentication to verify the identity of the requesting entity and authorization to control access to specific resources based on defined roles and claims.\u003c/p\u003e\n"],["\u003cp\u003eTo ensure security, you need to configure service accounts, set up ADC for backend communication, implement JWT generation on your server, and enable client applications to fetch and use JWTs for secure interaction with Fleet Engine.\u003c/p\u003e\n"]]],[],null,["# Security overview\n\nThis document explains how Fleet engine secures information exchange between the\nthree primary environments of your Fleet Engine system: your backend server,\nyour Fleet Engine server, and your client applications and websites.\n\nFleet Engine manages security in two fundamental ways, using the principle of\nleast privilege:\n\n- **Application Default Credentials (ADC)** : For high-privileged environments\n such as server to server communications. Used when your backend server is\n creating vehicles and trips and managing them in Fleet Engine. For details,\n see [Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc).\n\n | **Note:** While you can use JWTs for server-to-server communication, Google recommends you use ADC.\n- **JSON Web Tokens (JWT)**: For low-trust environments like client\n applications running on smartphones and browsers. Used to accomplish\n lower-privileged operations, such as updating\n vehicle location in Fleet Engine.\n\n The JWTs required by low-trust environments are generated and issued by your\n backend server to safeguard service account secret keys, and include\n additional claims specific to Fleet Engine. For details, see [JSON Web\n Tokens](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/jwt).\n\n For example, if you have a driver app, drivers access data from Fleet Engine\n through the app. The app is authenticated using JWTs it gets from your\n backend server. The included JWT claims, along with the service account\n role, determine what parts of your system the driver app has access to and\n what it can do. This approach limits access to only the data required\n to complete their driving assignments.\n\nFleet Engine uses these security approaches to provide the following:\n\n- *Authentication* verifies the identity of the entity making the request.\n Fleet Engine uses ADC for high-trust environments and JWT for low-trust\n environments.\n\n- *Authorization* specifies which resources an authenticated entity has access\n to. Fleet Engine uses service accounts with Google Cloud IAM roles, plus JWT\n claims that ensure authenticated entities have permissions to see or change\n the data they're requesting.\n\nServer and client security setup\n--------------------------------\n\nTo enable security with Fleet Engine, set up the required accounts\nand security on your backend server and on your client applications and\nwebsites.\n\nThe following diagram shows an overview of the steps to set up security on your\nbackend server and client applications.\n\nFor more details, see the following sections.\n\n### Backend server security setup\n\nA fleet administrator needs to follow these steps:\n\n1. **Create and configure service accounts**:\n\n 1. In the Google Cloud Console, create service accounts.\n\n 2. Assign specific IAM roles to the service accounts.\n\n 3. Configure your backend server with the created service accounts. For\n details, see [Service account roles](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/service-accounts).\n\n2. **Configure secure communication with Fleet Engine (ADC)** : Configure your\n backend to communicate with your Fleet Engine instance using Application\n Default Credentials with the appropriate \\*Admin service account. For\n details, See\n [Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc).\n\n3. **Configure secure communication with client apps (JWT)** : Create a JSON Web\n Token generator to create JWTs with appropriate claims for client\n applications and monitoring websites. For details, see\n [Issue JSON Web Tokens](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/issue-jwt).\n\n### Application security setup\n\nApplication developers need to include a way to fetch JSON Web Tokens generated\nby your backend server in your client apps or websites, and use them to securely\ncommunicate with Fleet Engine. For details, see the setup instructions in the\n[Driver Experience](/maps/documentation/mobility/driver-sdk) or [Consumer\nExperience](/maps/documentation/mobility/journey-sharing) documentation for the\napplications you need.\n\nServer and client app security flow\n-----------------------------------\n\nThe following sequence diagram demonstrates the server and client app\nauthentication and authorization flow with Fleet Engine using ADC with the\nbackend server and JWTs with the client applications and websites.\n\n- **Your backend server creates vehicles and trips or tasks in Fleet Engine**.\n\n- **Your backend server a trip or task to a vehicle**:\n The driver app, when active, retrieves the assignment.\n\n- **Your backend server**: Signs and issues a JWT for the respective service\n account with the appropriate IAM role for the assigned task or trip.\n\n- **The client app**: The client app uses the received JWT to send vehicle\n location updates to Fleet Engine.\n\nWhat's next\n-----------\n\n- Create your [Fleet Engine project](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/create-project).\n- Learn how to [Issue JSON Web Tokens](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/issue-jwt) from your server.\n- Learn more about [Service account roles](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/service-accounts).\n- Learn more about [JWTs](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/jwt)."]]