Networking and egress
Allow only the outbound connections required by the worker, image pulls, DNS, and each configured backup source.
Loading documentation…
RestoreTrust does not require an inbound connection to your cluster. The agent establishes an outbound, TLS-protected session, and each restore Job receives narrowly scoped egress to its configured backup source.
| Origin | Destination | Protocol and port | Purpose |
|---|---|---|---|
| Agent Pod | Host in generated WORKER_GRPC_TARGET | TCP on the generated port, normally 443 | Worker session, assignments, status, and logs |
| Cluster nodes | Registries referenced by agent and restore images | Registry-defined, normally TCP 443 | Pull agent, database, and validator images |
| Agent Pod | Kubernetes API | Cluster-defined | Create and observe Jobs and execution NetworkPolicies |
| Restore Pods | Cluster DNS | UDP and TCP 53 | Resolve the configured source |
| Restore Pods | Backup source | See below | Download the backup |
Restore Jobs do not need access to the RestoreTrust worker endpoint.
| Source | Default egress |
|---|---|
| S3-compatible or HTTPS | TCP 443, or the configured port |
| SFTP | TCP 22, or the configured port |
| SMB | TCP 445, or the configured port |
| FTP | TCP 21 plus passive data connections on any TCP port to the same pinned address |
For FTP, restrict the destination address even though the passive data port varies.
The generated RBAC manifest creates restoretrust-job-egress-floor in the job namespace. It selects every Pod, denies ingress, and permits only DNS egress.
For each restore:
The per-execution policy is removed with its Job.
Kubernetes accepts NetworkPolicy objects even when the installed CNI does not enforce them. Verify enforcement for both IPv4 and IPv6 paths used in your cluster.
The worker always denies loopback, link-local, unspecified, and the Kubernetes API address as source targets. Add your Pod, Service, management, and other protected ranges to the Deployment:
To permit sources only in approved ranges, add:
When an allowlist is present, resolution outside it fails before a Job is created. See Configure a worker for update guidance.
The generated floor permits Pods labeled k8s-app: kube-dns in the kube-system namespace. This works for standard CoreDNS deployments.
If Pod /etc/resolv.conf points to NodeLocal DNSCache or another resolver address, add that address to the floor's to list before starting the agent:
Remove the IPv4 or IPv6 entry if it does not apply. Keep the existing CoreDNS selector when your cluster uses both paths.
On Kubernetes 1.30 or newer, the console generates an optional admission policy. It denies additional or widened NetworkPolicies in the selected job namespace.
NetworkPolicy allowances are additive, so another policy could otherwise widen egress. Apply the admission manifest only after reviewing existing cluster-scoped policy with the same name.
The generated restoretrust-managed-egress-v1 admission object targets one
job namespace. Do not overwrite an existing object that protects another
worker's namespace. Contact RestoreTrust support for a reviewed policy
covering multiple job namespaces.
During a check, you should also see one restoretrust-egress-... policy for its restore Pod. If DNS or source access fails, compare the resolved address in the agent or check logs with your allow and deny ranges, firewall rules, and CNI behavior.
DNS remains available to restore Pods. If your threat model requires DNS filtering or node-level egress controls, enforce those at the cluster or network layer.