autonomy ros2 secure-run¶
Verify the keystore + enclave, then run a command with the SROS 2 env injected
Synopsis¶
Run <command> with the ROS_SECURITY_* env (and, with --large-data, the
FastDDS large-data transport profile) injected, so the launched node joins the
secured graph under enclave E of keystore K without hand-wiring env.
Like secure-env, it VERIFIES the keystore + enclave are complete BEFORE
launching and fails closed otherwise — a node never comes up silently
unsecured. Separate the command with '--' so its own flags aren't consumed by
secure-run.
The command runs natively on the host (the secured env is inherited by the
subprocess); it is NOT wrapped in a container or the governed bridge — compose
it with 'autonomy ros2 run --governed-bridge' for per-message governance.
Example:
autonomy ros2 secure-run --keystore /var/lib/autonomyops/ks \
--enclave /demo_robot/arm_controller -- ros2 run demo_nodes_cpp talker
Usage¶
autonomy ros2 secure-run [flags] -- <command> [args...]
Options¶
-e, --enclave string enclave name to launch under, e.g. /demo_robot/arm_controller (the ROS_SECURITY_ENCLAVE_OVERRIDE value; mint with 'autonomy ros2 keystore mint')
-k, --keystore string path to the SROS 2 keystore root (created by 'autonomy ros2 keystore init')
--large-data also emit the large-data FastDDS transport profile so encrypted image topics aren't dropped under Enforce (#1239)
--profile string path to the large-data FastDDS profile (default /opt/autonomyops/fastdds-large-data.xml); honored only with --large-data
Options inherited from parent commands¶
--require-signed-manifest Refuse to start if the SHA256SUMS release manifest or its cosign signature is missing/invalid (Tier 2 binary-integrity check; default: build-time compile-in via -ldflags -X, build-hardened artifacts=true, all others=false)
See also¶
autonomy ros2— Execute governed ROS2 commands under AutonomyOps policy