autonomy ros2 secure-env

Print the SROS 2 env a node needs to join the secured graph (after verifying keystore + enclave)

Synopsis

Emit the ROS_SECURITY_* env block (and, with --large-data, the FastDDS
large-data transport profile) that a node must carry to join a secured graph
under enclave E of keystore K — instead of hand-assembling four env vars per
node and risking a silently-unsecured launch.

Before printing anything, secure-env VERIFIES that the keystore is complete
(CA + governance present) and that enclave E carries its cert/key/permissions
and covers the governance domains. If not, it fails closed with an actionable
error rather than emitting env that would bring the node up unsecured.

Formats (--output):
  env    (default) KEY=VALUE per line, for  env $(autonomy ros2 secure-env ...) my_node
  shell  export KEY=VALUE, for               eval "$(autonomy ros2 secure-env -o shell ...)"
  json   {"KEY":"VALUE"} for programmatic consumers

Examples:
  env $(autonomy ros2 secure-env --keystore /var/lib/autonomyops/ks --enclave /demo_robot/arm_controller) \
      ros2 run demo_nodes_cpp talker
  autonomy ros2 secure-env -k /var/lib/autonomyops/ks -e /governed_ros2_bridge_real --large-data -o json

Usage

autonomy ros2 secure-env [flags]

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)
  -o, --output string     output format: env|shell|json (default "env")
      --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