AWS guidance documentation change
Summary
Updated simulation architecture to use isolated virtual CAN interfaces per vehicle and clarified EC2-backed tasks for FleetWise Edge mode.
Security assessment
The change introduces isolation of virtual CAN interfaces (vcan0, vcan1, etc.) per vehicle to prevent cross-contamination, which is a security best practice for multi-tenant simulations. However, there's no evidence this addresses a specific security incident. The documentation now explicitly mentions isolation as a security feature.
Diff
diff --git a/guidance/latest/connected-mobility-on-aws/simulation-platform.md b/guidance/latest/connected-mobility-on-aws/simulation-platform.md index ae3164541..91b639a95 100644 --- a//guidance/latest/connected-mobility-on-aws/simulation-platform.md +++ b//guidance/latest/connected-mobility-on-aws/simulation-platform.md @@ -45 +45 @@ The local simulation service is a Python Flask application (`services/simulation - 2. Creates a virtual CAN bus interface (`vcan0`) inside the container. + 2. Creates virtual CAN bus interfaces (`vcan0`, `vcan1`, etc.) — one per vehicle for isolation. @@ -64 +64 @@ The cloud simulation service runs on AWS infrastructure, eliminating the need fo - * **ECS Cluster** — An ECS cluster with Fargate capacity runs simulation worker tasks. + * **ECS Cluster** — An ECS cluster runs simulation tasks using Fargate (MQTT Direct) or EC2-backed capacity (FleetWise Edge). EC2 instances are t4g.small ARM64 with Amazon Linux 2023 ECS-optimized AMI. @@ -66 +66 @@ The cloud simulation service runs on AWS infrastructure, eliminating the need fo - * **Worker Tasks** — Each simulation spawns a Fargate task running the same `realtime_telemetry_simulator.py` container image used locally. + * **Worker Tasks** — In MQTT Direct mode, a single Fargate task runs the simulator. In FleetWise Edge mode, two separate EC2-backed tasks run on the same host: `fwe-agent` (FleetWise Edge Agent) and `fwe-simulator` (Python simulator with python-can). Both share virtual CAN interfaces (vcan0, vcan1…) via HOST network mode for per-vehicle isolation. @@ -79 +79 @@ The cloud simulation service runs on AWS infrastructure, eliminating the need fo - 3. The Lambda calls `ecs:RunTask` to launch a Fargate task: + 3. The Lambda calls `ecs:RunTask` to launch ECS tasks: @@ -81 +81 @@ The cloud simulation service runs on AWS infrastructure, eliminating the need fo - 1. In **MQTT Direct** mode: a single container (`worker`) runs the simulator with network access to IoT Core. + 1. In **MQTT Direct** mode: a single Fargate task (`sim-worker`) runs the simulator with network access to IoT Core. @@ -83 +83 @@ The cloud simulation service runs on AWS infrastructure, eliminating the need fo - 2. In **FleetWise Edge** mode: a task with two containers — `fwe-simulator` (generates CAN signals) and `fwe-agent` (collects and uploads). The Lambda retrieves the vehicle’s IoT certificate from DynamoDB and passes it to the FWE agent container as an environment variable. + 2. In **FleetWise Edge** mode: two separate EC2-backed tasks — `fwe-agent` (long-lived, runs the FleetWise Edge Agent binary) and `fwe-simulator` (per-trip, generates CAN signals on the assigned vcan interface). The Lambda retrieves the vehicle’s IoT certificate from DynamoDB and passes it to the FWE agent container. Each vehicle gets a unique vcan interface (vcan0, vcan1, vcan2…) to prevent cross-contamination.