Read-Only Device Accounts
Infracast collects on-premises routers, firewalls and load balancers through a relay, using an account you create on each device. Use a read-only account. Infracast only reads: it never changes device configuration. A read-only account means a stolen collector credential cannot change your network either.
Each recipe below was checked on a live appliance (October 2026, versions listed). For every one we confirmed two things: the account can read everything Infracast collects, and the device refuses configuration changes and reboots from it (the same change made by an admin account succeeds).
Palo Alto Networks (PAN-OS)
Use the built-in devicereader role. Do not build a custom admin role with XML API "Configuration" enabled: on
PAN-OS that permission includes writing the candidate configuration (it has no read-only variant).
set mgt-config users infracast-ro password
set mgt-config users infracast-ro permissions role-based devicereader localhost.localdomain
commit
Verified on PAN-OS 11.2.15: configuration and operational reads work over REST and the XML API. Configuration
set/delete, commit, and clear/request operational commands are refused.
F5 BIG-IP
Create a local user with the guest role on all partitions (all partitions so list calls are not silently
filtered to Common):
tmsh create auth user infracast-ro password '<temporary>' shell none partition-access replace-all-with { all-partitions { role guest } }
A user created by tmsh starts as password expired. Every iControl REST call then returns 401 until the user
changes its own password. Change it once, as infracast-ro, before giving it to Infracast (the new password must
differ from the temporary one):
curl -sk -u 'infracast-ro:<temporary>' -X PATCH -H 'Content-Type: application/json' \
https://<bigip>/mgmt/shared/authz/users/infracast-ro \
-d '{"oldPassword":"<temporary>","password":"<final>"}'
Verified on BIG-IP 17.1.3.7: the user can read virtual servers, pools and members, iRules, client-SSL profiles and
self-IPs. Create, modify, delete and user creation are refused. guest can still request save sys config, which
writes the running configuration to disk unchanged.
Juniper (Junos / SRX)
A login class with view permissions, plus deny-commands for the few file and system commands that view
otherwise permits:
set system login class infracast-ro permissions [ view view-configuration ]
set system login class infracast-ro deny-commands "^(file (delete|copy|rename)|request system (reboot|halt|power-off|zeroize|software))"
set system login user infracast-ro class infracast-ro authentication plain-text-password
set system services netconf ssh
Infracast connects over NETCONF on the SSH port (22 unless you set ssh_port on the connector).
Verified on vSRX 23.4R2: configuration mode, commit, reboot, clear bgp and shell access are refused over CLI and
NETCONF. Without the deny-commands line, a view user can delete files under /var/tmp. The
deny-commands line itself has not yet been re-tested on a live device.
The AWS vSRX image's aws-default configuration group sets system services ssh no-passwords, which blocks
password login for every user. Use key authentication for infracast-ro, or exclude that group from the SSH stanza
(set system services ssh apply-groups-except aws-default).
Cisco IOS-XE
Default: a read-only account. Infracast collects the device, interfaces, routes, BGP and VLANs from a privilege-7
account allowed the specific show commands it runs:
username infracast-ro privilege 7 secret <password>
privilege exec level 7 show running-config
privilege exec level 7 show ip route
privilege exec level 7 show ip bgp
privilege exec level 7 show interfaces
privilege exec level 7 show version
privilege exec level 7 show vlan brief
privilege exec level 7 show cdp neighbors detail
IOS-XE returns an empty show running-config to any account below privilege 15, even when that command is
explicitly allowed, and also with a CLI parser view. NAT rules exist only in the running configuration, so with the
account above Infracast collects no NAT rules for the device. Infracast records a warning on the collection; it
does not guess. Paths that depend on that router's NAT are reported as unresolved, not as open or closed.
Opt-in: privilege 15, for NAT. If you need NAT rules modelled, give the collector a privilege-15 account. That
account can change the device configuration, so treat its credential like any other administrator credential
(dedicated account, restrict its source to the relay host with an access-class on the VTY lines, log its sessions).
Infracast itself still issues only show commands.
Verified on Catalyst 8000V IOS-XE 17.18.05: from privilege 7, configure terminal, write memory and reload are
refused, and every collected command works except the running-config, which is empty as described.
Fortinet FortiGate
Create a REST API administrator with a read-only access profile and generate its token
(execute api-user generate-key infracast-ro), restricted with trusthost to the relay's address. This recipe was not
part of the October 2026 live run (the FortiGate was used only as a router in that lab).