CloudSignal Docs
Getting StartedSecurity

Security overview

How CloudSignal secures your MQTT infrastructure with TLS encryption, token authentication, ACLs, and organization isolation.

CloudSignal secures every connection with TLS, every user with per-organization authentication, and every topic with ACLs. This page is a tour of those layers and the practices that keep them effective.

Security features

Encryption in transit

All CloudSignal connections are encrypted with TLS 1.2+. There are two endpoints, one for native MQTT clients and one for browser-based WebSocket clients.

TransportURLEncryption
MQTT over TLSmqtts://mqtt.cloudsignal.app:8883TLS 1.2+
MQTT over WSSwss://connect.cloudsignal.app:18885/TLS 1.2+

Authentication

CloudSignal supports two authentication methods.

MethodWhen to useLifetime
Individual usersBackend services, agents, IoT devicesPermanent until rotated
Temporary tokensBrowser clients60-minute default TTL

Individual users are created in the dashboard or via API with usernames in the format username@organization_id. Temporary tokens are minted from your backend, see Server-side tokens.

Authorization (ACLs)

Access control lists define what each user can do:

User: agent-01@org_k7xm4pqr2n5t
  PUBLISH:   agents/agent-01/#
  SUBSCRIBE: agents/agent-01/inbox

User: dashboard@org_k7xm4pqr2n5t
  PUBLISH:   commands/#
  SUBSCRIBE: agents/#

ACLs are configured per user in the dashboard.

Organization isolation

Each CloudSignal organization is fully isolated:

GuaranteeWhat it means
Separate namespacesTopics are scoped to the organization
Independent usersCredentials only work inside their organization
Isolated quotasOne organization's usage doesn't affect another
Audit loggingAuthentication events are logged per organization

Best practices

For browser applications

PracticeWhy
Never embed permanent credentials in client codeSource is visible to users and extensions
Mint tokens from your backendKeep secret keys server-side
Verify the user before issuing a tokenPrevents anonymous token requests
Use short TTLsCompromised tokens expire quickly

For backend services and agents

PracticeWhy
Unique credentials per service/agentLimits blast radius if one leaks
Use TLS in productionEncrypts all traffic
Store credentials in env vars or secret managersAvoids accidental commits
Monitor for anomaliesUnusual patterns hint at compromise

Security checklist

  • Connecting via mqtts://mqtt.cloudsignal.app:8883 or wss://connect.cloudsignal.app:18885/
  • Each client has unique credentials
  • ACLs configured with least-privilege access
  • Browser apps use server-side tokens, not permanent credentials
  • Credentials stored in environment variables or a secret manager
  • Session history monitored for suspicious activity

On this page