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