Skip to content

Multi-tenancy, security, and isolation ​

Security on AtomOS spans the host OS, AtomOS services, Electros organisation controls, and guest configuration. No single switch delivers “tenant isolation”; you combine network design, permissions, storage boundaries, TLS trust, and operational discipline.

Use atomos-cli on the host for install, certificates, vaults, local GUI users, and health checks. Use Electros for organisation-wide roles and fleet operations. See Install with atomos-cli and VMs & Electros.

Security boundaries (mental model) ​

mermaid
flowchart TB
  subgraph org["Organisation plane"]
    EL[Electros users and roles]
  end
  subgraph mgmt["Management plane"]
    HTTPS[HTTPS to AtomOS APIs / GUI]
    SSH[SSH / Cockpit on host OS]
  end
  subgraph host["AtomOS host"]
    CLI[atomos-cli as root]
    SVC[Compute / storage / cluster services]
    KVM[KVM / libvirt guests]
    PIN[Pinned peer certificates]
    HMAC[Cluster HMAC secret]
  end
  EL -->|TLS + fingerprint approval| HTTPS
  HTTPS --> SVC
  CLI --> SVC
  SSH --> host
  SVC --> KVM
  SVC <-->|TLS + pin / HMAC where configured| PIN
  SVC --- HMAC
BoundaryMechanismImplemented in product vs your responsibility
Electros ↔ AtomOS targetTLS to AtomOS HTTPS services; operator approves host certificate fingerprintImplemented (HTTPS default from AtomOS 0.9); you must verify fingerprints
AtomOS host ↔ AtomOS hostTLS for service traffic; certificate pinning via atomos-cli --get-certificate; HMAC cluster auth with shared secretBuilding blocks are product-side; you configure trust and secrets consistently. This is not automatically mutual TLS (mTLS)
Tenant ↔ tenant (VMs)Separate VMs, networks, volumes; Electros permissionsIsolation primitives implemented; policy enforcement is your design
Operator ↔ host OSLinux accounts, sudo, SSH hardeningHost OS — recommended hardening is your baseline
Guest ↔ guestVirtual networking and hypervisor isolationImplemented at KVM layer; misconfiguration (shared bridges, shared secrets) breaks isolation

Management access ​

SurfacePurposeHardening notes
ElectrosFleet UI, targets, scenarios, VM lifecycleOrganisation MFA/policy per your IdP; least-privilege roles
AtomOS GUI (atomosgui, from 0.9)On-host Electros-like UI for local usersExpose only on trusted networks; see GUI ports in install reference
atomos-cliInstall, vaults, certs, service controlRequires root/sudo; restrict SSH and audit usage
Cockpit (9090)Generic host OS adminComplementary; not a substitute for AtomOS API auth
SSH (22)Break-glass host accessKeys, bastion, allow lists; separate from guest bridge traffic when possible

Root is not RBAC

Electros roles and AtomOS GUI groups do not replace root for atomos-cli --install, certificate generation, or deep service maintenance.

Authentication and RBAC ​

Electros (organisation) ​

Electros organisation roles and permissions control who may:

  • Register and trust AtomOS targets
  • Enable hosts under Active Connections / scenarios
  • Create and operate IaaS resources (VMs, networks, volumes) within policy

Authoritative UI documentation: Electros user guide. Registration flow: VMs & Electros.

AtomOS GUI (local host) ​

Local users are managed on the host:

bash
sudo atomos-cli -mu
GroupScope
storageStorage-related operations on this host
computeCompute-related operations on this host
adminCompute, storage, and network on this host

Group membership flags: atomos-cli --group-add / --group-del (see Install & CLI reference). Full table: Install — local users.

PracticeStatus
HTTPS for AtomOS services (0.9+)Implemented — generate certs with atomos-cli --generate-cert
Fingerprint verification for Electros targetsImplemented — atomos-cli --show-fingerprint
Peer certificate pinningImplemented — atomos-cli --get-certificate HOST SERVICE
Electros organisation RBACImplemented in Electros
Local GUI groups (storage, compute, admin)Implemented on hosts with AtomOS GUI
MFA for ElectrosRecommended — configure via your organisation IdP where supported
Centralised SIEM for all AtomOS audit eventsRecommended — depends on your logging pipeline
Allow/ban client UID listsAvailable via atomos-cli allow/ban list flags — your policy

Tenant isolation ​

Infrastructure isolation (what AtomOS and KVM provide):

  • Separate VM domains, virtual NICs, and volume attachments
  • Vault paths under /mnt scoped by storage configuration
  • Optional client UID allow/ban lists for API clients

Organisation isolation (what Electros provides):

  • Which targets and scenarios a user or team may use
  • Separation of admin vs operator vs self-service roles

Recommended (not automatic):

  • Management VLAN vs tenant VM networks (Networking, VLANs where used)
  • No shared SSH keys across tenants
  • Separate backup jobs and restore permissions per tenant class

MSP pattern

Multi-customer MSP deployments typically combine multiple hosts, Electros organisation structure, and network segmentation per customer. Validate on a PoC before production SLAs.

TLS certificates (from AtomOS 0.9) ​

From AtomOS 0.9, service traffic uses HTTPS. Generate certificates that include every IP and DNS name clients use:

bash
sudo atomos-cli --generate-cert
sudo atomos-cli -ra

Show the fingerprint Electros must match:

bash
sudo atomos-cli --show-fingerprint

Electros trust: compare fingerprint on the host with the trust prompt in Connections → Targets (Electros v3.1.6+ trust-host flow). Details: Networking & certificates.

Peer trust: on each host that must call a peer, run --get-certificate for that peer IP and service role (compute or storage), confirm the fingerprint, and save the pinned certificate when prompted. Repeat for every address peers use.

TLS terminology (use precisely) ​

TermMeaning here
TLS transport encryptionHTTPS/TLS protects bytes on the wire to AtomOS services (from 0.9)
Server certificate validationClient checks the server cert (and optionally verification toggles via --set-cert-verify)
Certificate pinningOperator stores a specific peer certificate after fingerprint check (--get-certificate)
Client certificate authenticationClient presents a certificate during TLS handshake
Mutual TLS (mTLS)Both sides present and validate certificates during TLS negotiation
HMAC cluster authenticationShared ELEMENTO_CLUSTER_SECRET used to sign cluster messages — orthogonal to mTLS
AuthorizationWhether the authenticated caller may perform an action (Electros RBAC, GUI groups, allow lists)

mTLS vs pinning

Public AtomOS documentation describes HTTPS, fingerprint approval, certificate pinning, and HMAC cluster secrets. Do not equate pinning or HMAC with mutual TLS unless your deployment explicitly enables and validates client certificates during TLS negotiation.

ItemImplementedRecommended
Self-signed or CLI-generated host certsYesDocument SAN list; renew before expiry
Enterprise PKI integrationDepends on deploymentUse org CA where policy requires
Certificate verification toggle--set-cert-verifyLeave verification enabled in production

Cluster secrets (ELEMENTO_CLUSTER_SECRET) ​

Hosts in the same logical cluster use a shared secret for host-to-host HMAC authentication on cluster-related traffic. Treat it as key material, not documentation content.

TopicGuidance
PurposeShared secret so only configured peers authenticate to one another
ConfigurationSet consistently on every host that must participate in the same cluster; follow install/runbook for your release (environment or config location on the host—confirm with atomos-cli --help and Elemento support)
DocumentationNever paste live secret values into tickets, wikis, or chat
RotationPlan rotation in a maintenance window: update all members, restart affected services, verify peer connectivity—details are deployment-specific; contact support if unsure
RecoveryIf secrets diverge, peers fail authentication (symptoms resemble “split” cluster); realign secret or rebuild trust per runbook

Secret leakage

If a cluster secret is exposed, assume cluster authentication is compromised until you rotate and validate all peers.

Host hardening ​

ControlImplemented in AtomOSRecommended baseline
FirewallD awarenessatomos-cli --fw-info exposes contextRestrict management SSH; open only required ports
OS patchingHost distro (dnf update, etc.)Regular kernel and QEMU/libvirt updates
Minimal servicesYour install role choiceDisable unused roles and Cockpit exposure if not needed
SELinuxDistro default on AlmaLinux/RockyDo not disable without compensating controls

Audit logging ​

SourceWhat you get
AtomOS servicesService journals — atomos-cli --journal SERVICE TIME
ElectrosOrganisation action history per Electros product capabilities
Linux/var/log/secure, auditd if enabled

Centralised retention, tamper protection, and correlation IDs are recommended for regulated environments—not a single bundled SIEM in AtomOS.

Guest security: Secure Boot, vTPM, confidential VMs ​

FeatureNotes
Secure Boot for guestsAvailable when firmware, guest OS, and VM configuration support it—enable where compliance requires
vTPMSupported when configured for the guest and workload needs attestation/secrets
Intel TDX / confidential computingSpecialized topology and release constraints — see Confidential computing (TDX)

Validate guest firmware settings in a lab before production compliance claims.

Production checklist ​

Implemented capabilities you should use:

  • [ ] HTTPS certs generated and SANs complete (atomos-cli --generate-cert)
  • [ ] Electros fingerprint verified for every target
  • [ ] Peer certificates exchanged for multi-host clusters
  • [ ] Cluster secret aligned on all members (never logged)
  • [ ] Electros role matrix documented
  • [ ] AtomOS GUI local users only where needed; groups least-privilege

Recommended practices:

  • [ ] Management network separation
  • [ ] Backup encryption and off-site copies (Backup)
  • [ ] Restore drills
  • [ ] Incident runbook for cert expiry and secret mismatch
  • [ ] Guest patching and hardening standard