Skip to content

Commit 9d9e572

Browse files
Expand Network Broker introduction and requirements (#2403)
* Update introduction and requirement sections * Re-add minor text emphasis * Eliminate parenthetical * Use more basic language Co-authored-by: Katie Horne <katie.horne@semgrep.com> Co-authored-by: Katie Horne <katie.horne@semgrep.com> * If you are on a dedicated tenant * Collapse single bullet point --------- Co-authored-by: Katie Horne <katie.horne@semgrep.com>
1 parent 80f0e2f commit 9d9e572

File tree

1 file changed

+33
-9
lines changed

1 file changed

+33
-9
lines changed

docs/semgrep-ci/network-broker.md

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,49 @@ import TabItem from '@theme/TabItem';
1212

1313
# Set up the Semgrep Network Broker
1414

15-
The Semgrep Network Broker facilitates secure access between Semgrep and your private network. It accomplishes this by establishing a WireGuard VPN tunnel with the Semgrep infrastructure, then proxying **inbound** HTTP requests from Semgrep to your network through this tunnel. This approach allows Semgrep to interact with on-premise resources without exposing them to the public internet.
15+
The Semgrep Network Broker facilitates secure access between Semgrep and your private network. The Network Broker creates a WireGuard VPN tunnel to the Semgrep backend and proxies **inbound** HTTP requests from Semgrep to the customer through the tunnel. This allows Semgrep to communicate with private network resources like a Source Code Manager (SCM) without exposing them to the public internet.
1616

1717
Examples of inbound traffic include:
1818

19-
- [Pull request (PR) or merge request (MR) comments](/docs/category/pr-or-mr-comments)
20-
- [Webhooks](/docs/semgrep-appsec-platform/webhooks)
19+
- [Pull request comments](/docs/category/pr-or-mr-comments)
2120
- Code access for [Semgrep Managed Scans](/docs/deployment/managed-scanning/overview) if enabled
21+
- [Webhooks](/docs/semgrep-appsec-platform/webhooks)
2222

23+
## Feature Availability
2324
:::info Tier availability
2425
The Semgrep Network Broker is available to Enterprise tier users.
2526
:::
27+
The Semgrep Network Broker is a feature that must be enabled in your Semgrep organization before setup. It is only available to paying customers. Contact the [Semgrep support team](/docs/support) to discuss having it enabled for your organization.
28+
29+
If you will be using the Network Broker with a dedicated Semgrep tenant, please note that in your request.
30+
31+
## Deployment
32+
The Network Broker can be run as a bare Docker container, in a Kubernetes cluster, or simply as a standalone binary on a machine.
33+
34+
Only one instance of the WireGuard-based Network Broker can be run at any time. Multiple brokers with the same configuration can cause disconnects, instability, and package loss.
35+
36+
### System Requirements
37+
- CPU: 1
38+
- RAM: 512 MB
39+
40+
### Network Requirements
41+
- Between Semgrep and Broker:
42+
- Allow traffic from `wireguard.semgrep.dev` on UDP port 51820. If you are on a dedicated Semgrep tenant, allow traffic from `wireguard.<tenant-name>.semgrep.dev` instead.
43+
- If using the `--deployment-id` CLI flag, allow outbound to `semgrep.dev` on TCP port 443 for HTTPS.
44+
- Between Broker and each private network resource, enable outbound on TCP ports 80 and 443 for HTTP/HTTPS communication.
45+
46+
:::info Determining IP Addresses
47+
To determine the IP addresses for a domain, use dig. The addresses are listed under the ANSWER section. Example: `dig wireguard.semgrep.dev`
48+
:::
2649

27-
## Prerequisites and feature availability
50+
### Artifacts
51+
You can choose between deploying pre-made artifacts or building your own.
52+
#### Pre-built by Semgrep
53+
- Docker images are available from [ghcr.io/semgrep/semgrep-network-broker](https://github.com/semgrep/semgrep-network-broker/pkgs/container/semgrep-network-broker).
54+
- A sample [Kubernetes Manifest](https://github.com/semgrep/semgrep-network-broker/blob/develop/kubernetes.yaml) is present within the repository. This should be extended for production.
2855

29-
- The Semgrep Network Broker is a feature that must be enabled in your Semgrep organization (org) before setup. It is only available to paying customers. Contact the [Semgrep support team](/docs/support) to discuss having it enabled for your organization.
30-
- If you will be using the Network Broker with a dedicated Semgrep tenant, please note that in your request.
31-
- **Docker** must be installed on the server where you install the Network Broker.
32-
- Ensure that you allocate at least 1 CPU and 512 MB RAM for each instance of Semgrep Network Broker that you run.
33-
- Ensure that you allow outbound access to `wireguard.semgrep.dev` on UDP port `51820`.
56+
#### Build Yourself
57+
See the [Network Broker repository](https://github.com/semgrep/semgrep-network-broker)'s README for instructions on how to build it yourself.
3458

3559
## Configure Semgrep Network Broker
3660

0 commit comments

Comments
 (0)