Proxy Clusters

Last modified on March 25, 2025

There are multiple ways to arrange your StrongDM deployment, as explained in the Deployment page. The recommended way to deploy StrongDM is through the use of proxy clusters. Proxy clusters are one of the available ways for you to proxy client traffic to your resources. They also provide a way to segment your network so that particular proxies are used to access particular resources. Proxy clusters sit behind your load balancers, and they allow you to scale your infrastructure to handle large amounts of traffic as needed; but they can also be run with only one or two proxy workers for simple network segments.

When your organization is set up with proxy clusters, administrators can create proxy clusters, configure resources in StrongDM and attach them to the proxy clusters. Then, they allow users access to those resources through standing access with Roles or through Just-in-Time (JIT) access with Workflows.

Once they have been granted access, users can use the desktop app or CLI (/cli/) to connect to your resources. Their client reaches out to the appropriate proxy cluster. One of the workers in the cluster handles the request, verifies the client is authorized to connect, and obtains credentials to connect to the resource. The connection is proxied without the credentials ever being exposed to that user. The user simply clicks to connect and begins working on the resource, unaware of any of these behind-the-scenes actions.

Overview

A StrongDM proxy cluster comprises one or more proxy workers. A proxy worker is a process that mediates connectivity between clients and resources.

StrongDM Proxy Cluster Network Architecture
StrongDM Proxy Cluster Network Architecture

When a client connects to a StrongDM resource, it looks up which proxy cluster the resource belongs to and uses that cluster to connect. One of the proxy workers in the cluster parses and logs the request; fetches, decrypts, and injects credentials as necessary; and forwards the connection to the resource.

Proxy worker egress requirements

Proxy workers must be able to send traffic to several destinations in order to function correctly:

For more information, please see the Ports Guide.

Third-party certificates

The StrongDM control plane automatically signs and issues certificates for proxy clusters, but you can also configure your proxy cluster to use your own certificates. Proxy workers respect the following environment variables, which can be mixed and matched:

  • SDM_TLS_CERT_SOURCE determines where the proxy worker gets its TLS certificate from. Accepted values include:
    • strongdm (default): The proxy worker terminates TLS using a certificate signed by the StrongDM proxy cluster CA generated by the control plane.
    • file: The proxy worker terminates TLS using certificate and key PEM files specified by the SDM_TLS_CERT_FILE and SDM_TLS_KEY_FILE environment variables. The proxy worker automatically reloads the certificate from disk once per day, so the certificate should have a validity period of at least two days. Use this if you need to use your own certificates while also keeping the extra security afforded by mutual TLS.
    • none: The proxy worker does not terminate TLS. Use this if you want to terminate TLS using your own load balancer. You must also specify SDM_TLS_CLIENT_AUTH=none.
  • SDM_TLS_CLIENT_AUTH controls how the proxy worker validates client TLS connections.
    • direct (default): The proxy worker establishes mutual TLS directly with clients and validates their client certificates directly. This mode is incompatible with SDM_TLS_CERT_SOURCE=none.
    • none: The proxy worker does not validate client certificates. Use this if you want to terminate TLS using your own load balancer.

Deploy a Single-Worker Proxy Cluster

  1. Set up a 64-bit Linux instance with at least 2 CPUs and 4 GB of memory. Make sure the firewall allows clients to connect to the instance on port 443.

  2. Note the IP address of the instance.

  3. Log in to the StrongDM Admin UI.

  4. Go to Networking > Proxy Clusters.

  5. Click Add proxy cluster. You can name the cluster here or modify it later.

  6. Enter the address of your Linux instance (with port 443 included) in the Advertised Address field (for example: 111.111.111.111:443).

    Add a New Proxy Cluster
    Add a New Proxy Cluster
  7. Click Create proxy cluster.

  8. Click Add authentication key. The access key and secret key appear in a modal. Copy these and save them for use in a later step.

    Proxy Cluster Key
    Proxy Cluster Key
  9. Log in to the Linux instance.

  10. To run the worker via Docker (recommended), first install Docker. Then run the following command, substituting the access key and secret key you created:

  11. To run the worker via systemd, download the StrongDM binary, unzip it, and run the installer. When prompted, paste the access key and secret key you created. After install, use systemctl status sdm-worker to check that the service is running.

  12. Confirm the proxy worker is running by verifying that the address is accessible from the appropriate end user network, as in the following example. If everything is working correctly, the proxy worker returns an HTTP 404 status code.

curl -k https://111.111.111.111
404 Not Found

Deploy with the CLI

Proxy clusters, like gateways or relays, can also be deployed using the CLI. This uses the sdm admin nodes command structure.

sdm admin nodes create-proxy-cluster --name <CLUSTER_NAME> <ADDRESS>:<PORT>

For more details, see the CLI Reference page for sdm admin nodes create-proxy-cluster.

Add Resources to a Proxy Cluster

To add resources to a proxy cluster, when adding or editing the resource in the Admin UI, select the name of the proxy cluster from the dropdown menu for the Proxy Cluster field. A resource attached to a proxy cluster will only be reachable via that proxy cluster.

Manage Existing Proxy Clusters

You can see a list of proxy clusters currently deployed in your organization in the Networking > Proxy Clusters page of the Admin UI. Selecting any cluster will bring you to the details view for that cluster, starting with the Resources tab. The Resources tab displays a list of all resources that are currently assigned to this proxy cluster. Each resource can be configured to be part of a particular proxy cluster in the configuration settings for that resource. There is also a Keys tab, which lists the available keys that can be used to add proxy workers to this cluster and allows the generation of additional keys. The Settings tab is where the cluster’s settings can be configured (name and address).

Search filters

You can use search filters in the Admin UI on the Networking > Proxy Clusters page to search for specific proxy clusters and display them according to their name, address, or tags. Searching and filtering can also be done on the Resources tab when viewing the details of a particular proxy cluster.

To use filters, type or copy/paste the following filters into the Search field, with or without other text. Do not use quotes or tick marks.

FilterDescriptionExample search
listenaddr:<IP_ADDRESS>Shows proxy clusters with the specified addresslistenaddr:10.0.0.021:443 finds clusters that have an address of 10.0.0.021:443.
name:<PARTIAL_STRING> or any free-form textShows proxy clusters with names that match the entered string; partial string OKname:keen-coffee or coffee finds all clusters whose names contain those characters.
tags:<TAG=VALUE>Shows proxy clusters with the specified tagstags:Environment=sandbox finds clusters that have the tag Environment=sandbox.

Maintenance

See Maintenance Windows. This page provides information about how to schedule a maintenance window for gateways and relays, and it is the same process for proxy workers in a cluster.

Top