Join our Newsletter — 33% off our NHI Course
Home› Guides› Arista EOS Hardening: Lock Down AAA, eAPI, CloudVision…
Guide Network Security

Arista EOS Hardening: Lock Down AAA, eAPI, CloudVision and the Control Plane

← All guides
By NHI Mgmt Group, edited by Lalit Choda Updated 8 November 2026 12 min read
On this page

Arista switches in data centres are managed through more channels than most teams track: SSH, eAPI over HTTPS, gNMI, the CloudVision streaming agent and a Linux shell underneath it all, and each one is a way in if left at defaults. Data centre fabrics are automated, so the most powerful credentials on an Arista estate often belong to automation tools and CloudVision rather than people. This guide covers EOS authentication and role-based access, the root and enable accounts, eAPI and gNMI hardening, CloudVision TerminAttr authentication, the control-plane ACL and CoPP, TLS profiles, logging and detection. It is written for network engineers and security teams running Arista EOS. General principles that apply to every vendor are in the Network Device Management Plane Hardening Guide; this page stays on EOS.

This is an independent guide from NHI Mgmt Group, based on Arista's public documentation as of November 2026. It is not sponsored or reviewed by Arista. Product features change, so confirm settings against Arista's current documentation.

Key takeaways

  • Centralise authentication with TACACS+ or RADIUS. Use aaa authentication login default group ... with local fallback, and map users to EOS roles (network-admin, network-operator or custom roles) rather than sharing local accounts.
  • Disable the root shell account. no aaa root removes direct root login; keep the enable password hashed with SHA-512.
  • Treat eAPI, gNMI and CloudVision as privileged APIs. HTTPS only, an SSL profile, a management VRF and a standard ACL on each, and never set TerminAttr's disable_aaa option in production.
  • Replace the default control-plane ACL. default-control-plane-acl is read-only and permits management protocols such as SSH, Telnet, HTTP and SNMP from any source, so clone it, restrict sources and apply it under system control-plane.
  • Patch from Arista's advisories. Arista publishes numbered security advisories with RSS, CSAF and email feeds; apply EOS security updates promptly.

How identity and access work in Arista EOS

EOS authenticates and authorises every management session through its AAA framework, whatever the channel. That includes the CLI over SSH or console and API calls over eAPI. Sources can be local accounts, TACACS+, RADIUS or LDAP, organised in server groups.

ElementEOS command or objectHardening point
Login authenticationaaa authentication login default group TACACS1 localCentral first, local only as fallback for outages
Command authorisationaaa authorization exec default group ..., command authorisationAuthorise per command for administrators so TACACS+ can deny dangerous commands
Accountingaaa accounting exec and commands to the TACACS+ groupEvery command recorded centrally
Server groupsaaa group server tacacs+, aaa group server radiusServers reached through the management VRF; RADIUS over TLS with an SSL profile where supported
Local usersusername <name> secret ...Passwords stored as SHA-512 hashes; one break-glass account, vaulted
No-password loginsConsole only by default; aaa authentication policy local allow-nopassword-remote-login changes thisNever enable remote no-password login; Arista advises against it
Rolesnetwork-admin (all commands), network-operator (EXEC only), custom role with ordered permit and deny rulesDefault users to operator; build custom roles for automation
Remote role assignmentRADIUS Arista-AVPair shell:roles= and shell:priv-lvl= (0 to 15)Assign roles from the AAA server so access follows group membership

Check role definitions with show users roles and server health with show tacacs and show radius. Use tacacs-server host ... single-connection to multiplex sessions, and set a short timeout so fallback to local accounts happens quickly during an outage. See the AAA Security Guide.

Admin roles and privileged access

  • Root account: EOS runs on Linux. aaa root secret sets a root password, aaa root nopassword removes it, and no aaa root disables the account. Arista's own validated designs generate no aaa root. Disable it and reach the shell, where needed, through the bash command under AAA authorisation and accounting.
  • Enable password: set enable password sha512 ... so the stored value is a hash. With role-based authorisation from TACACS+ the enable step matters less, but an unset enable password is a finding in most audits.
  • Password encoding: keys and passwords in running-config are stored encrypted or hashed; the encrypt-type value (0 clear text, 5 hashed, 7 encrypted keys) controls how input is read. Type 7 is reversible, so treat a config backup containing TACACS+ and RADIUS keys as sensitive.
  • Break-glass: one local network-admin account per device with a unique vaulted password, alerting on every use.
  • Bash access: limit the bash command to a small custom role; changes made in the Linux shell bypass the CLI command authorisation that TACACS+ provides.

Integrations, API tokens and service accounts

Automation is where most privileged activity happens on an Arista fabric. Each integration needs its own identity, transport protection and network restriction.

InterfaceConfigurationHarden by
eAPI (JSON-RPC over HTTP)management api http-commands, protocol https, no shutdown, per-VRF enablementHTTPS only (never protocol http); an SSL profile with your own certificate; enable only in the management VRF with a standard ACL; session timeout lower than the 1,440 minute default; a dedicated automation account with a custom role
eAPI unix socketprotocol unix-socketEnable only when on-box scripts need it
gNMI / OpenConfigmanagement api gnmi, transport grpc <name> (default TCP 6030)ssl profile, ip access-group, vrf, and authorization requests so each RPC passes AAA authorisation
CloudVision (TerminAttr)TerminAttr daemon streaming to CloudVision (TCP 9910 on-premises, 443 for CloudVision as a Service)Certificate or token authentication; obscure the key file; CloudVision-only VRF; never set disable_aaa; consider gNMI read-only mode where config push is not used
SSHmanagement sshRestricted cipher, MAC and key exchange lists, fips restrictions where required, idle timeout, connection limits and an ingress ACL per VRF
  • CloudVision authority: CloudVision can push configuration to every device it manages. Arista's validated design schema warns that setting TerminAttr's disable_aaa means all commands pushed from CloudVision are applied directly without authorisation. Keep AAA on so CloudVision changes are authorised and accounted, and protect CloudVision administrator accounts with SSO and MFA as you would a domain controller.
  • Mutual TLS: EOS supports mTLS for gRPC, RESTCONF and eAPI. By default only certificates signed by Arista's CA are trusted, so install your own CA with trust certificate in the SSL profile before relying on client certificates.
  • Automation credentials: Ansible, Nornir and AVD pipelines hold credentials for every switch. Store them in a secrets manager, give pipelines a custom role rather than network-admin where possible, and rotate on staff changes. See the Secrets Management Guide.

Hardening baseline

Control-plane ACL and CoPP

Arista's open management documentation explains that the default control-plane ACL cannot be modified. It contains broad entries, including permit tcp any any eq ssh telnet www snmp bgp https msdp ldp netconf-ssh gnmi. The supported approach is to read it with show ip access-lists default-control-plane-acl, copy it into a new ACL, tighten sources, and apply it under system control-plane with ip access-group <acl> in (or ip access-group <acl> vrf <vrf> in) on EOS 4.23 and later. Keep the routing protocol, BFD and MLAG entries the fabric needs and restrict management protocols to your management subnets. Control-plane policing complements the ACL: policy-map type copp copp-system-policy rate-limits traffic classes punted to the CPU. The DISA Arista MLS EOS router STIG rates "restrict traffic destined to itself" as high severity.

Baseline settings

AreaSettingRecommended state
Rootno aaa rootDisabled
Remote no-password loginallow-nopassword-remote-loginNot configured
Telnet and HTTPmanagement telnet, eAPI protocol httpShut down
TLSmanagement security, ssl profile with tls versions 1.2 or 1.3 and a cipher-listApplied to eAPI, gNMI, RADIUS and syslog over TLS
Certificatessecurity pki key generate, signing-request, crlDevice certificates from your CA, CRLs loaded
Control planesystem control-plane custom ACL; copp-system-policyManagement sources restricted; CoPP reviewed
Management VRFManagement services, AAA and logging in a dedicated VRFManagement traffic separated from the data plane
Logginglogging vrf MGMT host ... protocol tls ssl-profile ..., logging format rfc5424, logging source-interfaceCentral, encrypted, consistent format
SNMPSNMPv3 with authentication and privacy; no default communitiesRead-only, ACL restricted
FIPSfips restrictions on SSH and SSL profilesWhere policy requires FIPS-approved algorithms

Rolling out hardening across a fabric

  1. Baseline: export running configurations and record which management services, VRFs and ACLs each device uses. Flag devices with protocol http, Telnet, aaa root set or TerminAttr disable_aaa.
  2. Model in code: express the baseline in your configuration generator (for example Arista AVD data models) so every device gets the same settings and drift is visible.
  3. Lab first: test the custom control-plane ACL in a lab or digital twin with all routing protocols, MLAG and BFD up; a missing entry can drop adjacencies.
  4. Pilot a pair of leaves: apply ACL, AAA and TLS changes to one MLAG pair, watch logs and ACL counters, then roll out by pod.
  5. Use configuration sessions: stage changes in an EOS configuration session with a commit timer so the change rolls back automatically if you lose access.
  6. Rollback: keep the previous ACL in place unapplied and the console path tested, so reverting is one command.

Choosing an approach for your estate

  • Small estates (a few switches, CLI managed): prioritise TACACS+ or RADIUS with accounting, no aaa root, eAPI off unless used, Telnet and HTTP off, and a custom control-plane ACL. CloudVision and gNMI may not be present at all, which removes whole attack paths.
  • Automated fabrics (AVD, CloudVision, gNMI telemetry): the automation platform is the crown jewel. Separate read-only telemetry identities from configuration-push identities, use certificates for TerminAttr and gNMI clients, and gate configuration pushes through change review in the pipeline rather than ad hoc CloudVision edits.
  • TACACS+ or RADIUS: TACACS+ gives per-command authorisation and accounting, which suits administrator access; RADIUS fits where a NAC platform already issues roles through the Arista-AVPair attribute and can run over TLS with an SSL profile.
  • Regulated environments: apply fips restrictions on SSH and SSL profiles and align the baseline with the DISA STIG for Arista MLS EOS, documenting any deviation.

Logging and detection

SignalSourceWhy it matters
Command accountingTACACS+ accountingWho ran what, including configuration and bash commands
Login failures and local account useSyslog AAA messagesBrute force (T1110) and break-glass use outside incidents
Configuration changesSyslog, CloudVision change records, config backupsUnexpected changes to AAA, ACLs or management services (T1556 Modify Authentication Process)
Control-plane ACL hitsACL counters on the custom control-plane ACLManagement access attempts from unexpected sources
Configuration exportsAAA accounting, API logsBulk config retrieval (T1602.002 Network Device Configuration Dump) exposes type 7 keys
Streaming telemetryTerminAttr log streaming (/var/log/messages by default)A second, independent copy of device logs in CloudVision

Send logs over TLS to a collector in the management VRF and alert when a device stops logging. See the Network Device Syslog and Configuration Change Detection Guide.

Metrics that show it is working:

  • Percentage of devices with a custom control-plane ACL applied in every VRF.
  • Percentage of devices with no aaa root, no Telnet and eAPI HTTPS only.
  • Count of local account logins outside declared incidents (target zero).
  • Days from an Arista security advisory to remediation on affected devices.
  • Percentage of devices whose running configuration matches the generated baseline.

Common misconfigurations

  • Relying on the default control-plane ACL, which permits SSH, Telnet, HTTP, HTTPS and SNMP from any source in its read-only form.
  • eAPI enabled with protocol http or in the default VRF without an ACL, sending credentials in clear text across the fabric.
  • TerminAttr with disable_aaa set during onboarding and never removed, so CloudVision changes bypass authorisation and accounting.
  • A shared admin account used by people and automation alike, so accounting cannot tell who did what.
  • Configuration backups stored openly while they contain reversible type 7 TACACS+ and RADIUS keys.
  • Advisories missed because nobody subscribed to Arista's RSS, CSAF or email feeds. See the Vulnerability Management for Network Devices Guide.

Framework mapping

ControlNIST SP 800-53 Rev 5NIST CSF 2.0ATT&CK
Central AAA and rolesIA-2, AC-2, AC-6PR.AA-01, PR.AA-05T1078
Control-plane ACL and CoPPSC-7, SC-5, AC-17PR.IR-01T1498
TLS profiles and SSH cryptoSC-8, SC-13PR.AA-03T1040
Baseline and drift controlCM-6, CM-7PR.PS-01T1556
Logging and accountingAU-2, AU-6, AU-9PR.PS-04, DE.CM-09T1602.002
Advisory-driven patchingSI-2PR.PS-02T1190

Practitioner checklist

  • Configure TACACS+ or RADIUS login, authorisation and accounting through the management VRF, with local fallback only.
  • Assign users to network-operator or custom roles by default; restrict network-admin and bash.
  • Set no aaa root and a SHA-512 enable password; vault one break-glass account per device.
  • Run eAPI and gNMI over HTTPS or TLS with an SSL profile, a management VRF and a standard ACL; shut down HTTP and Telnet.
  • Authenticate TerminAttr with certificates or tokens and remove any disable_aaa setting.
  • Clone the default control-plane ACL, restrict management sources and apply it under system control-plane for each VRF.
  • Review copp-system-policy rates for your platform and traffic.
  • Send syslog over TLS in RFC 5424 format and alert on silent devices.
  • Subscribe to Arista security advisories and track remediation time.

Standards and references

Related NHI Mgmt Group resources: Network Device Management Plane Hardening Guide · AAA Security Guide · Network Device Syslog and Configuration Change Detection Guide · Vulnerability Management for Network Devices Guide

Free weekly newsletter

Subscribe to the NHI & AI Identity Journal

The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.

Bonus 33% off our NHI Course when you subscribe.

NHIMG Editorial Note
Researched and written by the NHI Mgmt Group editorial team using AI tools, under the editorial direction of Lalit Choda. Facts are drawn from the sources listed on this page and checked by our automated quality process. Last updated 8 November 2026. Spotted an error? Use our contact page.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM and Agentic AI security. nhimg.org