Restate Cloud provides built-in authentication, access control, and header filtering out of the box. The guidance on this page applies to self-hosted deployments where you manage these layers yourself.
Security model
Restate Server exposes three network services, each with different security considerations:| Service | Default Port | Audience | Security posture |
|---|---|---|---|
| Ingress | 8080 | External callers invoking services | Should sit behind a reverse proxy that handles authentication |
| Admin | 9070 | Operators managing deployments and inspecting state | Must be restricted to trusted operators via network controls |
| Fabric | 5122 | Cluster-internal node-to-node communication | Must not be exposed outside the cluster |
Securing the ingress port
The ingress port (default 8080) is the entry point for service invocations. In production, place a reverse proxy or API gateway in front of it to handle:- Authentication — validate caller identity (bearer tokens, API keys, mTLS)
- Header filtering — strip infrastructure auth headers before forwarding to Restate
Example: nginx reverse proxy
nginx.conf
Securing the admin port
The admin port (default 9070) provides full control over the Restate instance: registering deployments, managing invocations, and querying internal state via the SQL introspection API. Do not expose the admin port to untrusted networks. Restrict access using:- Network policies — in Kubernetes, use NetworkPolicy resources to limit which pods can reach port 9070
- Security groups — in cloud environments, restrict ingress rules to management IPs or bastion hosts
- Bind address — bind the admin port to a private interface rather than
0.0.0.0
restate.toml
restate.toml
Securing the fabric port
The fabric port (default 5122) carries cluster-internal replication and coordination traffic. Do not expose it outside the cluster — restrict access to cluster members and monitoring infrastructure only.Deployment registration
When you register an HTTP service deployment via the admin API, Restate makes an outbound HTTP connection to the provided URI for service discovery. Ensure that:- Only trusted operators can access the admin API (see above)
- Network-level controls prevent the Restate process from reaching unintended internal endpoints if your environment requires it (e.g., cloud metadata services)
Request identity
Restate can cryptographically sign requests to your service deployments, allowing your services to verify that requests originate from your Restate instance. This is important when your services are reachable from networks beyond just Restate. See Service Security — Locking down service access for setup instructions.Summary checklist
- Place a reverse proxy in front of the ingress port that authenticates callers and strips infrastructure auth headers
- Restrict admin port access to trusted operators via network controls or bind to localhost
- Do not expose the fabric port outside the cluster
- Configure request identity to sign requests to service deployments
- Consider client-side journal encryption for sensitive workloads