Fly.io is built on a memory-safe stack (Rust + Go) and uses KVM hardware virtualization for every Machine — providing true isolation between tenants.
Unlike shared container platforms, Fly Machines run in KVM virtual machines:
Tenant A Machine Tenant B Machine
│ │
KVM VM KVM VM
│ │
───┴──────────────────────┴───
Bare Metal Host
KVM provides:
- Separate kernel per Machine
- Hardware memory isolation
- Network namespace isolation
- No container escape to neighbor tenants
Traffic between Machines on 6PN is encrypted with WireGuard (modern, audited, fast cryptography).
All public endpoints use TLS. force_https = true in fly.toml ensures no plain HTTP.
Machines have no inbound ports open unless you explicitly configure them in fly.toml services. A Machine with no [services] block is only reachable from the private network.
- Secrets are encrypted at rest using Fly's key management infrastructure
- Secrets are never exposed in
fly status,fly config show, or logs - Only the secret names are listed; values are never retrievable after setting
- Secrets are injected as environment variables at Machine start time
fly secrets set API_KEY=secret-value # Encrypted immediately
fly secrets list # Shows names only, never values- Owner — full control, billing access
- Admin — manage apps, members; no billing
- Member — deploy and manage apps; no member management
- Billing Manager — billing only
fly orgs show my-org # List org details and members
fly orgs invite email@x.com # Invite a memberFor CI/CD, create scoped tokens instead of using your personal auth token:
# Deploy-only token (can deploy, cannot delete apps)
fly tokens create deploy -a my-app
# Read-only token
fly tokens create readonly -a my-app
# Org-level token
fly tokens create org -o my-orgfly tokens list
fly tokens revoke <token-id>Enterprise organizations can configure SSO with:
- Google Workspace
- Okta
- Azure AD
- Any SAML 2.0 / OIDC provider
Contact Fly.io sales for enterprise SSO setup.
Fly.io is SOC 2 Type 2 attested. Request the report from Fly.io for compliance purposes.
| Requirement | Fly.io Support |
|---|---|
| Data residency | Choose specific regions |
| Encryption in transit | TLS + WireGuard (automatic) |
| Encryption at rest | Volumes encrypted at rest |
| Audit logs | Available via Fly dashboard |
| SOC 2 Type 2 | Available on request |
| GDPR | EU regions available (ams, lhr, fra, cdg) |
For EU-regulated software deploying on Fly.io:
- Use EU regions (
ams,lhr,fra,cdg,waw) - Enable TLS everywhere
- Use private networking (6PN) for inter-service communication
- Store secrets in
fly secrets(not env files) - Enable Volume encryption and snapshots
- Set up audit logging via log drain
- Run
fly tokens create deploy -a my-app. - Store it in a password manager.
- Use it in a
fly deploycommand:FLY_API_TOKEN=<token> fly deploy.
- Run
fly orgs show personal. - Note the members and their roles.
- Run
fly secrets list. - Identify any secrets that are no longer needed.
- Remove them with
fly secrets unset <KEY>.
→ Continue to 1800 — Pricing & Cost Optimization